]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/src/AliL3Transform.h
Checking in for the weekend
[u/mrichter/AliRoot.git] / HLT / src / 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]; //change this following Init
27   Double_t fSin[36]; //change this following Init
28   Double_t fX[176];  //change this following Init
29   Int_t fNPads[176]; //change this following Init
30  public:
31   AliL3Transform();
32   virtual ~AliL3Transform();
33   void Init();
34
35   Double_t GetPadPitchWidthLow() {return fPadPitchWidthLow;}
36   Double_t GetPadPitchWidthUp() {return fPadPitchWidthUp;}
37   Double_t GetPadPitchWidth(Int_t patch) {if(patch<=2) return fPadPitchWidthLow; else return fPadPitchWidthUp;}
38   Double_t GetZWidth() {return fZWidth;}
39   
40   Bool_t Slice2Sector(Int_t slice, Int_t slicerow, Int_t & sector, Int_t &row) const;
41
42   Bool_t Sector2Slice(Int_t & slice, Int_t  sector) const;
43   Bool_t Sector2Slice(Int_t & slice, Int_t & slicerow,Int_t  sector, Int_t row) const;
44   
45   Double_t Row2X(Int_t slicerow);
46   Int_t GetNPads(Int_t row){return (row<fNRow)?fNPads[row]:0;}
47   Int_t GetNTimeBins(){return fNTimeBins;}
48
49   Double_t GetEta(Float_t *xyz);
50   Double_t GetEta(Int_t row,Int_t pad,Int_t time);
51   Double_t GetPhi(Float_t *xyz);
52   Double_t GetMaxY(Int_t slicerow);
53   void Local2Global(Float_t *xyz,Int_t slice);
54   void Local2GlobalAngle(Float_t *angle,Int_t slice);
55   void Global2LocalAngle(Float_t *angle,Int_t slice);
56
57   void Raw2Local(Float_t *xyz,Int_t sector,Int_t row,Float_t pad,Float_t time);
58   void Local2Global(Float_t *xyz,Int_t sector,Int_t row);
59   void Global2Local(Float_t *xyz,Int_t sector,Bool_t isSlice=kFALSE);
60   void Raw2Global(Float_t *xyz,Int_t sector,Int_t row,Float_t pad,Float_t time);
61   void Local2Raw(Float_t *xyz,Int_t sector,Int_t row);
62   void Global2Raw(Float_t *xyz,Int_t sector,Int_t row);
63   
64   ClassDef(AliL3Transform,1) //Transformation class for ALICE TPC
65 };
66
67
68 #endif