67982aa075012142c167d88251ae5fde7412d07a
[u/mrichter/AliRoot.git] / HLT / hough / AliL3HoughTransformer.h
1 // @(#) $Id$
2
3 #ifndef ALIL3_HOUGHTRANSFORMER
4 #define ALIL3_HOUGHTRANSFORMER
5
6 #include "AliL3RootTypes.h"
7 #include "AliL3HoughBaseTransformer.h"
8
9 class AliL3Histogram;
10
11 class AliL3HoughTransformer : public AliL3HoughBaseTransformer {
12   
13  private:
14   
15   AliL3Histogram **fParamSpace; //!
16 #ifdef do_mc
17   TrackIndex **fTrackID; //!
18 #endif
19   Bool_t fDoMC;
20   Bool_t fEtaOverlap;
21   
22   void DeleteHistograms();
23
24  public:
25   AliL3HoughTransformer(); 
26   AliL3HoughTransformer(Int_t slice,Int_t patch,Int_t n_eta_segments,Bool_t DoEtaOverlap=kFALSE,Bool_t DoMC=kFALSE);
27   virtual ~AliL3HoughTransformer();
28   
29   void CreateHistograms(Int_t nxbin,Double_t ptmin,Int_t nybin,Double_t phimin,Double_t phimax);
30   void CreateHistograms(Int_t nxbin,Double_t xmin,Double_t xmax,
31                         Int_t nybin,Double_t ymin,Double_t ymax);
32   void Reset();
33   void TransformCircle();
34   void TransformCircleC(Int_t *row_range,Int_t every=1);
35   void TransformLine(Int_t *rowrange=0,Float_t *phirange=0);
36   void TransformLineC(Int_t *rowrange,Float_t *phirange);
37
38   Int_t GetEtaIndex(Double_t eta);
39   void GetEtaIndexes(Double_t eta,Int_t *indexes);
40   AliL3Histogram *GetHistogram(Int_t eta_index);
41   Double_t GetEta(Int_t eta_index,Int_t slice);
42   Int_t GetTrackID(Int_t eta_index,Double_t kappa,Double_t psi);
43   
44   ClassDef(AliL3HoughTransformer,1) //Normal Hough transformation class
45
46 };
47
48 #endif
49
50
51
52