]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/hough/AliL3HoughTransformer.h
Changes done for new aliroot version. Faster calculation through saving LUT for kappa.
[u/mrichter/AliRoot.git] / HLT / hough / AliL3HoughTransformer.h
index 0688636f79874d610bfadf86ae5aa15dc5ad1f36..1f342a8257eff8d5b242151a7610596154b25fbe 100644 (file)
@@ -2,88 +2,48 @@
 #define ALIL3_HOUGHTRANSFORMER
 
 #include "AliL3RootTypes.h"
-
-struct AliL3Digits
-{
-  UShort_t fCharge;
-  UChar_t fPad;
-  UShort_t fTime;
-  Int_t fIndex;
-  AliL3Digits *fNextVolumePixel;
-  //AliL3Digits *nextPhiRowPixel;
-  AliL3Digits *nextRowPixel;
-};
-
-struct AliL3HoughContainer
-{
-  void *first;
-  void *last;
-};
-
-
+#include "AliL3HoughBaseTransformer.h"
 
 class AliL3Histogram;
-class AliL3Transform;
-class AliL3HoughEvaluate;
-class AliL3TrackArray;
-class AliL3DigitRowData;
 
-class AliL3HoughTransformer : public TObject {
+class AliL3HoughTransformer : public AliL3HoughBaseTransformer {
   
  private:
-
-  friend class AliL3HoughEval;
   
-  AliL3Transform *fTransform; //!
-
-  Int_t fNPhiSegments; //Number of patches in phi.
-  Float_t fEtaMin;
-  Float_t fEtaMax;
-  Int_t fNumEtaSegments;
-  Int_t fNumOfPadRows;
-  Int_t fNRowsInPatch;
-  Int_t fBinTableBounds;
+  AliL3Histogram **fParamSpace; //!
+#ifdef do_mc
+  TrackIndex **fTrackID; //!
+#endif
+  Bool_t fDoMC;
 
-  UInt_t fNDigitRowData; //!
-  AliL3DigitRowData *fDigitRowData; //!
-  
-  AliL3HoughContainer *fRowContainer; //!
-  AliL3HoughContainer *fPhiRowContainer; //!
-  AliL3HoughContainer *fVolume; //!
-  
-  Int_t fContainerBounds;
-  Int_t fNDigits;
-  Int_t **fBinTable; //!
-  Int_t *fEtaIndex; //!
-  Char_t **fTrackTable; //!
-  AliL3Histogram *fHistoPt;
-  
-  Int_t fSlice;
-  Int_t fPatch;
+  void DeleteHistograms();
 
  public:
   AliL3HoughTransformer(); 
-  AliL3HoughTransformer(Int_t slice,Int_t patch,Float_t *etarange);
-  AliL3HoughTransformer(Int_t slice,Int_t patch,Double_t *etarange=0,Int_t n_eta_segments=90);
+  AliL3HoughTransformer(Int_t slice,Int_t patch,Int_t n_eta_segments);
   virtual ~AliL3HoughTransformer();
-
-  void InitTables();
-  void TransformTables(AliL3Histogram **histos,AliL3Histogram **images=0);
-  void SetInputData(UInt_t ndigits,AliL3DigitRowData *ptr);
-  void WriteTables();
-  void SetHistogram(AliL3Histogram *hist) {fHistoPt = hist;}
-  Double_t CpuTime();
-  Int_t GetNumEtaSegments() {return fNumEtaSegments;}
-  /*
-    void Transform2Circle(TH2F *hist,Int_t eta_index);
-    void Transform2Circle(TH2F **histos,Int_t n_eta_segments,UInt_t ndigits,AliL3DigitRowData *ptr);
-    void Transform2Line(TH2F *hist,Int_t ref_row,Int_t *rowrange,Double_t *phirange,TH2F *raw=0);
-    void TransformLines2Circle(TH2F *hist,AliL3TrackArray *tracks);
-    void GetPixels(Char_t *rootfile,TH2F *hist=0);
-    void InitTemplates(TH2F *hist);
-  */
-  ClassDef(AliL3HoughTransformer,1)
+  
+  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 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 Init(Int_t slice=0,Int_t patch=0,Int_t n_eta_segments=100);
+  
+  ClassDef(AliL3HoughTransformer,1) //Normal Hough transformation class
 
 };
 
 #endif
+
+
+
+