]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/hough/AliL3HoughBaseTransformer.h
New methods and data member added by M. Horner.
[u/mrichter/AliRoot.git] / HLT / hough / AliL3HoughBaseTransformer.h
1 #ifndef ALIL3_HOUGHBASETRANSFORMER
2 #define ALIL3_HOUGHBASETRANSFORMER
3
4 #include "AliL3RootTypes.h"
5
6 #ifdef do_mc
7 const UInt_t MaxTrack=15;
8 struct TrackIndex {
9   Int_t fLabel[MaxTrack];
10   Int_t fNHits[MaxTrack];
11 };
12 typedef struct TrackIndex TrackIndex;
13 #endif
14
15 class AliL3DigitRowData;
16 class AliL3Histogram;
17
18 class AliL3HoughBaseTransformer {
19   
20  private:
21
22   Int_t fSlice;
23   Int_t fPatch;
24   Int_t fNEtaSegments;
25   Double_t fEtaMin;
26   Double_t fEtaMax;
27   Int_t fLowerThreshold;
28   Int_t fUpperThreshold;
29   
30   AliL3DigitRowData *fDigitRowData; //!
31   
32  public:
33
34   AliL3HoughBaseTransformer(); 
35   AliL3HoughBaseTransformer(Int_t slice,Int_t patch,Int_t n_eta_segments);
36   virtual ~AliL3HoughBaseTransformer();
37   
38   void SetInputData(UInt_t ndigits,AliL3DigitRowData *ptr) {fDigitRowData = ptr;}
39   
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;
46   
47   //Getters
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;}
55   
56   AliL3DigitRowData *GetDataPointer() {return fDigitRowData;}
57  
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;}
62   
63   //setters
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;}
67
68   virtual void Print(){};
69
70   ClassDef(AliL3HoughBaseTransformer,1) //Hough transformation base class
71
72 };
73
74
75 #endif
76