Line data Source code
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 0 : 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 0 : static Int_t NTrackingSt() {return fgNTrackingSt;}
23 : /// Return number of trigger chambers
24 161440 : static Int_t NTriggerCh() {return NCh()-NTrackingCh();}
25 : /// Return number of trigger circuits
26 322278 : static Int_t NTriggerCircuit() {return fgNTriggerCircuit;}
27 : /// Return number of detection element
28 0 : static Int_t NDetElem() {return fgNDetElem;}
29 : /// Return number of geometry modules
30 355524 : static Int_t NGeomModules() {return fgNGeomModules;}
31 : /// Return position of chamber i
32 5708 : static Float_t DefaultChamberZ(Int_t i) {return fgDefaultChamberZ[i];}
33 : /// Return ratio between trigger chambers
34 48 : static Float_t DefaultRatioTriggerChamber(Int_t i) {return fgDefaultRatioTriggerChamber[i];}
35 : /// Return Inclination with respect the vertical axis of stations 345
36 8 : static Float_t St345Inclination() {return fgSt345inclination;}
37 : /// Return pointer to array of positions
38 0 : static Float_t* DefaultChamberZ() {return fgDefaultChamberZ;}
39 : /// Return chamber i inner diameter
40 76 : static Float_t Dmin(Int_t i) {return fgDmin[i];}
41 : /// Return chamber i inner radius
42 76 : static Float_t Rmin(Int_t i) {return Dmin(i)/2.0;}
43 : /// Return chamber i outer diameter
44 8 : static Float_t Dmax(Int_t i) {return fgDmax[i];}
45 : /// Return chamber i outer radius
46 8 : static Float_t Rmax(Int_t i) {return Dmax(i)/2.0;}
47 : /// Return maximum zoom for event display
48 0 : static Int_t MaxZoom() {return fgMaxZoom;}
49 : /// Return half-distance between two half-chambers
50 6 : static Float_t DzCh() {return fgDzCh;}
51 : /// Return half-distance between two slats
52 6 : 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 288 : static Float_t SqrtKx3() {return fgSqrtKx3;}
57 : /// Return SqrtKy3 for Slat
58 288 : static Float_t SqrtKy3() {return fgSqrtKy3;}
59 : /// Return SqrtKx3 for Station 1 & 2
60 56 : static Float_t SqrtKx3St1() {return fgSqrtKx3St1;}
61 : /// Return SqrtKy3 for Station 1 & 2
62 56 : static Float_t SqrtKy3St1() {return fgSqrtKy3St1;}
63 : /// Return charge correlation (needed for response and for cluster finder !?)
64 0 : static Float_t ChargeCorrel() {return fgChargeCorrel;}
65 : /// Return charge correlation for Station 1 & 2 (needed for response and for cluster finder !?)
66 0 : static Float_t ChargeCorrelSt1() {return fgChargeCorrelSt1;}
67 : /// Return wire pitch
68 292 : static Float_t Pitch() {return fgPitch;}
69 : /// Return wire pitch for Station 1 & 2
70 58 : static Float_t PitchSt1() {return fgPitchSt1;}
71 : /// Return coil z-position
72 18 : static Double_t CoilZ() {return fgCoilZ;}
73 : /// Return coil lenght
74 18 : static Double_t CoilL() {return fgCoilL;}
75 : /// Return yoke z-position
76 18 : static Double_t YokeZ() {return fgYokeZ;}
77 : /// Return yoke lenght
78 18 : static Double_t YokeL() {return fgYokeL;}
79 : /// Return z-position of absorber begining
80 192 : static Double_t AbsZBeg() {return fgkAbsZBeg;}
81 : /// Return z-position of absorber end
82 224 : static Double_t AbsZEnd() {return fgkAbsZEnd;}
83 : /// Return chamber thickness in X0
84 3216 : static Double_t ChamberThicknessInX0(Int_t chId) {return (chId >= 0 && chId < 10) ? fgChamberThicknessInX0[chId] : 0.;}
85 : /// Return Trigger ToF Limit (75 ns)
86 64 : static Float_t TriggerTofLimit() {return fgkTriggerTofLimit;}
87 : /// Return default trigger chamber resolution DUE TO ALIGNMENT ONLY in non bending direction
88 28 : static Double_t TriggerNonBendingReso() {return fgkTriggerNonBendingReso;}
89 : /// Return default trigger chamber resolution DUE TO ALIGNMENT ONLY in bending direction
90 28 : static Double_t TriggerBendingReso() {return fgkTriggerBendingReso;}
91 : /// Return z-position of muon filter begining
92 32 : static Double_t MuonFilterZBeg() {return fgkMuonFilterZBeg;}
93 : /// Return z-position of muon filter end
94 32 : static Double_t MuonFilterZEnd() {return fgkMuonFilterZEnd;}
95 : /// Return radiation length (in cm) of muon filter
96 32 : static Double_t MuonFilterX0() {return fgkMuonFilterX0;}
97 :
98 : /// Return the most probable bending momentum (GeV/c) (used when B = 0)
99 0 : static Double_t GetMostProbBendingMomentum() { return fgkMostProbBendingMomentum; }
100 :
101 : /// Return average arrival time to chamber i
102 230 : 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 7456 : static Float_t DefaultA0() { return fgkDefaultA0; }
111 : // Return default adc2mv
112 7456 : static Float_t DefaultADC2MV() { return fgkDefaultADC2MV; }
113 : // Return default Capa
114 7456 : static Float_t DefaultCapa() { return fgkDefaultCapa; }
115 :
116 : protected:
117 : /// Default constructor
118 : AliMUONConstants() : TObject() {}
119 : /// Destructor
120 0 : 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 18 : ClassDef(AliMUONConstants, 0) // MUON global constants
178 : };
179 :
180 : #endif
181 :
|