3 #ifndef ALIL3_HOUGHTRANSFORMERLUT
4 #define ALIL3_HOUGHTRANSFORMERLUT
6 #include "AliL3RootTypes.h"
7 #include "AliL3HoughBaseTransformer.h"
11 class AliL3HoughTransformerLUT : public AliL3HoughBaseTransformer {
14 AliL3Histogram **fParamSpace; //!
16 TrackIndex **fTrackID; //!
20 void DeleteHistograms();
31 Float_t fZLengthPlusOff;
39 Float_t *fLUTEtaReal; //!
40 Float_t *fLUTphi0; //!
41 Float_t *fLUT2sinphi0; //!
42 Float_t *fLUT2cosphi0; //!
43 Float_t *fLUTKappa; //!
49 Float_t CalcRoverZ2(Float_t eta);
50 Float_t CalcEta(Float_t roverz2);
51 Float_t CalcX(Int_t row);
52 Float_t CalcY(Int_t pad, Int_t row);
53 Float_t CalcZ(Int_t time);
55 Int_t FindIndex(Float_t rz2, Int_t start=-100);
56 void AddCurveToHistogram(Int_t new_eta_index=-1);
60 AliL3HoughTransformerLUT();
61 AliL3HoughTransformerLUT(Int_t slice,Int_t patch,Int_t n_eta_segments);
62 virtual ~AliL3HoughTransformerLUT();
64 void CreateHistograms(Int_t nxbin,Double_t ptmin,Int_t nybin,Double_t phimin,Double_t phimax);
65 void CreateHistograms(Int_t nxbin,Double_t xmin,Double_t xmax,Int_t nybin,Double_t ymin,Double_t ymax);
68 void TransformCircle();
69 void TransformCircleC(Int_t *row_range,Int_t every){STDCERR<<"TransformCircleC is not defined for this transformer!"<<STDENDL;}
70 void TransformLine(Int_t *rowrange=0,Float_t *phirange=0) {STDCERR<<"TransformLine is not defined for this transformer!"<<STDENDL;}
72 Int_t GetEtaIndex(Double_t eta);
73 AliL3Histogram *GetHistogram(Int_t eta_index);
74 Double_t GetEta(Int_t eta_index,Int_t slice);
75 Int_t GetTrackID(Int_t eta_index,Double_t kappa,Double_t psi);
78 void Init(Int_t slice=0,Int_t patch=0,Int_t n_eta_segments=100,Int_t n_seqs=-1);
80 ClassDef(AliL3HoughTransformerLUT,1) //Normal Hough transformation class