]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/hough/AliL3HoughTransformerGlobal.h
added data source and sink base components
[u/mrichter/AliRoot.git] / HLT / hough / AliL3HoughTransformerGlobal.h
1 // @(#) $Id$
2
3 #ifndef ALIL3HOUGHTRANSFORMERGLOBAL_H
4 #define ALIL3HOUGHTRANSFORMERGLOBAL_H
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 AliL3Seed {
16   Float_t fPhi;//Track emission angle
17   Float_t fRadius;//Track radius
18   Float_t fEta;//Track eta
19   Int_t fIndex;//index?
20 };
21
22 class AliL3HoughTransformerGlobal : public AliL3HoughTransformer {
23
24  public:
25   AliL3HoughTransformerGlobal(); 
26   AliL3HoughTransformerGlobal(Char_t *path,Int_t event=0); 
27   virtual ~AliL3HoughTransformerGlobal();
28   
29   void CreateHistograms(Float_t ptmin,Int_t nxbin,Int_t nybin);
30   void CreateHistograms(Float_t ptmin,Float_t ptmax,Float_t pres,Int_t nybin,Float_t psi) {
31     AliL3HoughTransformer::CreateHistograms(ptmin,ptmax,pres,nybin,psi);
32   }
33   void CreateHistograms(Int_t nxbin,Float_t ptmin,Int_t nybin,Float_t phimin,Float_t phimax) {
34     AliL3HoughTransformer::CreateHistograms(nxbin,ptmin,nybin,phimin,phimax);
35   }
36   void CreateHistograms(Int_t nxbin,Float_t xmin,Float_t xmax,
37                         Int_t nybin,Float_t ymin,Float_t ymax) {
38     AliL3HoughTransformer::CreateHistograms(nxbin,xmin,xmax,nybin,ymin,ymax);
39   }
40   void VerifyTracks(AliL3TrackArray *tracks,Int_t &index);
41   void TransformCircle();
42   void TransformCircle(Int_t *row_range,Int_t every) {
43     AliL3HoughTransformer::TransformCircle(row_range,every);
44   }
45   void TransformCircleC();
46   void TransformCircleC(Int_t *rowrange,Int_t every){
47     AliL3HoughTransformer::TransformCircleC(rowrange,every);
48   }
49   void DefineRegion(Float_t ptmin,Float_t linephi,Int_t seedpadrow);
50   void LoadActiveSlices(Bool_t binary=kTRUE);
51   void UnloadActiveSlices();
52   void DisplayActiveRegion(TH2F *hist,Int_t etaindex=0);
53   
54   void SetSeedPadRow(Int_t i) {fSeedPadRow=i;}
55   
56   AliL3TrackArray *GetTracks() {return fTracks;}
57   
58  private:
59   Int_t fEvent;//Event index
60   Char_t fPath[1024];//path to the input files
61   Int_t *fPadMin;  //!
62   Int_t *fPadMax;  //!
63   Int_t fNActiveSlice;//number of active slices
64   Float_t fPsi;//psi range
65   Float_t fPtMin;//minimum pt
66   Int_t fSeedPadRow;//?
67   AliL3MemHandler **fMemHandler; //!
68   AliL3TrackArray *fTracks; //!
69   AliL3HoughMaxFinder *fPeakFinder; //!
70   
71   void Rotate(Float_t *xyz,Int_t relslice);
72   void FindPeaks(AliL3Histogram *hist,Float_t eta);
73   Int_t LoadClusterSeeds(AliL3Seed *seeds);
74   Float_t CalculateBorder(Float_t *xyz,Int_t charge);
75   
76   ClassDef(AliL3HoughTransformerGlobal,1) 
77
78 };
79
80 #endif
81
82
83
84