]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/AliTRDltuParam.h
Coverity
[u/mrichter/AliRoot.git] / TRD / AliTRDltuParam.h
1 // This class is used in both AliRoot and libTRD. If you update it in
2 // one place you have to update also the other.
3
4 #ifndef ALITRDLTUPARAM_H
5 #define ALITRDLTUPARAM_H
6
7 #include "TObject.h"
8
9 class AliTRDltuParam : public TObject
10 {
11  public:
12   AliTRDltuParam();
13   ~AliTRDltuParam();
14
15   // configuration settings
16   // called with special SCSN commands
17   void SetPtMin(Int_t data)     { fPtMin = Float_t(data) / 1000.; }
18   void SetMagField(Int_t data)  { fMagField = Float_t(data) / 1000.; }
19   void SetOmegaTau(Int_t data)  { fOmegaTau = Float_t(data) / 1.e6; }
20   void SetNtimebins(Int_t data) { fNtimebins = data; }
21   void SetScaleQ0(Int_t data)   { fScaleQ0 = data; }
22   void SetScaleQ1(Int_t data)   { fScaleQ1 = data; }
23   void SetLengthCorrectionEnable(Int_t data) { fPidTracklengthCorr = Bool_t (data); }
24   void SetTiltCorrectionEnable(Int_t data)   { fTiltCorr = Bool_t (data); }
25
26   // set values directly
27   void SetRawPtMin(Float_t data)     { fPtMin = data; }
28   void SetRawMagField(Float_t data)  { fMagField = data; }
29   void SetRawOmegaTau(Float_t data)  { fOmegaTau = data; }
30   void SetRawNtimebins(Int_t data)   { fNtimebins = data; }
31   void SetRawScaleQ0(Int_t data)     { fScaleQ0 = data; }
32   void SetRawScaleQ1(Int_t data)     { fScaleQ1 = data; }
33   void SetRawLengthCorrectionEnable(Bool_t data) { fPidTracklengthCorr = data; }
34   void SetRawTiltCorrectionEnable(Bool_t data)   { fTiltCorr = data; }
35
36   // retrieve the calculated information
37   // which is written to the TRAPs
38   Int_t GetDyCorrection(Int_t det, Int_t rob, Int_t mcm) const;
39   void  GetDyRange(Int_t det, Int_t rob, Int_t mcm, Int_t ch, Int_t &dyMinInt, Int_t &dyMaxInt) const;
40   void  GetCorrectionFactors(Int_t det, Int_t rob, Int_t mcm, Int_t ch,
41                              UInt_t &cor0, UInt_t &cor1) const;
42   Int_t GetNtimebins() const;
43
44   Float_t GetX(Int_t det, Int_t rob, Int_t mcm) const;
45   Float_t GetLocalY(Int_t det, Int_t rob, Int_t mcm, Int_t ch) const;
46   Float_t GetLocalZ(Int_t det, Int_t rob, Int_t mcm) const;
47
48   Float_t GetDist(Int_t det, Int_t rob, Int_t mcm, Int_t ch) const;
49   Float_t GetElongation(Int_t det, Int_t rob, Int_t mcm, Int_t ) const;
50   Float_t GetPhi(Int_t det, Int_t rob, Int_t mcm, Int_t ch) const;
51   Float_t GetPerp(Int_t det, Int_t rob, Int_t mcm, Int_t ch) const;
52
53  protected:
54   // geometry constants
55   static Float_t fgZrow[6][5];             // z-position of pad row edge
56   static Float_t fgX[6];                   // x-position for all layers
57   static Float_t fgTiltingAngle[6];        // tilting angle for every layer
58   static Float_t fgWidthPad[6];            // pad width for all layers
59   static Float_t fgLengthInnerPadC0;       // inner pad length C0 chamber
60   static Float_t fgLengthOuterPadC0;       // outer pad length C0 chamber
61   static Float_t fgLengthInnerPadC1[6];    // inner pad length C1 chambers
62   static Float_t fgLengthOuterPadC1[6];    // outer pad length C1 chambers
63   static Float_t fgScalePad;               // scaling factor for pad width
64   static Float_t fgDriftLength;            // length of the  parse gaintbl Krypton_2009-01 drift region
65   static Float_t fgBinDy;                  // bin in dy (140 um)
66   static Int_t   fgDyMax;                  // max dy for a tracklet (hard limit)
67   static Int_t   fgDyMin;                  // min dy for a tracklet (hard limit)
68
69   // settings
70   Float_t fMagField;            // magnetic field
71   Float_t fOmegaTau;            // omega tau, i.e. tan(Lorentz angle)
72   Float_t fPtMin;               // min. pt for deflection cut
73   Int_t   fNtimebins;           // drift time in units of timebins << 5n
74   UInt_t  fScaleQ0;             // scale factor for accumulated charge Q0
75   UInt_t  fScaleQ1;             // scale factor for accumulated charge Q1
76   Bool_t  fPidTracklengthCorr;  // enable tracklet length correction
77   Bool_t  fTiltCorr;            // enable tilt correction
78
79   ClassDef(AliTRDltuParam, 1);
80 };
81
82 #endif