]>
Commit | Line | Data |
---|---|---|
d5d754e5 | 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; | |
3bcf971b | 25 | Int_t fSlice; |
d5d754e5 | 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; //! | |
18659a6b | 40 | Float_t *fLUTKappa; //! |
d5d754e5 | 41 | |
18659a6b | 42 | Int_t fLastPad; |
43 | Int_t fLastIndex; | |
44 | ||
d5d754e5 | 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 | ||
18659a6b | 51 | Int_t FindIndex(Float_t rz2, Int_t start=-100); |
d5d754e5 | 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 |