4 #include "AliL3RootTypes.h"
6 class AliL3HoughMaxFinder;
7 class AliL3HoughBaseTransformer;
10 class AliL3FileHandler;
12 class AliL3TrackArray;
13 class AliL3HoughMerger;
14 class AliL3HoughIntMerger;
15 class AliL3HoughGlobalMerger;
22 Bool_t fAddHistograms;
28 Int_t fVersion; //which HoughTransformer to use
36 Int_t fNSaveIterations; //for HoughtransformerVhld
38 AliL3MemHandler **fMemHandler; //!
39 AliL3HoughBaseTransformer **fHoughTransformer; //!
40 AliL3HoughEval **fEval; //!
41 AliL3HoughMaxFinder *fPeakFinder; //!
42 AliL3TrackArray **fTracks; //!
43 AliL3HoughMerger *fMerger; //!
44 AliL3HoughIntMerger *fInterMerger; //!
45 AliL3HoughGlobalMerger *fGlobalMerger; //!
48 Double_t GetCpuTime();
53 AliL3Hough(Char_t *path,Bool_t binary,Int_t n_eta_segments=100,Bool_t bit8=kFALSE,Int_t tv=0);
54 virtual ~AliL3Hough();
56 void Init(Char_t *path,Bool_t binary,Int_t n_eta_segments=100,Bool_t bit8=kFALSE,Int_t tv=0);
57 void Init(Bool_t doit=kFALSE, Bool_t addhists=kFALSE);
59 void Process(Int_t minslice,Int_t maxslice);
60 void ReadData(Int_t slice,Int_t eventnr=0);
61 void Transform(Int_t row_range = -1);
62 void ProcessSliceIter();
63 void ProcessPatchIter(Int_t patch);
65 void MergeInternally();
66 void MergeEtaSlices();
68 void FindTrackCandidates();
69 void AddAllHistograms();
70 Int_t Evaluate(Int_t road_width=1,Int_t nrowstomiss=1);
71 void EvaluatePatch(Int_t i,Int_t road_width,Int_t nrowstomiss);
72 void WriteTracks(Int_t slice,Char_t *path="./");
73 void WriteDigits(Char_t *outfile="output_digits.root");
77 void SetNEtaSegments(Int_t i) {fNEtaSegments = i;}
78 void SetAddHistograms() {fAddHistograms = kTRUE;}
79 void DoIterative() {fDoIterative = kTRUE;}
80 void SetWriteDigits() {fWriteDigits = kTRUE;}
81 void SetTransformerParams(Int_t nx=64, Int_t ny=64,Float_t lpt=0.1,Float_t phi=30) {fNBinX=nx;fNBinY=ny;fLowPt=lpt;fPhi=phi;}
82 void SetThreshold(Int_t t=3) {fThreshold=t;}
83 void SetNSaveIterations(Int_t t=10) {fNSaveIterations=t;}
86 AliL3HoughBaseTransformer *GetTransformer(Int_t i) {if(!fHoughTransformer[i]) return 0; return fHoughTransformer[i];}
87 AliL3TrackArray *GetTracks(Int_t i) {if(!fTracks[i]) return 0; return fTracks[i];}
88 AliL3HoughEval *GetEval(Int_t i) {if(!fEval[i]) return 0; return fEval[i];}
89 AliL3HoughMerger *GetMerger() {if(!fMerger) return 0; return fMerger;}
90 AliL3HoughIntMerger *GetInterMerger() {if(!fInterMerger) return 0; return fInterMerger;}
91 AliL3MemHandler *GetMemHandler(Int_t i) {if(!fMemHandler[i]) return 0; return fMemHandler[i];}
92 AliL3HoughMaxFinder *GetMaxFinder() {return fPeakFinder;}
94 ClassDef(AliL3Hough,1) //Hough transform base class