]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/hough/AliL3HoughTransformerVhdl.h
Added LUT transformer and new function to set parameter for VHDL transformer.
[u/mrichter/AliRoot.git] / HLT / hough / AliL3HoughTransformerVhdl.h
CommitLineData
b46b53c1 1#ifndef ALIL3_HOUGHTRANSFORMERVHDL
2#define ALIL3_HOUGHTRANSFORMERVDHL
3
4#include "AliL3RootTypes.h"
5#include "AliL3HoughBaseTransformer.h"
6173606e 6#include "AliL3FFloat.h"
6173606e 7
b46b53c1 8class AliL3Histogram;
9
6173606e 10class AliL3HoughTransformerVhdl : public AliL3HoughBaseTransformer
11{
12
b46b53c1 13 private:
6173606e 14
b46b53c1 15 AliL3Histogram **fParamSpace; //!
e6cdf93b 16
6173606e 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
e6cdf93b 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 */
6173606e 44#else
45 AliL3FFloat *fLUTX; //!
46 AliL3FFloat *fLUTY; //!
47 AliL3FFloat *fLUTEta; //!
48 AliL3FFloat *fLUTphi0; //!
49 AliL3FFloat *fLUT2sinphi0; //!
50 AliL3FFloat *fLUT2cosphi0; //!
51#endif
e6cdf93b 52
53
54#if 0
6173606e 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);
e6cdf93b 62#endif
6173606e 63#endif
b46b53c1 64 void DeleteHistograms();
65
66 public:
6173606e 67
b46b53c1 68 AliL3HoughTransformerVhdl();
69 AliL3HoughTransformerVhdl(Int_t slice,Int_t patch,Int_t n_eta_segments);
70 virtual ~AliL3HoughTransformerVhdl();
6173606e 71
b46b53c1 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();
e6cdf93b 77 void TransformCircleC(Int_t row_range) {STDCERR<<"TransformCircleC is not defined!"<<STDENDL;}
78 void TransformLine() {STDCERR<<"TransformLine is not defined!"<<STDENDL;}
b46b53c1 79
80 Int_t GetEtaIndex(Double_t eta);
81 AliL3Histogram *GetHistogram(Int_t eta_index);
afd8fed4 82 Double_t GetEta(Int_t eta_index,Int_t slice);
6173606e 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
b46b53c1 88
89 ClassDef(AliL3HoughTransformerVhdl,1) //Normal Hough transformation class
90
91};
92
b46b53c1 93#endif
94
95
96
97
6173606e 98
99