1 #ifndef ALIL3_HOUGHBASETRANSFORMER
2 #define ALIL3_HOUGHBASETRANSFORMER
4 #include "AliL3RootTypes.h"
7 const UInt_t MaxTrack=15;
9 Int_t fLabel[MaxTrack];
10 Int_t fNHits[MaxTrack];
12 typedef struct TrackIndex TrackIndex;
15 class AliL3DigitRowData;
18 class AliL3HoughBaseTransformer {
27 Int_t fLowerThreshold;
28 Int_t fUpperThreshold;
30 AliL3DigitRowData *fDigitRowData; //!
34 AliL3HoughBaseTransformer();
35 AliL3HoughBaseTransformer(Int_t slice,Int_t patch,Int_t n_eta_segments);
36 virtual ~AliL3HoughBaseTransformer();
38 void SetInputData(UInt_t ndigits,AliL3DigitRowData *ptr) {fDigitRowData = ptr;}
40 virtual void CreateHistograms(Int_t nxbin,Double_t ptmin,Int_t nybin,Double_t phimin,Double_t phimax) = 0;
41 virtual void CreateHistograms(Int_t nxbin,Double_t xmin,Double_t xmax,Int_t nybin,Double_t ymin,Double_t ymax) = 0;
42 virtual void Reset() = 0;
43 virtual void TransformCircle() = 0;
44 virtual void TransformCircleC(Int_t row_range) = 0;
45 virtual void TransformLine() = 0;
48 Int_t GetSlice() {return fSlice;}
49 Int_t GetPatch() {return fPatch;}
50 Int_t GetNEtaSegments() {return fNEtaSegments;}
51 Int_t GetLowerThreshold() {return fLowerThreshold;}
52 Int_t GetUpperThreshold() {return fUpperThreshold;}
53 Double_t GetEtaMin() {return fEtaMin;}
54 Double_t GetEtaMax() {return fEtaMax;}
56 AliL3DigitRowData *GetDataPointer() {return fDigitRowData;}
58 virtual Int_t GetEtaIndex(Double_t eta) = 0;
59 virtual AliL3Histogram *GetHistogram(Int_t eta_index) = 0;
60 virtual Double_t GetEta(Int_t eta_index,Int_t slice) = 0;
61 virtual Int_t GetTrackID(Int_t eta_index,Double_t kappa,Double_t psi) {return -1;}
64 virtual void Init(Int_t slice=0,Int_t patch=0,Int_t n_eta_segments=100);
65 void SetLowerThreshold(Int_t i) {fLowerThreshold = i;}
66 void SetUpperThreshold(Int_t i) {fUpperThreshold = i;}
68 virtual void Print(){};
70 ClassDef(AliL3HoughBaseTransformer,1) //Hough transformation base class