]>
Commit | Line | Data |
---|---|---|
108615fc | 1 | #ifndef ALIL3TRANSFORM_H |
2 | #define ALIL3TRANSFORM_H | |
3 | ||
108615fc | 4 | #include "AliL3RootTypes.h" |
108615fc | 5 | |
6 | class AliL3Transform { | |
494fad94 | 7 | |
108615fc | 8 | private: |
494fad94 | 9 | |
ef79795d | 10 | static Double_t fBField; |
494fad94 | 11 | static Int_t fNTimeBins; |
12 | static Int_t fNRowLow; | |
13 | static Int_t fNRowUp; | |
14 | static Int_t fNSectorLow; | |
15 | static Int_t fNSectorUp; | |
16 | static Double_t fPadPitchWidthLow; | |
17 | static Double_t fPadPitchWidthUp; | |
18 | static Double_t fZWidth; | |
19 | static Double_t fZSigma; | |
20 | static Int_t fNSector; | |
21 | static Int_t fNSlice; | |
22 | static Int_t fNRow; | |
23 | static Double_t fPi; | |
24 | static Double_t fNRotShift; | |
25 | static Double_t fZLength; | |
26 | static Double_t fZOffset; | |
27 | static Int_t fNPads[176]; //fill this following Init | |
28 | static Double_t fX[176]; //fill this following Init | |
29 | static Int_t fVersion; //flags which version one is using | |
108615fc | 30 | |
494fad94 | 31 | public: |
32 | ||
33 | static void Init(const Char_t* path); //new init for all AliRoot versions | |
34 | ||
ef79795d | 35 | static void SetBField(Double_t f) {fBField = f;} |
36 | static Double_t GetBField() {return fBField;} | |
494fad94 | 37 | static Int_t GetVersion(){return fVersion;} |
38 | static Double_t GetPadPitchWidthLow() {return fPadPitchWidthLow;} | |
39 | static Double_t GetPadPitchWidthUp() {return fPadPitchWidthUp;} | |
40 | static Double_t GetPadPitchWidth(Int_t patch) {if(patch<=2) return fPadPitchWidthLow; else return fPadPitchWidthUp;} | |
41 | static Double_t GetZWidth() {return fZWidth;} | |
42 | static Double_t GetZLength() {return fZLength;} | |
43 | static Double_t GetZOffset() {return fZOffset;} | |
44 | static Int_t GetNSectorLow() {return fNSectorLow;} | |
45 | static Int_t GetNSectorUp() {return fNSectorUp;} | |
95a00d93 | 46 | |
494fad94 | 47 | static Bool_t Slice2Sector(Int_t slice, Int_t slicerow, Int_t §or, Int_t &row); |
48 | static Bool_t Sector2Slice(Int_t &slice, Int_t sector); | |
49 | static Bool_t Sector2Slice(Int_t &slice, Int_t &slicerow, Int_t sector, Int_t row); | |
1727f1c9 | 50 | |
494fad94 | 51 | static Int_t GetNPads(Int_t row){return (row<fNRow)?fNPads[row]:0;} |
52 | static Int_t GetNTimeBins(){return fNTimeBins;} | |
53 | static Double_t Row2X(Int_t slicerow); | |
54 | static Double_t GetMaxY(Int_t slicerow); | |
55 | static Double_t GetEta(Float_t *xyz); | |
56 | static Double_t GetEta(Int_t row, Int_t pad, Int_t time); | |
57 | static Double_t GetPhi(Float_t *xyz); | |
1727f1c9 | 58 | |
494fad94 | 59 | static void XYZtoRPhiEta(Float_t *rpe, Float_t *xyz); |
60 | static void Local2Global(Float_t *xyz, Int_t slice); | |
61 | static void Local2GlobalAngle(Float_t *angle, Int_t slice); | |
62 | static void Global2LocalAngle(Float_t *angle, Int_t slice); | |
108615fc | 63 | |
494fad94 | 64 | static void Raw2Local(Float_t *xyz, Int_t sector, Int_t row, Float_t pad, Float_t time); |
65 | static void Local2Global(Float_t *xyz, Int_t sector, Int_t row); | |
66 | static void Global2Local(Float_t *xyz, Int_t sector, Bool_t isSlice=kFALSE); | |
67 | static void Raw2Global(Float_t *xyz, Int_t sector, Int_t row, Float_t pad, Float_t time); | |
68 | static void Local2Raw(Float_t *xyz, Int_t sector, Int_t row); | |
69 | static void Global2Raw(Float_t *xyz, Int_t sector, Int_t row); | |
108615fc | 70 | |
b661165c | 71 | ClassDef(AliL3Transform,1) //Transformation class for ALICE TPC |
108615fc | 72 | }; |
108615fc | 73 | #endif |
a4e75a99 | 74 | |
89693986 | 75 | |
76 | ||
77 | ||
78 |