f2a46af585c44970825f8e414fbffd1a3bce11c9
[u/mrichter/AliRoot.git] / HLT / hough / AliL3HoughTransformerGlobal.h
1 // @(#) $Id$
2
3 #ifndef ALIL3_HOUGHTRANSFORMERGLOBAL
4 #define ALIL3_HOUGHTRANSFORMERGLOBAL
5
6 #include "AliL3RootTypes.h"
7 #include "AliL3HoughTransformer.h"
8
9 class AliL3Histogram;
10 class AliL3MemHandler;
11 class AliL3TrackArray;
12 class AliL3HoughMaxFinder;
13 class TH2F;
14
15 struct Seed {
16   Float_t fPhi;
17   Float_t fRadius;
18   Float_t fEta;
19   Int_t fIndex;
20 };
21
22 class AliL3HoughTransformerGlobal : public AliL3HoughTransformer {
23   
24  private:
25   Int_t fEvent;
26   Char_t fPath[1024]; 
27   Int_t *fPadMin;  //!
28   Int_t *fPadMax;  //!
29   Int_t fNActiveSlice;
30   Float_t fPsi;
31   Float_t fPtMin;
32   Int_t fSeedPadRow;
33   AliL3MemHandler **fMemHandler; //!
34   AliL3TrackArray *fTracks; //!
35   AliL3HoughMaxFinder *fPeakFinder; //!
36   
37   void Rotate(Float_t *xyz,Int_t rel_slice);
38   void FindPeaks(AliL3Histogram *hist,Float_t eta);
39   Int_t LoadClusterSeeds(Seed *seeds);
40   Float_t CalculateBorder(Float_t *xyz,Int_t charge);
41   
42  public:
43   AliL3HoughTransformerGlobal(); 
44   AliL3HoughTransformerGlobal(Char_t *path,Int_t event=0); 
45   virtual ~AliL3HoughTransformerGlobal();
46   
47   void CreateHistograms(Int_t nxbin,Int_t nybin);
48   void VerifyTracks(AliL3TrackArray *tracks,Int_t &index);
49   void TransformCircle();
50   void TransformCircleC();
51   void DefineRegion(Float_t ptmin,Float_t linephi,Int_t seedpadrow);
52   void LoadActiveSlices(Bool_t binary=kTRUE);
53   void UnloadActiveSlices();
54   void DisplayActiveRegion(TH2F *hist,Int_t eta_index=0);
55   
56   void SetSeedPadRow(Int_t i) {fSeedPadRow=i;}
57   
58   AliL3TrackArray *GetTracks() {return fTracks;}
59   
60   ClassDef(AliL3HoughTransformerGlobal,1) 
61
62 };
63
64 #endif
65
66
67
68