7645574bdccc281c8e7bec3c3f80b9552c5ea2bd
[u/mrichter/AliRoot.git] / HLT / hough / AliL3HoughBaseTransformer.h
1 #ifndef ALIL3_HOUGHBASETRANSFORMER
2 #define ALIL3_HOUGHBASETRANSFORMER
3
4 #include "AliL3RootTypes.h"
5
6 class AliL3DigitRowData;
7 class AliL3Histogram;
8
9 class AliL3HoughBaseTransformer {
10   
11  private:
12
13   Int_t fSlice;
14   Int_t fPatch;
15   Int_t fNEtaSegments;
16   Double_t fEtaMin;
17   Double_t fEtaMax;
18   Int_t fLowerThreshold;
19   Int_t fUpperThreshold;
20   
21   AliL3DigitRowData *fDigitRowData; //!
22   
23  public:
24   AliL3HoughBaseTransformer(); 
25   AliL3HoughBaseTransformer(Int_t slice,Int_t patch,Int_t n_eta_segments);
26   virtual ~AliL3HoughBaseTransformer();
27   
28   void SetInputData(UInt_t ndigits,AliL3DigitRowData *ptr) {fDigitRowData = ptr;}
29   
30   virtual void CreateHistograms(Int_t nxbin,Double_t ptmin,Int_t nybin,Double_t phimin,Double_t phimax) = 0;
31   virtual void CreateHistograms(Int_t nxbin,Double_t xmin,Double_t xmax,Int_t nybin,Double_t ymin,Double_t ymax) = 0;
32   virtual void Reset() = 0;
33   virtual void TransformCircle() = 0;
34   virtual void TransformCircleC(Int_t row_range) = 0;
35   virtual void TransformLine() = 0;
36
37   //Getters
38   Int_t GetSlice() {return fSlice;}
39   Int_t GetPatch() {return fPatch;}
40   Int_t GetNEtaSegments() {return fNEtaSegments;}
41   Int_t GetLowerThreshold() {return fLowerThreshold;}
42   Int_t GetUpperThreshold() {return fUpperThreshold;}
43   Double_t GetEtaMin() {return fEtaMin;}
44   Double_t GetEtaMax() {return fEtaMax;}
45   
46   AliL3DigitRowData *GetDataPointer() {return fDigitRowData;}
47  
48   virtual Int_t GetEtaIndex(Double_t eta) = 0;
49   virtual AliL3Histogram *GetHistogram(Int_t eta_index) = 0;
50   
51   //setters
52   void SetLowerThreshold(Int_t i) {fLowerThreshold = i;}
53   void SetUpperThreshold(Int_t i) {fUpperThreshold = i;}
54
55   ClassDef(AliL3HoughBaseTransformer,1) //Hough transformation base class
56
57 };
58
59
60 #endif