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