]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/hough/AliL3Hough.h
Added new function AliL3Hough::MergeEtaSlices which merges tracks which
[u/mrichter/AliRoot.git] / HLT / hough / AliL3Hough.h
index 86d79829993f3207a03eb17dbfa0df6965389a7a..71ffba227ea7f5e0e6d909f66f419f685f4e94ef 100644 (file)
 #include "AliL3RootTypes.h"
 
 class AliL3HoughMaxFinder;
-class AliL3HoughTransformer;
+class AliL3HoughBaseTransformer;
 class AliL3Histogram;
+class AliL3MemHandler;
 class AliL3FileHandler;
 class AliL3HoughEval;
-class AliL3Transform;
 class AliL3TrackArray;
-class TFile;
+class AliL3HoughMerger;
+class AliL3HoughIntMerger;
+class AliL3HoughGlobalMerger;
 
-class AliL3Hough : public TObject {
+class AliL3Hough {
   
  private:
   Char_t fPath[256];
   Bool_t fBinary;
+  Bool_t fAddHistograms;
+  Bool_t fDoIterative;
+  Bool_t fWriteDigits;
+  Bool_t fUse8bits;
   Int_t fNEtaSegments;
-  AliL3FileHandler **fMemHandler; //!
-  AliL3HoughTransformer **fHoughTransformer; //!
-  TFile *fRootFile; //!
+  Int_t fNPatches;
+  Int_t fVersion; //which HoughTransformer to use
+  Int_t fCurrentSlice;
 
-  void DeleteTransformers();
-  void DeleteMemory();
-  void Init();
+  Float_t fLowPt;
+  Float_t fPhi;
+  Int_t fNBinX;
+  Int_t fNBinY;
+  Int_t fThreshold;
+  Int_t fNSaveIterations; //for HoughtransformerVhld
+
+  AliL3MemHandler **fMemHandler; //!
+  AliL3HoughBaseTransformer **fHoughTransformer; //!
+  AliL3HoughEval **fEval; //!
+  AliL3HoughMaxFinder *fPeakFinder; //!
+  AliL3TrackArray **fTracks; //!
+  AliL3HoughMerger *fMerger; //!
+  AliL3HoughIntMerger *fInterMerger; //!
+  AliL3HoughGlobalMerger *fGlobalMerger; //!
+
+  void CleanUp();
+  Double_t GetCpuTime();
   
  public:
   
   AliL3Hough(); 
-  AliL3Hough(Char_t *path,Bool_t binary,Int_t n_eta_segments=100);
+  AliL3Hough(Char_t *path,Bool_t binary,Int_t n_eta_segments=100,Bool_t bit8=kFALSE,Int_t tv=0);
   virtual ~AliL3Hough();
   
-  void TransformSlice(Int_t slice);
-  AliL3Histogram *AddHistograms();
-  void Evaluate(AliL3Histogram *hist);
+  void Init(Char_t *path,Bool_t binary,Int_t n_eta_segments=100,Bool_t bit8=kFALSE,Int_t tv=0);
+  void Init(Bool_t doit=kFALSE, Bool_t addhists=kFALSE);
 
+  void Process(Int_t minslice,Int_t maxslice);
+  void ReadData(Int_t slice,Int_t eventnr=0);
+  void Transform(Int_t row_range = -1);
+  void ProcessSliceIter();
+  void ProcessPatchIter(Int_t patch);
+  void MergePatches();
+  void MergeInternally();
+  void MergeEtaSlices();
+
+  void FindTrackCandidates();
+  void AddAllHistograms();
+  Int_t Evaluate(Int_t road_width=1,Int_t nrowstomiss=1);
+  void EvaluatePatch(Int_t i,Int_t road_width,Int_t nrowstomiss);
+  void WriteTracks(Int_t slice,Char_t *path="./");
+  void WriteDigits(Char_t *outfile="output_digits.root");
+  void InitEvaluate();
+  
   //Setters
   void SetNEtaSegments(Int_t i) {fNEtaSegments = i;}
-  
-  //Getters
-  AliL3HoughTransformer *GetTransformer(Int_t i) {if(!fHoughTransformer[i]) return 0; return fHoughTransformer[i];}
+  void SetAddHistograms() {fAddHistograms = kTRUE;}
+  void DoIterative() {fDoIterative = kTRUE;}
+  void SetWriteDigits() {fWriteDigits = kTRUE;}
+  void SetTransformerParams(Int_t nx=64, Int_t ny=64,Float_t lpt=0.1,Float_t phi=30) {fNBinX=nx;fNBinY=ny;fLowPt=lpt;fPhi=phi;}
+  void SetThreshold(Int_t t=3) {fThreshold=t;}
+  void SetNSaveIterations(Int_t t=10) {fNSaveIterations=t;}
 
-  ClassDef(AliL3Hough,1)
+  //Getters
+  AliL3HoughBaseTransformer *GetTransformer(Int_t i) {if(!fHoughTransformer[i]) return 0; return fHoughTransformer[i];}
+  AliL3TrackArray *GetTracks(Int_t i) {if(!fTracks[i]) return 0; return fTracks[i];}
+  AliL3HoughEval *GetEval(Int_t i) {if(!fEval[i]) return 0; return fEval[i];}
+  AliL3HoughMerger *GetMerger() {if(!fMerger) return 0; return fMerger;}
+  AliL3HoughIntMerger *GetInterMerger() {if(!fInterMerger) return 0; return fInterMerger;}
+  AliL3MemHandler *GetMemHandler(Int_t i) {if(!fMemHandler[i]) return 0; return fMemHandler[i];}
+  AliL3HoughMaxFinder *GetMaxFinder() {return fPeakFinder;}
 
+  ClassDef(AliL3Hough,1) //Hough transform base class
 };
 
 #endif
+
+
+
+
+
+
+