]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TRD/AliTRDltuParam.h
- use identical code for calculation of tracklet parameters as in FEE
[u/mrichter/AliRoot.git] / TRD / AliTRDltuParam.h
CommitLineData
5e86ff99 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
9class 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