Cleaning up a lot
[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   //Pointer 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   AliL3DigitRowData *UpdateDataPointer(AliL3DigitRowData *tempPt);
38   void CreateHistograms(Int_t nxbin=70,Double_t xmin=-0.006,Double_t xmax=0.006,
39                         Int_t nybin=70,Double_t ymin=-0.26,Double_t ymax=0.26);
40   void Transform();
41   
42   Int_t GetSlice() {return fSlice;}
43   Int_t GetPatch() {return fPatch;}
44   Int_t GetNEtaSegments() {return fNEtaSegments;}
45   Double_t GetEtaMin() {return fEtaMin;}
46   Double_t GetEtaMax() {return fEtaMax;}
47   void *GetDataPointer() {return (void*)fDigitRowData;}
48   AliL3Histogram *GetHistogram(Int_t eta_index);
49
50   ClassDef(AliL3HoughTransformer,1)
51
52 };
53
54 inline AliL3Histogram *AliL3HoughTransformer::GetHistogram(Int_t eta_index)
55 {
56   if(!fParamSpace || eta_index >= fNEtaSegments)
57     return 0;
58   if(!fParamSpace[eta_index])
59     return 0;
60   return fParamSpace[eta_index];
61 }
62
63 #endif