Added the magnetic field as a static member of the AliL3Transform class,
[u/mrichter/AliRoot.git] / HLT / src / AliL3Transform.h
108615fc 1#ifndef ALIL3TRANSFORM_H
108615fc 4#include "AliL3RootTypes.h"
108615fc 5
6class 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:
33 static void Init(const Char_t* path); //new init for all AliRoot versions
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 &sector, 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