8d7d8ce207725cdd82195178a52ea8fe128801c7
[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 fThreshold;
19   
20   AliL3DigitRowData *fDigitRowData; //!
21   
22  public:
23   AliL3HoughBaseTransformer(); 
24   AliL3HoughBaseTransformer(Int_t slice,Int_t patch,Int_t n_eta_segments);
25   virtual ~AliL3HoughBaseTransformer();
26   
27   void SetInputData(UInt_t ndigits,AliL3DigitRowData *ptr) {fDigitRowData = ptr;}
28   
29   virtual void CreateHistograms(Int_t nxbin,Double_t ptmin,Int_t nybin,Double_t phimin,Double_t phimax) = 0;
30   virtual void CreateHistograms(Int_t nxbin,Double_t xmin,Double_t xmax,Int_t nybin,Double_t ymin,Double_t ymax) = 0;
31   virtual void Reset() = 0;
32   virtual void TransformCircle() = 0;
33   virtual void TransformCircleC(Int_t row_range) = 0;
34   virtual void TransformLine() = 0;
35
36   //Getters
37   Int_t GetSlice() {return fSlice;}
38   Int_t GetPatch() {return fPatch;}
39   Int_t GetNEtaSegments() {return fNEtaSegments;}
40   Int_t GetThreshold() {return fThreshold;}
41   Double_t GetEtaMin() {return fEtaMin;}
42   Double_t GetEtaMax() {return fEtaMax;}
43   
44   AliL3DigitRowData *GetDataPointer() {return fDigitRowData;}
45  
46   virtual Int_t GetEtaIndex(Double_t eta) = 0;
47   virtual AliL3Histogram *GetHistogram(Int_t eta_index) = 0;
48   
49   //setters
50   void SetThreshold(Int_t i) {fThreshold = i;}
51
52   ClassDef(AliL3HoughBaseTransformer,1) //Hough transformation base class
53
54 };
55
56
57 #endif