More functions
[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;
7class AliL3HoughTransformer;
f80b98cb 8class AliL3Histogram;
9class AliL3FileHandler;
10class AliL3HoughEval;
11class AliL3Transform;
12class AliL3TrackArray;
b1886074 13class AliL3HoughMerger;
14class AliL3HoughIntMerger;
f000f8a5 15
b1886074 16class AliL3Hough {
f000f8a5 17
18 private:
f80b98cb 19 Char_t fPath[256];
4fc9a6a4 20 Bool_t fBinary;
a6008206 21 Bool_t fAddHistograms;
b1886074 22 Bool_t fDoIterative;
a6008206 23 Bool_t fWriteDigits;
f80b98cb 24 Int_t fNEtaSegments;
4fc9a6a4 25 AliL3FileHandler **fMemHandler; //!
26 AliL3HoughTransformer **fHoughTransformer; //!
a6008206 27 AliL3HoughEval **fEval; //!
28 AliL3HoughMaxFinder *fPeakFinder; //!
b1886074 29 AliL3TrackArray **fTracks; //!
30 AliL3HoughMerger *fMerger; //!
31 AliL3HoughIntMerger *fInterMerger; //!
a6008206 32
b1886074 33 void CleanUp();
4fc9a6a4 34 void Init();
35
f000f8a5 36 public:
4fc9a6a4 37
f000f8a5 38 AliL3Hough();
4fc9a6a4 39 AliL3Hough(Char_t *path,Bool_t binary,Int_t n_eta_segments=100);
f000f8a5 40 virtual ~AliL3Hough();
41
a6008206 42 void Process(Int_t minslice,Int_t maxslice);
b1886074 43 void ReadData(Int_t slice);
44 void Transform();
45 void ProcessSliceIter();
46 void ProcessPatchIter(Int_t patch);
47 void MergePatches();
48 void MergeInternally();
49
a6008206 50 void FindTrackCandidates();
51 AliL3Histogram *AddHistograms(Int_t eta_index);
52 void AddAllHistograms();
b1886074 53 void Evaluate(Int_t road_width=1);
54 void EvaluateWithEta();
a6008206 55 void WriteDigits(Char_t *outfile="output_digits.root");
56
4fc9a6a4 57 //Setters
58 void SetNEtaSegments(Int_t i) {fNEtaSegments = i;}
a6008206 59 void SetAddHistograms() {fAddHistograms = kTRUE;}
b1886074 60 void DoIterative() {fDoIterative = kTRUE;}
a6008206 61 void SetWriteDigits() {fWriteDigits = kTRUE;}
f80b98cb 62
4fc9a6a4 63 //Getters
64 AliL3HoughTransformer *GetTransformer(Int_t i) {if(!fHoughTransformer[i]) return 0; return fHoughTransformer[i];}
b1886074 65 AliL3TrackArray *GetTracks(Int_t i) {if(!fTracks[i]) return 0; return fTracks[i];}
66 AliL3HoughEval *GetEval(Int_t i) {if(!fEval[i]) return 0; return fEval[i];}
67 AliL3HoughMerger *GetMerger() {if(!fMerger) return 0; return fMerger;}
68 AliL3HoughIntMerger *GetInterMerger() {if(!fInterMerger) return 0; return fInterMerger;}
69 AliL3FileHandler *GetMemHandler(Int_t i) {if(!fMemHandler[i]) return 0; return fMemHandler[i];}
f000f8a5 70
b1886074 71 ClassDef(AliL3Hough,1) //Hough transform base class
f000f8a5 72
73};
74
75#endif