]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONConstants.h
Flexible pt range for the efficiency histogramming
[u/mrichter/AliRoot.git] / MUON / AliMUONConstants.h
index 68f668cc96e99dcfbc7df32b7c32f05a2ce2173c..7cfccf1b721ea33226699aa84138b84abf6860e5 100644 (file)
 class AliMUONConstants : public TObject {
  public:
     /// Return number of chambers
-    static Int_t    NCh() {return fgNCh;}
+  static Int_t    NCh();
     /// Return number of tracking chambers
-    static Int_t    NTrackingCh() {return fgNTrackingCh;}
+  static Int_t    NTrackingCh();
     /// Return number of tracking stations
     static Int_t    NTrackingSt() {return fgNTrackingSt;}
     /// Return number of trigger chambers
-    static Int_t    NTriggerCh() {return fgNTriggerCh;}
+    static Int_t    NTriggerCh() {return NCh()-NTrackingCh();}
     /// Return number of trigger circuits
     static Int_t    NTriggerCircuit() {return fgNTriggerCircuit;}
     /// Return number of detection element
@@ -51,7 +51,7 @@ class AliMUONConstants : public TObject {
     /// Return half-distance between two slats
     static Float_t  DzSlat()                 {return fgDzSlat;}
     /// Return chamber number according z position of hit.
-    static  Int_t ChamberNumber(Float_t z); 
+    static  Int_t ChamberNumber(Float_t z, bool warn = false); 
     /// Return SqrtKx3 for Slat
     static Float_t SqrtKx3()                 {return fgSqrtKx3;}
     /// Return SqrtKy3 for Slat
@@ -76,11 +76,43 @@ class AliMUONConstants : public TObject {
     static Double_t YokeZ() {return fgYokeZ;}
     /// Return yoke lenght
     static Double_t YokeL() {return fgYokeL;}
+    /// Return z-position of absorber begining
+    static Double_t AbsZBeg() {return fgkAbsZBeg;}
+    /// Return z-position of absorber end
+    static Double_t AbsZEnd() {return fgkAbsZEnd;}
     /// Return chamber thickness in X0
-    static Double_t ChamberThicknessInX0() {return fgChamberThicknessInX0;}
+    static Double_t ChamberThicknessInX0(Int_t chId) {return (chId >= 0 && chId < 10) ? fgChamberThicknessInX0[chId] : 0.;}
     /// Return Trigger ToF Limit (75 ns)
     static Float_t TriggerTofLimit() {return fgkTriggerTofLimit;}
+    /// Return default trigger chamber resolution DUE TO ALIGNMENT ONLY in non bending direction
+    static Double_t TriggerNonBendingReso() {return fgkTriggerNonBendingReso;}
+    /// Return default trigger chamber resolution DUE TO ALIGNMENT ONLY in bending direction
+    static Double_t TriggerBendingReso() {return fgkTriggerBendingReso;}
+    /// Return z-position of muon filter begining
+    static Double_t MuonFilterZBeg() {return fgkMuonFilterZBeg;}
+    /// Return z-position of muon filter end
+    static Double_t MuonFilterZEnd() {return fgkMuonFilterZEnd;}
+    /// Return radiation length (in cm) of muon filter
+    static Double_t MuonFilterX0() {return fgkMuonFilterX0;}
+
+    /// Return the most probable bending momentum (GeV/c) (used when B = 0)
+    static Double_t GetMostProbBendingMomentum() { return fgkMostProbBendingMomentum; }
+      
+    /// Return average arrival time to chamber i
+    static Float_t  AverageChamberT(Int_t i) {return fgAverageChamberT[i];}
+    /// Return a reduced total charge
+    static Float_t  ReducedQTot(Float_t qtot, Float_t timeDif);
+
+    // Return conversionfactor fc to adc
+    static Float_t FC2ADC();
  
+    // Return default a0
+    static Float_t DefaultA0() { return fgkDefaultA0; }
+    // Return default adc2mv
+    static Float_t DefaultADC2MV() { return fgkDefaultADC2MV; }
+    // Return default Capa
+    static Float_t DefaultCapa() { return fgkDefaultCapa; }
+
  protected:
     /// Default constructor
     AliMUONConstants() : TObject() {}
@@ -88,15 +120,14 @@ class AliMUONConstants : public TObject {
     virtual ~AliMUONConstants(){}
 
  private:
-    static Int_t  fgNCh;                ///<  Number of Chambers    
-    static Int_t  fgNTrackingCh;        ///<  Number of Tracking Chambers
     static Int_t  fgNTrackingSt;        ///<  Number of Tracking Stations
-    static Int_t  fgNTriggerCh;         ///<  Number of Trigger Chambers
     static Int_t  fgNTriggerCircuit;    ///<  Number of Trigger Circuits
     static Int_t  fgNDetElem;           ///<  Number of Detection Elements.
     static Int_t  fgNGeomModules;       ///<  Number of Geometry modules   
 
     static Float_t  fgDefaultChamberZ[14];             //!< Z-positions of chambers
+    static Float_t  fgDefaultChamberMinZ[14];          //!< Minimum z-positions of chambers
+    static Float_t  fgDefaultChamberMaxZ[14];          //!< Maximum z-positions of chambers
     static Float_t  fgDefaultRatioTriggerChamber[4];   ///< Ratio between trigger chambers
     static Float_t  fgSt345inclination;                        //!< Inclination with respect the vertical axis of stations 345
     static Float_t  fgDmin[7];                         //!< Inner diameter
@@ -115,16 +146,34 @@ class AliMUONConstants : public TObject {
     static Float_t  fgPitch;             ///< Wire pitch for St2 & Slats
     static Float_t  fgPitchSt1;          ///< Wire pitch for Station 1
 
-    static Double_t  fgChamberThicknessInX0; ///< default chamber thickness in X0 for reconstruction
+    static Double_t  fgChamberThicknessInX0[10]; ///< default chamber thickness in X0 for reconstruction
     
     static Double_t fgCoilZ; ///< Coil z-position
     static Double_t fgCoilL; ///< Coil lenght
     static Double_t fgYokeZ; ///< Yoke z-position
     static Double_t fgYokeL; ///< Yoke lenght
 
+    static const Double_t fgkAbsZBeg; ///< z-position of the begining of the absorber
+    static const Double_t fgkAbsZEnd; ///< z-position of the end of the absorber
+    
     static Int_t    fgMaxZoom;          ///< Maximum Zoom for event display
     static Float_t  fgkTriggerTofLimit; ///< Particle above this threshold are discarded in trigger algorithm
     
+    static const Double_t fgkTriggerNonBendingReso; ///< default trigger chamber resolution in the non-bending direction, DUE TO ALIGNMENT ONLY
+    static const Double_t fgkTriggerBendingReso; ///< default trigger chamber resolution in the bending direction, DUE TO ALIGNMENT ONLY 
+    
+    static const Double_t fgkMuonFilterZBeg; ///< z-position of the begining of the muon filter
+    static const Double_t fgkMuonFilterZEnd; ///< z-position of the end of the muon filter
+    static const Double_t fgkMuonFilterX0; ///< x0 of the muon filter
+    
+    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
+
+    static Float_t fgAverageChamberT[14]; ///<average arrival time to chamber
+  
+    static const Float_t fgkDefaultA0;     ///< Default gain A0
+    static const Float_t fgkDefaultADC2MV; ///< Default ADC to mv conversion factor 
+    static const Float_t fgkDefaultCapa;   ///< Default Capa
+
     ClassDef(AliMUONConstants, 0) // MUON global constants 
 };