Flexible pt range for the efficiency histogramming
[u/mrichter/AliRoot.git] / MUON / AliMUONConstants.h
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