]>
Commit | Line | Data |
---|---|---|
1 | #ifndef ALIMUONCONSTANTS_H | |
2 | #define ALIMUONCONSTANTS_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id$*/ | |
7 | // Revision of includes 07/05/2004 | |
8 | // | |
9 | /// \ingroup base | |
10 | /// \class AliMUONConstants | |
11 | /// \brief MUON global constants | |
12 | ||
13 | #include <TObject.h> | |
14 | ||
15 | class AliMUONConstants : public TObject { | |
16 | public: | |
17 | /// Return number of chambers | |
18 | static Int_t NCh(); | |
19 | /// Return number of tracking chambers | |
20 | static Int_t NTrackingCh(); | |
21 | /// Return number of tracking stations | |
22 | static Int_t NTrackingSt() {return fgNTrackingSt;} | |
23 | /// Return number of trigger chambers | |
24 | static Int_t NTriggerCh() {return NCh()-NTrackingCh();} | |
25 | /// Return number of trigger circuits | |
26 | static Int_t NTriggerCircuit() {return fgNTriggerCircuit;} | |
27 | /// Return number of detection element | |
28 | static Int_t NDetElem() {return fgNDetElem;} | |
29 | /// Return number of geometry modules | |
30 | static Int_t NGeomModules() {return fgNGeomModules;} | |
31 | /// Return position of chamber i | |
32 | static Float_t DefaultChamberZ(Int_t i) {return fgDefaultChamberZ[i];} | |
33 | /// Return ratio between trigger chambers | |
34 | static Float_t DefaultRatioTriggerChamber(Int_t i) {return fgDefaultRatioTriggerChamber[i];} | |
35 | /// Return Inclination with respect the vertical axis of stations 345 | |
36 | static Float_t St345Inclination() {return fgSt345inclination;} | |
37 | /// Return pointer to array of positions | |
38 | static Float_t* DefaultChamberZ() {return fgDefaultChamberZ;} | |
39 | /// Return chamber i inner diameter | |
40 | static Float_t Dmin(Int_t i) {return fgDmin[i];} | |
41 | /// Return chamber i inner radius | |
42 | static Float_t Rmin(Int_t i) {return Dmin(i)/2.0;} | |
43 | /// Return chamber i outer diameter | |
44 | static Float_t Dmax(Int_t i) {return fgDmax[i];} | |
45 | /// Return chamber i outer radius | |
46 | static Float_t Rmax(Int_t i) {return Dmax(i)/2.0;} | |
47 | /// Return maximum zoom for event display | |
48 | static Int_t MaxZoom() {return fgMaxZoom;} | |
49 | /// Return half-distance between two half-chambers | |
50 | static Float_t DzCh() {return fgDzCh;} | |
51 | /// Return half-distance between two slats | |
52 | static Float_t DzSlat() {return fgDzSlat;} | |
53 | /// Return chamber number according z position of hit. | |
54 | static Int_t ChamberNumber(Float_t z, bool warn = false); | |
55 | /// Return SqrtKx3 for Slat | |
56 | static Float_t SqrtKx3() {return fgSqrtKx3;} | |
57 | /// Return SqrtKy3 for Slat | |
58 | static Float_t SqrtKy3() {return fgSqrtKy3;} | |
59 | /// Return SqrtKx3 for Station 1 & 2 | |
60 | static Float_t SqrtKx3St1() {return fgSqrtKx3St1;} | |
61 | /// Return SqrtKy3 for Station 1 & 2 | |
62 | static Float_t SqrtKy3St1() {return fgSqrtKy3St1;} | |
63 | /// Return charge correlation (needed for response and for cluster finder !?) | |
64 | static Float_t ChargeCorrel() {return fgChargeCorrel;} | |
65 | /// Return charge correlation for Station 1 & 2 (needed for response and for cluster finder !?) | |
66 | static Float_t ChargeCorrelSt1() {return fgChargeCorrelSt1;} | |
67 | /// Return wire pitch | |
68 | static Float_t Pitch() {return fgPitch;} | |
69 | /// Return wire pitch for Station 1 & 2 | |
70 | static Float_t PitchSt1() {return fgPitchSt1;} | |
71 | /// Return coil z-position | |
72 | static Double_t CoilZ() {return fgCoilZ;} | |
73 | /// Return coil lenght | |
74 | static Double_t CoilL() {return fgCoilL;} | |
75 | /// Return yoke z-position | |
76 | static Double_t YokeZ() {return fgYokeZ;} | |
77 | /// Return yoke lenght | |
78 | static Double_t YokeL() {return fgYokeL;} | |
79 | /// Return z-position of absorber begining | |
80 | static Double_t AbsZBeg() {return fgkAbsZBeg;} | |
81 | /// Return z-position of absorber end | |
82 | static Double_t AbsZEnd() {return fgkAbsZEnd;} | |
83 | /// Return chamber thickness in X0 | |
84 | static Double_t ChamberThicknessInX0(Int_t chId) {return (chId >= 0 && chId < 10) ? fgChamberThicknessInX0[chId] : 0.;} | |
85 | /// Return Trigger ToF Limit (75 ns) | |
86 | static Float_t TriggerTofLimit() {return fgkTriggerTofLimit;} | |
87 | /// Return default trigger chamber resolution DUE TO ALIGNMENT ONLY in non bending direction | |
88 | static Double_t TriggerNonBendingReso() {return fgkTriggerNonBendingReso;} | |
89 | /// Return default trigger chamber resolution DUE TO ALIGNMENT ONLY in bending direction | |
90 | static Double_t TriggerBendingReso() {return fgkTriggerBendingReso;} | |
91 | /// Return z-position of muon filter begining | |
92 | static Double_t MuonFilterZBeg() {return fgkMuonFilterZBeg;} | |
93 | /// Return z-position of muon filter end | |
94 | static Double_t MuonFilterZEnd() {return fgkMuonFilterZEnd;} | |
95 | /// Return radiation length (in cm) of muon filter | |
96 | static Double_t MuonFilterX0() {return fgkMuonFilterX0;} | |
97 | ||
98 | /// Return the most probable bending momentum (GeV/c) (used when B = 0) | |
99 | static Double_t GetMostProbBendingMomentum() { return fgkMostProbBendingMomentum; } | |
100 | ||
101 | /// Return average arrival time to chamber i | |
102 | static Float_t AverageChamberT(Int_t i) {return fgAverageChamberT[i];} | |
103 | /// Return a reduced total charge | |
104 | static Float_t ReducedQTot(Float_t qtot, Float_t timeDif); | |
105 | ||
106 | // Return conversionfactor fc to adc | |
107 | static Float_t FC2ADC(); | |
108 | ||
109 | // Return default a0 | |
110 | static Float_t DefaultA0() { return fgkDefaultA0; } | |
111 | // Return default adc2mv | |
112 | static Float_t DefaultADC2MV() { return fgkDefaultADC2MV; } | |
113 | // Return default Capa | |
114 | static Float_t DefaultCapa() { return fgkDefaultCapa; } | |
115 | ||
116 | protected: | |
117 | /// Default constructor | |
118 | AliMUONConstants() : TObject() {} | |
119 | /// Destructor | |
120 | virtual ~AliMUONConstants(){} | |
121 | ||
122 | private: | |
123 | static Int_t fgNTrackingSt; ///< Number of Tracking Stations | |
124 | static Int_t fgNTriggerCircuit; ///< Number of Trigger Circuits | |
125 | static Int_t fgNDetElem; ///< Number of Detection Elements. | |
126 | static Int_t fgNGeomModules; ///< Number of Geometry modules | |
127 | ||
128 | static Float_t fgDefaultChamberZ[14]; //!< Z-positions of chambers | |
129 | static Float_t fgDefaultChamberMinZ[14]; //!< Minimum z-positions of chambers | |
130 | static Float_t fgDefaultChamberMaxZ[14]; //!< Maximum z-positions of chambers | |
131 | static Float_t fgDefaultRatioTriggerChamber[4]; ///< Ratio between trigger chambers | |
132 | static Float_t fgSt345inclination; //!< Inclination with respect the vertical axis of stations 345 | |
133 | static Float_t fgDmin[7]; //!< Inner diameter | |
134 | static Float_t fgDmax[7]; //!< Outer diameter | |
135 | ||
136 | static Float_t fgDzCh; ///< Half-distance between two half-chambers | |
137 | static Float_t fgDzSlat; ///< Half-distance between two slat on the same chamber | |
138 | static Float_t fgSqrtKx3; ///< SqrtKx3 for St2 & Slat | |
139 | static Float_t fgSqrtKy3; ///< SqrtKy3 for St2 & Slat | |
140 | static Float_t fgSqrtKx3St1; ///< SqrtKx3 for Station 1 | |
141 | static Float_t fgSqrtKy3St1; ///< SqrtKy3 for Station 1 | |
142 | ||
143 | static Float_t fgChargeCorrel; ///< Charge correlation for St2 & Slats | |
144 | static Float_t fgChargeCorrelSt1; ///< Charge correlation for Station 1 | |
145 | ||
146 | static Float_t fgPitch; ///< Wire pitch for St2 & Slats | |
147 | static Float_t fgPitchSt1; ///< Wire pitch for Station 1 | |
148 | ||
149 | static Double_t fgChamberThicknessInX0[10]; ///< default chamber thickness in X0 for reconstruction | |
150 | ||
151 | static Double_t fgCoilZ; ///< Coil z-position | |
152 | static Double_t fgCoilL; ///< Coil lenght | |
153 | static Double_t fgYokeZ; ///< Yoke z-position | |
154 | static Double_t fgYokeL; ///< Yoke lenght | |
155 | ||
156 | static const Double_t fgkAbsZBeg; ///< z-position of the begining of the absorber | |
157 | static const Double_t fgkAbsZEnd; ///< z-position of the end of the absorber | |
158 | ||
159 | static Int_t fgMaxZoom; ///< Maximum Zoom for event display | |
160 | static Float_t fgkTriggerTofLimit; ///< Particle above this threshold are discarded in trigger algorithm | |
161 | ||
162 | static const Double_t fgkTriggerNonBendingReso; ///< default trigger chamber resolution in the non-bending direction, DUE TO ALIGNMENT ONLY | |
163 | static const Double_t fgkTriggerBendingReso; ///< default trigger chamber resolution in the bending direction, DUE TO ALIGNMENT ONLY | |
164 | ||
165 | static const Double_t fgkMuonFilterZBeg; ///< z-position of the begining of the muon filter | |
166 | static const Double_t fgkMuonFilterZEnd; ///< z-position of the end of the muon filter | |
167 | static const Double_t fgkMuonFilterX0; ///< x0 of the muon filter | |
168 | ||
169 | static const Double_t fgkMostProbBendingMomentum; ///< most probable value (GeV/c) of muon momentum in bending plane (used when B = 0) needed to get some "reasonable" corrections for MCS and E loss even if B = 0 | |
170 | ||
171 | static Float_t fgAverageChamberT[14]; ///<average arrival time to chamber | |
172 | ||
173 | static const Float_t fgkDefaultA0; ///< Default gain A0 | |
174 | static const Float_t fgkDefaultADC2MV; ///< Default ADC to mv conversion factor | |
175 | static const Float_t fgkDefaultCapa; ///< Default Capa | |
176 | ||
177 | ClassDef(AliMUONConstants, 0) // MUON global constants | |
178 | }; | |
179 | ||
180 | #endif | |
181 |