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