]>
Commit | Line | Data |
---|---|---|
b46b53c1 | 1 | #ifndef ALIL3_HOUGHTRANSFORMERVHDL |
2 | #define ALIL3_HOUGHTRANSFORMERVDHL | |
3 | ||
6173606e | 4 | #include <stream.h> |
5 | ||
b46b53c1 | 6 | #include "AliL3RootTypes.h" |
7 | #include "AliL3HoughBaseTransformer.h" | |
8 | ||
6173606e | 9 | #ifdef USEFFLOAT |
10 | #include "AliL3FFloat.h" | |
11 | #else | |
12 | typedef Float_t AliL3FFloat; | |
13 | //#define AliL3FFloat float | |
14 | #endif | |
15 | ||
b46b53c1 | 16 | class AliL3Histogram; |
17 | ||
6173606e | 18 | class AliL3HoughTransformerVhdl : public AliL3HoughBaseTransformer |
19 | { | |
20 | ||
b46b53c1 | 21 | private: |
6173606e | 22 | |
b46b53c1 | 23 | AliL3Histogram **fParamSpace; //! |
6173606e | 24 | #ifdef VHDLVERSION |
25 | Int_t fMinRow; | |
26 | Int_t fMaxRow; | |
27 | Int_t fNRows; | |
28 | Int_t fNEtas; | |
29 | Int_t fNPhi0; | |
30 | Int_t fSector; | |
31 | Int_t fSectorRow; | |
32 | Int_t fZSign; | |
33 | AliL3FFloat fZLengthPlusOff; | |
34 | AliL3FFloat fTimeWidth; | |
35 | AliL3FFloat fPadPitch; | |
36 | AliL3FFloat fEtaSlice; | |
37 | ||
38 | //VESTBO: Here is the problem: it seems that | |
39 | //values into the arrays somehow overwrite | |
40 | //other data member. And that even in the | |
41 | //static version, where I dont use heap!!! | |
42 | #ifdef VHDLSTATIC | |
43 | float fLUTX[32]; | |
44 | float fLUTY[32]; | |
45 | float fLUTEta[256]; | |
46 | float fLUTphi0[256]; | |
47 | float fLUT2sinphi0[256]; | |
48 | float fLUT2cosphi0[256]; | |
49 | #else | |
50 | AliL3FFloat *fLUTX; //! | |
51 | AliL3FFloat *fLUTY; //! | |
52 | AliL3FFloat *fLUTEta; //! | |
53 | AliL3FFloat *fLUTphi0; //! | |
54 | AliL3FFloat *fLUT2sinphi0; //! | |
55 | AliL3FFloat *fLUT2cosphi0; //! | |
56 | #endif | |
57 | ||
58 | Float_t CalcRoverZ2(Float_t eta); | |
59 | Float_t CalcEta(Float_t roverz2); | |
60 | Float_t CalcX(Int_t row); | |
61 | Float_t CalcY(Int_t pad, Int_t row); | |
62 | Float_t CalcZ(Int_t time); | |
63 | ||
64 | Int_t FindIndex(Double_t rz2); | |
65 | #endif | |
b46b53c1 | 66 | void DeleteHistograms(); |
67 | ||
6173606e | 68 | |
b46b53c1 | 69 | public: |
6173606e | 70 | |
b46b53c1 | 71 | AliL3HoughTransformerVhdl(); |
72 | AliL3HoughTransformerVhdl(Int_t slice,Int_t patch,Int_t n_eta_segments); | |
73 | virtual ~AliL3HoughTransformerVhdl(); | |
6173606e | 74 | |
b46b53c1 | 75 | void CreateHistograms(Int_t nxbin,Double_t ptmin,Int_t nybin,Double_t phimin,Double_t phimax); |
76 | void CreateHistograms(Int_t nxbin,Double_t xmin,Double_t xmax, | |
77 | Int_t nybin,Double_t ymin,Double_t ymax); | |
78 | void Reset(); | |
79 | void TransformCircle(); | |
6173606e | 80 | void TransformCircleC(Int_t row_range) {cerr<<"TransformCircleC is not defined!"<<endl;} |
81 | void TransformLine() {cerr<<"TransformLine is not defined!"<<endl;} | |
b46b53c1 | 82 | |
83 | Int_t GetEtaIndex(Double_t eta); | |
84 | AliL3Histogram *GetHistogram(Int_t eta_index); | |
afd8fed4 | 85 | Double_t GetEta(Int_t eta_index,Int_t slice); |
6173606e | 86 | |
87 | #ifdef VHDLVERSION | |
88 | void Print(); | |
89 | void Init(Int_t slice=0,Int_t patch=0,Int_t n_eta_segments=100); | |
90 | #endif | |
b46b53c1 | 91 | |
92 | ClassDef(AliL3HoughTransformerVhdl,1) //Normal Hough transformation class | |
93 | ||
94 | }; | |
95 | ||
b46b53c1 | 96 | #endif |
97 | ||
98 | ||
99 | ||
100 | ||
6173606e | 101 | |
102 |