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