3 #ifndef ALIL3HOUGHTRANSFORMERGLOBAL_H
4 #define ALIL3HOUGHTRANSFORMERGLOBAL_H
6 #include "AliL3RootTypes.h"
7 #include "AliL3HoughTransformer.h"
10 class AliL3MemHandler;
11 class AliL3TrackArray;
12 class AliL3HoughMaxFinder;
16 Float_t fPhi;//Track emission angle
17 Float_t fRadius;//Track radius
18 Float_t fEta;//Track eta
22 class AliL3HoughTransformerGlobal : public AliL3HoughTransformer {
25 AliL3HoughTransformerGlobal();
26 AliL3HoughTransformerGlobal(Char_t *path,Int_t event=0);
27 virtual ~AliL3HoughTransformerGlobal();
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);
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);
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);
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);
45 void TransformCircleC();
46 void TransformCircleC(Int_t *rowrange,Int_t every){
47 AliL3HoughTransformer::TransformCircleC(rowrange,every);
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);
54 void SetSeedPadRow(Int_t i) {fSeedPadRow=i;}
56 AliL3TrackArray *GetTracks() {return fTracks;}
59 Int_t fEvent;//Event index
60 Char_t fPath[1024];//path to the input files
63 Int_t fNActiveSlice;//number of active slices
64 Float_t fPsi;//psi range
65 Float_t fPtMin;//minimum pt
67 AliL3MemHandler **fMemHandler; //!
68 AliL3TrackArray *fTracks; //!
69 AliL3HoughMaxFinder *fPeakFinder; //!
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);
76 ClassDef(AliL3HoughTransformerGlobal,1)