]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/hough/AliL3HoughTransformer.h
a sample component library
[u/mrichter/AliRoot.git] / HLT / hough / AliL3HoughTransformer.h
index ba1bfbfbffff261d022ebc8a59ce1e26ed46b623..aab044c63f0d50515238e2c518b3b0d17b00476b 100644 (file)
@@ -1,5 +1,13 @@
-#ifndef ALIL3_HOUGHTRANSFORMER
-#define ALIL3_HOUGHTRANSFORMER
+// @(#) $Id$
+
+#ifndef ALIL3HOUGHTRANSFORMER_H
+#define ALIL3HOUGHTRANSFORMER_H
+
+//-------------------------------------------------------------------------
+//                Class AliL3HoughTransformer
+//   This is one of the possible implementations of the Hough Transform
+//   TPC tracking algorithms for HLT. 
+//-------------------------------------------------------------------------
 
 #include "AliL3RootTypes.h"
 #include "AliL3HoughBaseTransformer.h"
 class AliL3Histogram;
 
 class AliL3HoughTransformer : public AliL3HoughBaseTransformer {
-  
- private:
-  
-  AliL3Histogram **fParamSpace; //!
-#ifdef do_mc
-  TrackIndex **fTrackID; //!
-#endif
-  Bool_t fDoMC;
-  void DeleteHistograms();
 
  public:
   AliL3HoughTransformer(); 
-  AliL3HoughTransformer(Int_t slice,Int_t patch,Int_t n_eta_segments);
+  AliL3HoughTransformer(Int_t slice,Int_t patch,Int_t netasegments,Bool_t DoEtaOverlap=kFALSE,Bool_t DoMC=kFALSE);
   virtual ~AliL3HoughTransformer();
   
-  void CreateHistograms(Int_t nxbin,Double_t ptmin,Int_t nybin,Double_t phimin,Double_t phimax);
-  void CreateHistograms(Int_t nxbin,Double_t xmin,Double_t xmax,
-                       Int_t nybin,Double_t ymin,Double_t ymax);
+  void CreateHistograms(Float_t ptmin,Float_t ptmax,Float_t ptres,Int_t nybin,Float_t psi);
+  void CreateHistograms(Int_t nxbin,Float_t ptmin,Int_t nybin,Float_t phimin,Float_t phimax);
+  void CreateHistograms(Int_t nxbin,Float_t xmin,Float_t xmax,
+                       Int_t nybin,Float_t ymin,Float_t ymax);
   void Reset();
   void TransformCircle();
-  void TransformCircleC(Int_t row_range);
-  void TransformLine();
-
-  Int_t GetEtaIndex(Double_t eta);
-  AliL3Histogram *GetHistogram(Int_t eta_index);
-  Double_t GetEta(Int_t eta_index,Int_t slice);
-  Int_t GetTrackID(Int_t eta_index,Double_t kappa,Double_t psi);
+  void TransformCircleC(Int_t *rowrange,Int_t every=1);
+  void TransformLine(Int_t *rowrange=0,Float_t *phirange=0);
+  void TransformLineC(Int_t *rowrange,Float_t *phirange);
+
+  Int_t GetEtaIndex(Double_t eta) const;
+  void GetEtaIndexes(Double_t eta,Int_t *indexes) const;
+  AliL3Histogram *GetHistogram(Int_t etaindex);
+  Double_t GetEta(Int_t etaindex,Int_t slice) const;
+  Int_t GetTrackID(Int_t etaindex,Double_t kappa,Double_t psi) const;
+  
+ private:
   
-  //void Init(Int_t slice=0,Int_t patch=0,Int_t n_eta_segments=100);
+  AliL3Histogram **fParamSpace; //!
+#ifdef do_mc
+  AliL3TrackIndex **fTrackID; //!
+#endif
+  Bool_t fDoMC; // Calculate mc labels or not
+  Bool_t fEtaOverlap; // Allow overlapping of eta slice or not
   
+  void DeleteHistograms();
+
   ClassDef(AliL3HoughTransformer,1) //Normal Hough transformation class
 
 };