]>
Commit | Line | Data |
---|---|---|
3e87ef69 | 1 | // @(#) $Id$ |
2 | ||
c52cf5d8 | 3 | #ifndef ALIL3_HOUGHBASETRANSFORMER |
4 | #define ALIL3_HOUGHBASETRANSFORMER | |
5 | ||
6 | #include "AliL3RootTypes.h" | |
7 | ||
1eef4efc | 8 | #ifdef do_mc |
e81ffe36 | 9 | const UInt_t MaxTrack=120; |
1eef4efc | 10 | struct TrackIndex { |
11 | Int_t fLabel[MaxTrack]; | |
0bd0c1ef | 12 | UChar_t fNHits[MaxTrack]; |
13 | UChar_t fCurrentRow[MaxTrack]; | |
1eef4efc | 14 | }; |
15 | typedef struct TrackIndex TrackIndex; | |
16 | #endif | |
17 | ||
c52cf5d8 | 18 | class AliL3DigitRowData; |
19 | class AliL3Histogram; | |
20 | ||
21 | class AliL3HoughBaseTransformer { | |
22 | ||
23 | private: | |
24 | ||
25 | Int_t fSlice; | |
26 | Int_t fPatch; | |
27 | Int_t fNEtaSegments; | |
28 | Double_t fEtaMin; | |
29 | Double_t fEtaMax; | |
3bb06991 | 30 | Int_t fLowerThreshold; |
31 | Int_t fUpperThreshold; | |
c52cf5d8 | 32 | |
33 | AliL3DigitRowData *fDigitRowData; //! | |
0bd0c1ef | 34 | |
35 | Float_t fZVertex; | |
36 | ||
c52cf5d8 | 37 | public: |
e06900d5 | 38 | |
c52cf5d8 | 39 | AliL3HoughBaseTransformer(); |
0bd0c1ef | 40 | AliL3HoughBaseTransformer(Int_t slice,Int_t patch,Int_t n_eta_segments,Float_t zvertex=0.0); |
c52cf5d8 | 41 | virtual ~AliL3HoughBaseTransformer(); |
42 | ||
0615a438 | 43 | void SetInputData(UInt_t /*ndigits*/,AliL3DigitRowData *ptr) {fDigitRowData = ptr;} |
c52cf5d8 | 44 | |
1f1942b8 | 45 | //this is for adaptave histograms |
dd7d3870 | 46 | virtual void CreateHistograms(Float_t /*ptmin*/,Float_t /*ptmax*/,Float_t /*pres*/,Int_t /*nybin*/,Float_t /*psi*/) |
1f1942b8 | 47 | {STDCERR<<"Adaptive histograms are not supported for this Transformer!"<<STDENDL;} |
48 | ||
b2a02bce | 49 | virtual void CreateHistograms(Int_t nxbin,Float_t ptmin,Int_t nybin,Float_t phimin,Float_t phimax) = 0; |
50 | virtual void CreateHistograms(Int_t nxbin,Float_t xmin,Float_t xmax,Int_t nybin,Float_t ymin,Float_t ymax) = 0; | |
1f1942b8 | 51 | |
c52cf5d8 | 52 | virtual void Reset() = 0; |
1f1942b8 | 53 | virtual void TransformCircle() |
54 | {STDCERR<<"TransformCircle is not defined for this transformer!"<<STDENDL;} | |
dd7d3870 | 55 | virtual void TransformCircle(Int_t */*row_range*/,Int_t /*every*/) |
1f1942b8 | 56 | {STDCERR<<"TransformCircle is not defined for this transformer!"<<STDENDL;} |
dd7d3870 | 57 | virtual void TransformCircleC(Int_t */*row_range*/,Int_t /*every*/) |
1f1942b8 | 58 | {STDCERR<<"TransformCircleC is not defined for this transformer!"<<STDENDL;} |
dd7d3870 | 59 | virtual void TransformLine(Int_t */*rowrange*/=0,Float_t */*phirange*/=0) |
1f1942b8 | 60 | {STDCERR<<"TransformLine is not defined for this Transformer!"<<STDENDL;} |
dd7d3870 | 61 | virtual void TransformLineC(Int_t */*rowrange*/,Float_t */*phirange*/) |
1f1942b8 | 62 | {STDCERR<<"TransformLineC is not defined for this Transformer!"<<STDENDL;} |
63 | ||
c52cf5d8 | 64 | //Getters |
974fb714 | 65 | Int_t GetSlice() const {return fSlice;} |
66 | Int_t GetPatch() const {return fPatch;} | |
67 | Int_t GetNEtaSegments() const {return fNEtaSegments;} | |
68 | Int_t GetLowerThreshold() const {return fLowerThreshold;} | |
69 | Int_t GetUpperThreshold() const {return fUpperThreshold;} | |
70 | Double_t GetEtaMin() const {return fEtaMin;} | |
71 | Double_t GetEtaMax() const {return fEtaMax;} | |
72 | Float_t GetZVertex() const {return fZVertex;} | |
0bd0c1ef | 73 | |
c52cf5d8 | 74 | AliL3DigitRowData *GetDataPointer() {return fDigitRowData;} |
75 | ||
76 | virtual Int_t GetEtaIndex(Double_t eta) = 0; | |
dd7d3870 | 77 | virtual void GetEtaIndexes(Double_t /*eta*/,Int_t */*indexes*/) |
1f1942b8 | 78 | {STDCERR<<"GetEtaIndexes not implemented for this Transformer class"<<STDENDL;} |
c52cf5d8 | 79 | virtual AliL3Histogram *GetHistogram(Int_t eta_index) = 0; |
974fb714 | 80 | virtual Double_t GetEta(Int_t eta_index,Int_t slice) const = 0; |
1f1942b8 | 81 | |
dd7d3870 | 82 | virtual Int_t GetTrackID(Int_t /*eta_index*/,Double_t /*kappa*/,Double_t /*psi*/){ |
1f1942b8 | 83 | STDCERR<<"GetTrackID not implemented for this Transformer class"<<STDENDL; |
84 | return -1; | |
85 | } | |
1eef4efc | 86 | |
c52cf5d8 | 87 | //setters |
3e87ef69 | 88 | virtual void Init(Int_t slice=0,Int_t patch=0,Int_t n_eta_segments=100,Int_t n_segs=-1); |
3bb06991 | 89 | void SetLowerThreshold(Int_t i) {fLowerThreshold = i;} |
90 | void SetUpperThreshold(Int_t i) {fUpperThreshold = i;} | |
c52cf5d8 | 91 | |
65ca0c00 | 92 | virtual void Print(){}; |
93 | ||
c52cf5d8 | 94 | ClassDef(AliL3HoughBaseTransformer,1) //Hough transformation base class |
95 | ||
96 | }; | |
97 | ||
98 | ||
99 | #endif | |
65ca0c00 | 100 |