UpdateRowPointer is now static function in memhandler.
[u/mrichter/AliRoot.git] / HLT / hough / AliL3HoughTransformer.h
1 #ifndef ALIL3_HOUGHTRANSFORMER
2 #define ALIL3_HOUGHTRANSFORMER
3
4 #include "AliL3RootTypes.h"
5
6 class AliL3Transform;
7 class AliL3Histogram;
8 class AliL3DigitRowData;
9
10 class AliL3HoughTransformer : public TObject {
11   
12  private:
13
14   Int_t fSlice;
15   Int_t fPatch;
16   Int_t fNEtaSegments;
17   Double_t fEtaMin;
18   Double_t fEtaMax;
19   Int_t fThreshold;
20   AliL3Transform *fTransform; //!
21   
22   //Pointers to histograms
23   AliL3Histogram **fParamSpace; //!
24
25   //Data pointers
26   UInt_t fNDigitRowData;
27   AliL3DigitRowData *fDigitRowData; //!
28   
29   void DeleteHistograms();
30
31  public:
32   AliL3HoughTransformer(); 
33   AliL3HoughTransformer(Int_t slice,Int_t patch,Int_t n_eta_segments);
34   virtual ~AliL3HoughTransformer();
35   
36   void SetInputData(UInt_t ndigits,AliL3DigitRowData *ptr);
37   void CreateHistograms(Int_t nxbin,Double_t ptmin,Int_t nybin,Double_t phimin,Double_t phimax);
38   void CreateHistograms(Int_t nxbin=64,Double_t xmin=-0.006,Double_t xmax=0.006,
39                         Int_t nybin=64,Double_t ymin=-0.26,Double_t ymax=0.26);
40   void Reset();
41   void TransformCircle();
42   void TransformLine();
43
44   //Getters
45   Int_t GetSlice() {return fSlice;}
46   Int_t GetPatch() {return fPatch;}
47   Int_t GetNEtaSegments() {return fNEtaSegments;}
48   Int_t GetThreshold() {return fThreshold;}
49   Double_t GetEtaMin() {return fEtaMin;}
50   Double_t GetEtaMax() {return fEtaMax;}
51   void *GetDataPointer() {return (void*)fDigitRowData;}
52   AliL3Histogram *GetHistogram(Int_t eta_index);
53   
54   //setters
55   void SetThreshold(Int_t i) {fThreshold = i;}
56
57   ClassDef(AliL3HoughTransformer,1)
58
59 };
60
61 inline AliL3Histogram *AliL3HoughTransformer::GetHistogram(Int_t eta_index)
62 {
63   if(!fParamSpace || eta_index >= fNEtaSegments)
64     return 0;
65   if(!fParamSpace[eta_index])
66     return 0;
67   return fParamSpace[eta_index];
68 }
69
70 #endif