]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/hough/AliL3Hough.h
Some additional changes related to the previous changes. AliL3Transform
[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 AliL3Transform;
13 class AliL3TrackArray;
14 class AliL3HoughMerger;
15 class AliL3HoughIntMerger;
16 class AliL3HoughGlobalMerger;
17 class AliL3Transform;
18
19 class AliL3Hough {
20   
21  private:
22   Char_t fPath[256];
23   Bool_t fBinary;
24   Bool_t fAddHistograms;
25   Bool_t fDoIterative;
26   Bool_t fWriteDigits;
27   Int_t fNEtaSegments;
28   Int_t fNPatches;
29   Int_t fPeakThreshold;
30 #ifdef use_aliroot
31   AliL3FileHandler **fMemHandler; //!
32 #else
33   AliL3MemHandler **fMemHandler; //!
34 #endif
35   AliL3HoughBaseTransformer **fHoughTransformer; //!
36   AliL3HoughEval **fEval; //!
37   AliL3HoughMaxFinder *fPeakFinder; //!
38   AliL3TrackArray **fTracks; //!
39   AliL3HoughMerger *fMerger; //!
40   AliL3HoughIntMerger *fInterMerger; //!
41   AliL3HoughGlobalMerger *fGlobalMerger; //!
42   AliL3Transform *fTransform; //!
43
44   void CleanUp();
45   void Init();
46   
47  public:
48   
49   AliL3Hough(); 
50   AliL3Hough(Char_t *path,Bool_t binary,Int_t n_eta_segments=100);
51   virtual ~AliL3Hough();
52   
53   void Process(Int_t minslice,Int_t maxslice);
54   void ReadData(Int_t slice);
55   void Transform(Int_t row_range = -1);
56   void ProcessSliceIter();
57   void ProcessPatchIter(Int_t patch);
58   void MergePatches();
59   void MergeInternally();
60
61   void FindTrackCandidates();
62   void AddAllHistograms();
63   void Evaluate(Int_t road_width=1);
64   void EvaluateWithEta();
65   void WriteTracks(Char_t *path="./");
66 #ifdef use_aliroot
67   void WriteDigits(Char_t *outfile="output_digits.root");
68 #endif
69
70   //Setters
71   void SetNEtaSegments(Int_t i) {fNEtaSegments = i;}
72   void SetAddHistograms() {fAddHistograms = kTRUE;}
73   void DoIterative() {fDoIterative = kTRUE;}
74   void SetWriteDigits() {fWriteDigits = kTRUE;}
75   void SetPeakThreshold(Int_t i) {fPeakThreshold = i;}
76   
77   //Getters
78   AliL3HoughBaseTransformer *GetTransformer(Int_t i) {if(!fHoughTransformer[i]) return 0; return fHoughTransformer[i];}
79   AliL3TrackArray *GetTracks(Int_t i) {if(!fTracks[i]) return 0; return fTracks[i];}
80   AliL3HoughEval *GetEval(Int_t i) {if(!fEval[i]) return 0; return fEval[i];}
81   AliL3HoughMerger *GetMerger() {if(!fMerger) return 0; return fMerger;}
82   AliL3HoughIntMerger *GetInterMerger() {if(!fInterMerger) return 0; return fInterMerger;}
83 #ifdef use_aliroot
84   AliL3FileHandler *GetMemHandler(Int_t i) {if(!fMemHandler[i]) return 0; return fMemHandler[i];}
85 #else
86   AliL3MemHandler *GetMemHandler(Int_t i) {if(!fMemHandler[i]) return 0; return fMemHandler[i];}
87 #endif
88
89   ClassDef(AliL3Hough,1) //Hough transform base class
90
91 };
92
93 #endif