Numerical overlap for 2nd bellow corrected.
[u/mrichter/AliRoot.git] / HLT / hough / AliL3Hough.h
CommitLineData
f000f8a5 1#ifndef ALIL3_HOUGH
2#define ALIL3_HOUGH
3
4#include "AliL3RootTypes.h"
5
6class AliL3HoughMaxFinder;
237d3f5c 7class AliL3HoughBaseTransformer;
f80b98cb 8class AliL3Histogram;
95a00d93 9class AliL3MemHandler;
f80b98cb 10class AliL3FileHandler;
11class AliL3HoughEval;
f80b98cb 12class AliL3TrackArray;
b1886074 13class AliL3HoughMerger;
14class AliL3HoughIntMerger;
1c404dd5 15class AliL3HoughGlobalMerger;
f000f8a5 16
b1886074 17class AliL3Hough {
f000f8a5 18
19 private:
f80b98cb 20 Char_t fPath[256];
4fc9a6a4 21 Bool_t fBinary;
a6008206 22 Bool_t fAddHistograms;
b1886074 23 Bool_t fDoIterative;
a6008206 24 Bool_t fWriteDigits;
d96f6a4a 25 Bool_t fUse8bits;
f80b98cb 26 Int_t fNEtaSegments;
1c404dd5 27 Int_t fNPatches;
237d3f5c 28 Int_t fPeakThreshold;
95a00d93 29 AliL3MemHandler **fMemHandler; //!
237d3f5c 30 AliL3HoughBaseTransformer **fHoughTransformer; //!
a6008206 31 AliL3HoughEval **fEval; //!
32 AliL3HoughMaxFinder *fPeakFinder; //!
b1886074 33 AliL3TrackArray **fTracks; //!
34 AliL3HoughMerger *fMerger; //!
35 AliL3HoughIntMerger *fInterMerger; //!
1c404dd5 36 AliL3HoughGlobalMerger *fGlobalMerger; //!
37
b1886074 38 void CleanUp();
4fc9a6a4 39
f000f8a5 40 public:
4fc9a6a4 41
f000f8a5 42 AliL3Hough();
f000f8a5 43 virtual ~AliL3Hough();
44
d96f6a4a 45 void Init(Char_t *path,Bool_t binary,Int_t n_eta_segments,Bool_t bit8=kFALSE);
a6008206 46 void Process(Int_t minslice,Int_t maxslice);
b1886074 47 void ReadData(Int_t slice);
237d3f5c 48 void Transform(Int_t row_range = -1);
b1886074 49 void ProcessSliceIter();
50 void ProcessPatchIter(Int_t patch);
51 void MergePatches();
52 void MergeInternally();
3fe49b5b 53
a6008206 54 void FindTrackCandidates();
a6008206 55 void AddAllHistograms();
b1886074 56 void Evaluate(Int_t road_width=1);
57 void EvaluateWithEta();
3fe49b5b 58 void WriteTracks(Int_t slice,Char_t *path="./");
95a00d93 59#ifdef use_aliroot
a6008206 60 void WriteDigits(Char_t *outfile="output_digits.root");
95a00d93 61#endif
3fe49b5b 62 void InitEvaluate();
63
4fc9a6a4 64 //Setters
65 void SetNEtaSegments(Int_t i) {fNEtaSegments = i;}
a6008206 66 void SetAddHistograms() {fAddHistograms = kTRUE;}
b1886074 67 void DoIterative() {fDoIterative = kTRUE;}
a6008206 68 void SetWriteDigits() {fWriteDigits = kTRUE;}
237d3f5c 69 void SetPeakThreshold(Int_t i) {fPeakThreshold = i;}
f80b98cb 70
4fc9a6a4 71 //Getters
237d3f5c 72 AliL3HoughBaseTransformer *GetTransformer(Int_t i) {if(!fHoughTransformer[i]) return 0; return fHoughTransformer[i];}
b1886074 73 AliL3TrackArray *GetTracks(Int_t i) {if(!fTracks[i]) return 0; return fTracks[i];}
74 AliL3HoughEval *GetEval(Int_t i) {if(!fEval[i]) return 0; return fEval[i];}
75 AliL3HoughMerger *GetMerger() {if(!fMerger) return 0; return fMerger;}
76 AliL3HoughIntMerger *GetInterMerger() {if(!fInterMerger) return 0; return fInterMerger;}
95a00d93 77 AliL3MemHandler *GetMemHandler(Int_t i) {if(!fMemHandler[i]) return 0; return fMemHandler[i];}
d96f6a4a 78
f000f8a5 79
b1886074 80 ClassDef(AliL3Hough,1) //Hough transform base class
f000f8a5 81
82};
83
84#endif