MpdMultiField.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. // -------------------------------------------------------------------------
  2. // MpdMultiField header file -----
  3. // Created 23/07/13 by P. Batyuk (MPD) <batyuk@jinr.ru> -----
  4. // from MpdMultiField (PNDROOT) -----
  5. // -------------------------------------------------------------------------
  6. #ifndef MPDMULTIMAP_H
  7. #define MPDMULTIMAP_H 1
  8. #include "FairField.h"
  9. #include "TObjArray.h"
  10. #include <map>
  11. class MpdRegion;
  12. class MpdMultiFieldPar;
  13. class MpdMultiField : public FairField {
  14. public:
  15. /** Default constructor **/
  16. MpdMultiField();
  17. /** Constructor from MpdFieldPar **/
  18. MpdMultiField(MpdMultiFieldPar* fieldPar);
  19. /** Destructor **/
  20. virtual ~MpdMultiField();
  21. /** Initialisation (read map from file) **/
  22. void Init();
  23. /**Adding a field to the collection*/
  24. void AddField(FairField *field);
  25. TObjArray *GetFieldList(){return fMaps; }
  26. /** Get the field components at a certain point
  27. ** @param x,y,z Point coordinates (global) [cm]
  28. ** @value Bx,By,Bz Field components [kG]
  29. **/
  30. virtual Double_t GetBx(Double_t x, Double_t y, Double_t z);
  31. virtual Double_t GetBy(Double_t x, Double_t y, Double_t z);
  32. virtual Double_t GetBz(Double_t x, Double_t y, Double_t z);
  33. void GetFieldValue(const Double_t point[3], Double_t* bField);
  34. /** Screen output **/
  35. virtual void Print();
  36. ClassDef(MpdMultiField,1)
  37. protected:
  38. TObjArray *fMaps;
  39. Int_t fNoOfMaps;
  40. std::map <MpdRegion*, FairField* > fFieldMaps;//!
  41. };
  42. #endif