Corrected bug in GetRowNumber (class AliTPCSector)
[u/mrichter/AliRoot.git] / HLT / src / AliL3Transform.h
CommitLineData
108615fc 1#ifndef ALIL3TRANSFORM_H
2#define ALIL3TRANSFORM_H
3
108615fc 4#include "AliL3RootTypes.h"
5class TFile;
6
7class AliL3Transform {
8 private:
108615fc 9 Int_t fNTimeBins;
10 Int_t fNRowLow;
11 Int_t fNRowUp;
12 Int_t fNSectorLow;
13 Int_t fNSectorUp;
14 Double_t fPadPitchWidthLow;
15 Double_t fPadPitchWidthUp;
16 Double_t fZWidth;
17 Double_t fZSigma;
18 Int_t fNSector;
19 Int_t fNSlice;
20 Int_t fNRow;
21 Double_t fPi;
a4e75a99 22 Double_t fNRotShift;
23 Double_t fCos[36]; //fill this following Init
24 Double_t fSin[36]; //fill this following Init
25 Double_t fX[176]; //fill this following Init
26 Int_t fNPads[176]; //fill this following Init
108615fc 27 public:
28 AliL3Transform();
a4e75a99 29 AliL3Transform(const char *pathname);
108615fc 30 virtual ~AliL3Transform();
a4e75a99 31 void Init(); //old init used by Anders for AliRoot <= 3.06
f59eed2d 32 void Init(const Char_t* path); //new init for all AliRoot versions
108615fc 33
34 Double_t GetPadPitchWidthLow() {return fPadPitchWidthLow;}
35 Double_t GetPadPitchWidthUp() {return fPadPitchWidthUp;}
95a00d93 36 Double_t GetPadPitchWidth(Int_t patch) {if(patch<=2) return fPadPitchWidthLow; else return fPadPitchWidthUp;}
37 Double_t GetZWidth() {return fZWidth;}
38
a4e75a99 39 Bool_t Slice2Sector(Int_t slice, Int_t slicerow, Int_t &sector, Int_t &row) const;
108615fc 40
a4e75a99 41 Bool_t Sector2Slice(Int_t &slice, Int_t sector) const;
42 Bool_t Sector2Slice(Int_t &slice, Int_t &slicerow, Int_t sector, Int_t row) const;
108615fc 43
44 Double_t Row2X(Int_t slicerow);
a4982538 45 Int_t GetNPads(Int_t row){return (row<fNRow)?fNPads[row]:0;}
108615fc 46 Int_t GetNTimeBins(){return fNTimeBins;}
47
48 Double_t GetEta(Float_t *xyz);
a4e75a99 49 Double_t GetEta(Int_t row, Int_t pad, Int_t time);
108615fc 50 Double_t GetPhi(Float_t *xyz);
51 Double_t GetMaxY(Int_t slicerow);
a4e75a99 52 void Local2Global(Float_t *xyz, Int_t slice);
53 void Local2GlobalAngle(Float_t *angle, Int_t slice);
54 void Global2LocalAngle(Float_t *angle, Int_t slice);
108615fc 55
a4e75a99 56 void Raw2Local(Float_t *xyz, Int_t sector, Int_t row, Float_t pad, Float_t time);
57 void Local2Global(Float_t *xyz, Int_t sector, Int_t row);
58 void Global2Local(Float_t *xyz, Int_t sector, Bool_t isSlice=kFALSE);
59 void Raw2Global(Float_t *xyz, Int_t sector, Int_t row, Float_t pad, Float_t time);
60 void Local2Raw(Float_t *xyz, Int_t sector, Int_t row);
61 void Global2Raw(Float_t *xyz, Int_t sector, Int_t row);
108615fc 62
b661165c 63 ClassDef(AliL3Transform,1) //Transformation class for ALICE TPC
108615fc 64};
65
66
67#endif
a4e75a99 68