Bugfix in destructor etc.
[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 AliL3HoughTransformer;
8 class AliL3Histogram;
9 class AliL3FileHandler;
10 class AliL3HoughEval;
11 class AliL3Transform;
12 class AliL3TrackArray;
13 class TFile;
14
15 class AliL3Hough : public TObject {
16   
17  private:
18   Char_t fPath[256];
19   Bool_t fBinary;
20   Bool_t fAddHistograms;
21   Bool_t fRemoveFoundTracks;
22   Bool_t fWriteDigits;
23   Int_t fNEtaSegments;
24   AliL3FileHandler **fMemHandler; //!
25   AliL3HoughTransformer **fHoughTransformer; //!
26   AliL3HoughEval **fEval; //!
27   AliL3HoughMaxFinder *fPeakFinder; //!
28   AliL3TrackArray *fTracks; //!
29   TFile *fRootFile; //!
30   
31   void DeleteEval();
32   void DeleteTransformers();
33   void DeleteMemory();
34   void Init();
35   
36  public:
37   
38   AliL3Hough(); 
39   AliL3Hough(Char_t *path,Bool_t binary,Int_t n_eta_segments=100);
40   virtual ~AliL3Hough();
41   
42   void Process(Int_t minslice,Int_t maxslice);
43   void TransformSlice(Int_t slice);
44   void FindTrackCandidates();
45   AliL3Histogram *AddHistograms(Int_t eta_index);
46   void AddAllHistograms();
47   void Evaluate(Bool_t remove=kFALSE);
48   void WriteDigits(Char_t *outfile="output_digits.root");
49   
50   //Setters
51   void SetNEtaSegments(Int_t i) {fNEtaSegments = i;}
52   void SetAddHistograms() {fAddHistograms = kTRUE;}
53   void SetRemoveFoundTracks() {fRemoveFoundTracks = kTRUE;}
54   void SetWriteDigits() {fWriteDigits = kTRUE;}
55   
56   //Getters
57   AliL3HoughTransformer *GetTransformer(Int_t i) {if(!fHoughTransformer[i]) return 0; return fHoughTransformer[i];}
58   AliL3TrackArray *GetTracks() {if(!fTracks) return 0; return fTracks;}
59
60   ClassDef(AliL3Hough,1)
61
62 };
63
64 #endif