]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/hough/AliL3HoughBaseTransformer.h
Merged HLT tag v1-2 with ALIROOT tag v3-09-Release.
[u/mrichter/AliRoot.git] / HLT / hough / AliL3HoughBaseTransformer.h
1 // @(#) $Id$
2
3 #ifndef ALIL3_HOUGHBASETRANSFORMER
4 #define ALIL3_HOUGHBASETRANSFORMER
5
6 #include "AliL3RootTypes.h"
7
8 #ifdef do_mc
9 const UInt_t MaxTrack=35;
10 struct TrackIndex {
11   Int_t fLabel[MaxTrack];
12   Int_t fNHits[MaxTrack];
13 };
14 typedef struct TrackIndex TrackIndex;
15 #endif
16
17 class AliL3DigitRowData;
18 class AliL3Histogram;
19
20 class AliL3HoughBaseTransformer {
21   
22  private:
23
24   Int_t fSlice;
25   Int_t fPatch;
26   Int_t fNEtaSegments;
27   Double_t fEtaMin;
28   Double_t fEtaMax;
29   Int_t fLowerThreshold;
30   Int_t fUpperThreshold;
31   
32   AliL3DigitRowData *fDigitRowData; //!
33   
34  public:
35
36   AliL3HoughBaseTransformer(); 
37   AliL3HoughBaseTransformer(Int_t slice,Int_t patch,Int_t n_eta_segments);
38   virtual ~AliL3HoughBaseTransformer();
39   
40   void SetInputData(UInt_t ndigits,AliL3DigitRowData *ptr) {fDigitRowData = ptr;}
41   
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;
48   
49   //Getters
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;}
57   
58   AliL3DigitRowData *GetDataPointer() {return fDigitRowData;}
59  
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;}
65   
66   //setters
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;}
70
71   virtual void Print(){};
72
73   ClassDef(AliL3HoughBaseTransformer,1) //Hough transformation base class
74
75 };
76
77
78 #endif
79