Added new base class
[u/mrichter/AliRoot.git] / HLT / hough / AliL3Transform.h
1 #ifndef ALIL3TRANSFORM_H
2 #define ALIL3TRANSFORM_H
3
4
5
6 //#include "AliTPCParam.h"
7 #include "AliL3RootTypes.h"
8 class TFile;
9
10 class AliL3Transform {
11  private:
12 //  AliTPCParam *fParam;
13   Int_t fNTimeBins;
14   Int_t fNRowLow;
15   Int_t fNRowUp;
16   Int_t fNSectorLow;
17   Int_t fNSectorUp;
18   Double_t fPadPitchWidthLow;
19   Double_t fPadPitchWidthUp;
20   Double_t fZWidth;
21   Double_t fZSigma;
22   Int_t fNSector;
23   Int_t fNSlice;
24   Int_t fNRow;
25   Double_t fPi;
26   Double_t fCos[36];
27   Double_t fSin[36];
28   Double_t fX[174];
29   Int_t fNPads[174];
30  public:
31   AliL3Transform();
32   virtual ~AliL3Transform();
33   void Init();
34
35   Double_t GetPadPitchWidthLow() {return fPadPitchWidthLow;}
36   Double_t GetPadPitchWidthUp() {return fPadPitchWidthUp;}
37
38   Bool_t Slice2Sector(Int_t slice, Int_t slicerow, Int_t & sector, Int_t &row) const;
39
40   Bool_t Sector2Slice(Int_t & slice, Int_t  sector) const;
41   Bool_t Sector2Slice(Int_t & slice, Int_t & slicerow,Int_t  sector, Int_t row) const;
42   
43   Double_t Row2X(Int_t slicerow);
44   Int_t GetNPads(Int_t row){return (row<174)?fNPads[row]:0;}
45   Int_t GetNTimeBins(){return fNTimeBins;}
46
47   Double_t GetEta(Float_t *xyz);
48   Double_t GetPhi(Float_t *xyz);
49   Double_t GetMaxY(Int_t slicerow);
50   void Local2Global(Float_t *xyz,Int_t slice);
51   void Local2GlobalAngle(Float_t *angle,Int_t slice);
52   void Global2LocalAngle(Float_t *angle,Int_t slice);
53
54   void Raw2Local(Float_t *xyz,Int_t sector,Int_t row,Float_t pad,Float_t time);
55   void Local2Global(Float_t *xyz,Int_t sector,Int_t row);
56   void Global2Local(Float_t *xyz,Int_t sector);
57   void Raw2Global(Float_t *xyz,Int_t sector,Int_t row,Float_t pad,Float_t time);
58   void Local2Raw(Float_t *xyz,Int_t sector,Int_t row);
59   void Global2Raw(Float_t *xyz,Int_t sector,Int_t row);
60   
61   ClassDef(AliL3Transform,1)
62 };
63
64
65 #endif