]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/hough/AliL3HoughTransformerVhdl.h
Slice information is needed by the transformer in
[u/mrichter/AliRoot.git] / HLT / hough / AliL3HoughTransformerVhdl.h
CommitLineData
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
12typedef Float_t AliL3FFloat;
13//#define AliL3FFloat float
14#endif
15
b46b53c1 16class AliL3Histogram;
17
6173606e 18class 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