MpdEmcGeoParams.h 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. #ifndef MPDEMCDETGEOPARAMS_H
  2. #define MPDEMCDETGEOPARAMS_H
  3. #include "FairParGenericSet.h"
  4. #include "TMath.h"
  5. class TObjArray;
  6. class FairParamList;
  7. using namespace std;
  8. using namespace TMath;
  9. class MpdEmcGeoParams : public FairParGenericSet {
  10. public:
  11. /** List of FairGeoNodes for sensitive volumes */
  12. TObjArray *fGeoSensNodes;
  13. /** List of FairGeoNodes for sensitive volumes */
  14. TObjArray *fGeoPassNodes;
  15. MpdEmcGeoParams(const char* name, const char* title, const char* context);
  16. MpdEmcGeoParams();
  17. ~MpdEmcGeoParams(void);
  18. void clear(void);
  19. void putParams(FairParamList*);
  20. Bool_t getParams(FairParamList*);
  21. TObjArray* GetGeoSensitiveNodes() {return fGeoSensNodes;}
  22. TObjArray* GetGeoPassiveNodes() {return fGeoPassNodes;}
  23. const Double_t GetLength() const {return length;}
  24. const Double_t GetRmin() const {return rMin;}
  25. const Double_t GetRmax() const {return rMax;}
  26. const UInt_t GetNsec() const {return nSec;}
  27. const UInt_t GetNrows() const {return nRows;}
  28. const UInt_t GetNmod() const {return nTowers;}
  29. const Double_t GetSizeAngleSector() const {return fAngleSector;}
  30. const Double_t GetSizeAngleCrate() const {return fAngleCrate;}
  31. const Double_t GetSizeLowBox() const {return sizeLowBox;}
  32. const Double_t GetSizeHighBox() const {return sizeHighBox;}
  33. const Double_t GetLengthBox() const {return lengthBox;}
  34. vector<Double_t> GetPhiSector() {return phiSector;}
  35. vector<Double_t> GetPhiRow() {return phiRow;}
  36. vector<Double_t> GetXRow() {return xRow;}
  37. vector<Double_t> GetYRow() {return yRow;}
  38. vector<Double_t> GetXBox() {return xBox;}
  39. vector<Double_t> GetYBox() {return yBox;}
  40. vector<Double_t> GetZBox() {return zBox;}
  41. vector<Double_t> GetRhoCenterBox() {return rhoBox;}
  42. vector<Double_t> GetZCenterBox() {return zBox;}
  43. vector<Double_t> GetThetaBox() {return thetaBox;}
  44. vector<Double_t> GetPhiBox() {return phiBox;}
  45. UInt_t GetNsupMod()const {return nSupMod;}
  46. private:
  47. UInt_t geoVersion; // version number (2 or 3)
  48. Double_t length; // Total EMC length
  49. Double_t rMin; // Barell minimal radius
  50. Double_t rMax; // Barell maximal radius
  51. UInt_t nSec; // number of sectors in EMC
  52. UInt_t nRows; // number of rows in one sector
  53. UInt_t nTowers; // number of towers in one rows
  54. UInt_t nSupMod;
  55. // Static module parameters
  56. Double_t fAngleSector; // sector phi angle size
  57. Double_t fAngleCrate; // crate phi angle
  58. Double_t sizeLowBox; // low XY-size of module
  59. Double_t sizeHighBox; // high XY-size of module
  60. Double_t lengthBox; // module Z - length
  61. vector<Double_t> phiSector; // phi - central angle of each sector
  62. vector<Double_t> phiRow; // phi - central angle of each row
  63. vector<Double_t> xRow, yRow; // x and y of row in the local system
  64. vector<Double_t> xBox, yBox, zBox; // X, Y, Z - coordinate of tower (center)
  65. vector<Double_t> rhoBox; // tower radius (center)
  66. vector<Double_t> phiBox, thetaBox; // phi, theta - angles of each tower
  67. ClassDef(MpdEmcGeoParams, 1)
  68. };
  69. #endif /* MPDEMCDETGEOPARAMS_H */