3 #ifndef ALIL3_HOUGHBASETRANSFORMER
4 #define ALIL3_HOUGHBASETRANSFORMER
6 #include "AliL3RootTypes.h"
9 const UInt_t MaxTrack=35;
11 Int_t fLabel[MaxTrack];
12 Int_t fNHits[MaxTrack];
14 typedef struct TrackIndex TrackIndex;
17 class AliL3DigitRowData;
20 class AliL3HoughBaseTransformer {
29 Int_t fLowerThreshold;
30 Int_t fUpperThreshold;
32 AliL3DigitRowData *fDigitRowData; //!
36 AliL3HoughBaseTransformer();
37 AliL3HoughBaseTransformer(Int_t slice,Int_t patch,Int_t n_eta_segments);
38 virtual ~AliL3HoughBaseTransformer();
40 void SetInputData(UInt_t ndigits,AliL3DigitRowData *ptr) {fDigitRowData = ptr;}
42 virtual void CreateHistograms(Int_t nxbin,Double_t ptmin,Int_t nybin,Double_t phimin,Double_t phimax) = 0;
43 virtual void CreateHistograms(Int_t nxbin,Double_t xmin,Double_t xmax,Int_t nybin,Double_t ymin,Double_t ymax) = 0;
44 virtual void Reset() = 0;
45 virtual void TransformCircle() = 0;
46 virtual void TransformCircleC(Int_t *row_range,Int_t every=1) = 0;
47 virtual void TransformLine(Int_t *rowrange=0,Float_t *phirange=0) = 0;
50 Int_t GetSlice() {return fSlice;}
51 Int_t GetPatch() {return fPatch;}
52 Int_t GetNEtaSegments() {return fNEtaSegments;}
53 Int_t GetLowerThreshold() {return fLowerThreshold;}
54 Int_t GetUpperThreshold() {return fUpperThreshold;}
55 Double_t GetEtaMin() {return fEtaMin;}
56 Double_t GetEtaMax() {return fEtaMax;}
58 AliL3DigitRowData *GetDataPointer() {return fDigitRowData;}
60 virtual Int_t GetEtaIndex(Double_t eta) = 0;
61 virtual void GetEtaIndexes(Double_t eta,Int_t *indexes) {STDCERR<<"GetEtaIndexes not implemented for this Transformer class"<<STDENDL;}
62 virtual AliL3Histogram *GetHistogram(Int_t eta_index) = 0;
63 virtual Double_t GetEta(Int_t eta_index,Int_t slice) = 0;
64 virtual Int_t GetTrackID(Int_t eta_index,Double_t kappa,Double_t psi) {return -1;}
67 virtual void Init(Int_t slice=0,Int_t patch=0,Int_t n_eta_segments=100,Int_t n_segs=-1);
68 void SetLowerThreshold(Int_t i) {fLowerThreshold = i;}
69 void SetUpperThreshold(Int_t i) {fUpperThreshold = i;}
71 virtual void Print(){};
73 ClassDef(AliL3HoughBaseTransformer,1) //Hough transformation base class