]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/hough/AliL3HoughTransformerLUT.h
New class to make V2 clusters starting from digits or hits (fast simulation). Origin...
[u/mrichter/AliRoot.git] / HLT / hough / AliL3HoughTransformerLUT.h
1 #ifndef ALIL3_HOUGHTRANSFORMERLUT
2 #define ALIL3_HOUGHTRANSFORMERLUT
3
4 #include "AliL3RootTypes.h"
5 #include "AliL3HoughBaseTransformer.h"
6
7 class AliL3Histogram;
8
9 class AliL3HoughTransformerLUT : public AliL3HoughBaseTransformer {
10   
11  protected:
12   AliL3Histogram **fParamSpace; //!
13 #ifdef do_mc
14   TrackIndex **fTrackID; //!
15 #endif
16   Bool_t fDoMC;
17
18   void DeleteHistograms();
19   
20   Int_t fMinRow;
21   Int_t fMaxRow;
22   Int_t fNRows;
23   Int_t fNEtas;
24   Int_t fNPhi0;
25   Int_t fSlice;
26   Int_t fSector;
27   Int_t fSectorRow;
28   Int_t fZSign;
29   Float_t fZLengthPlusOff;
30   Float_t fTimeWidth;
31   Float_t fPadPitch;
32   Float_t fEtaSlice;
33
34   Float_t *fLUTX; //!
35   Float_t *fLUTY; //!
36   Float_t *fLUTEta; //!
37   Float_t *fLUTphi0; //!
38   Float_t *fLUT2sinphi0; //!   
39   Float_t *fLUT2cosphi0; //!
40   Float_t *fLUTKappa; //!
41   
42   Int_t fLastPad;
43   Int_t fLastIndex;
44
45   Float_t CalcRoverZ2(Float_t eta);
46   Float_t CalcEta(Float_t roverz2);
47   Float_t CalcX(Int_t row);
48   Float_t CalcY(Int_t pad, Int_t row);
49   Float_t CalcZ(Int_t time);  
50
51   Int_t FindIndex(Float_t rz2, Int_t start=-100);
52
53  public:
54
55   AliL3HoughTransformerLUT(); 
56   AliL3HoughTransformerLUT(Int_t slice,Int_t patch,Int_t n_eta_segments);
57   virtual ~AliL3HoughTransformerLUT();
58   
59   void CreateHistograms(Int_t nxbin,Double_t ptmin,Int_t nybin,Double_t phimin,Double_t phimax);
60   void CreateHistograms(Int_t nxbin,Double_t xmin,Double_t xmax,Int_t nybin,Double_t ymin,Double_t ymax);
61   void Reset();
62
63   void TransformCircle();
64   void TransformCircleC(Int_t row_range){STDCERR<<"TransformCircleC is not defined for this transformer!"<<STDENDL;}
65   void TransformLine() {STDCERR<<"TransformLine is not defined for this transformer!"<<STDENDL;}
66
67   Int_t GetEtaIndex(Double_t eta);
68   AliL3Histogram *GetHistogram(Int_t eta_index);
69   Double_t GetEta(Int_t eta_index,Int_t slice);
70   Int_t GetTrackID(Int_t eta_index,Double_t kappa,Double_t psi);
71   
72   void Print();
73   void Init(Int_t slice=0,Int_t patch=0,Int_t n_eta_segments=100);
74   
75   ClassDef(AliL3HoughTransformerLUT,1) //Normal Hough transformation class
76
77 };
78
79 #endif