3 #ifndef ALIL3HOUGHTRANSFORMER_H
4 #define ALIL3HOUGHTRANSFORMER_H
6 //-------------------------------------------------------------------------
7 // Class AliHLTHoughTransformer
8 // This is one of the possible implementations of the Hough Transform
9 // TPC tracking algorithms for HLT.
10 //-------------------------------------------------------------------------
12 #include "AliHLTRootTypes.h"
13 #include "AliHLTHoughBaseTransformer.h"
15 class AliHLTHistogram;
17 class AliHLTHoughTransformer : public AliHLTHoughBaseTransformer {
20 AliHLTHoughTransformer();
21 AliHLTHoughTransformer(Int_t slice,Int_t patch,Int_t netasegments,Bool_t DoEtaOverlap=kFALSE,Bool_t DoMC=kFALSE);
22 virtual ~AliHLTHoughTransformer();
24 void CreateHistograms(Float_t ptmin,Float_t ptmax,Float_t ptres,Int_t nybin,Float_t psi);
25 void CreateHistograms(Int_t nxbin,Float_t ptmin,Int_t nybin,Float_t phimin,Float_t phimax);
26 void CreateHistograms(Int_t nxbin,Float_t xmin,Float_t xmax,
27 Int_t nybin,Float_t ymin,Float_t ymax);
29 void TransformCircle();
30 void TransformCircle(Int_t *rowrange,Int_t every) {
31 AliHLTHoughBaseTransformer:: TransformCircle(rowrange,every);
33 void TransformCircleC(Int_t *rowrange,Int_t every=1);
34 void TransformLine(Int_t *rowrange=0,Float_t *phirange=0);
35 void TransformLineC(Int_t *rowrange,Float_t *phirange);
37 Int_t GetEtaIndex(Double_t eta) const;
38 void GetEtaIndexes(Double_t eta,Int_t *indexes) const;
39 AliHLTHistogram *GetHistogram(Int_t etaindex);
40 Double_t GetEta(Int_t etaindex,Int_t slice) const;
41 Int_t GetTrackID(Int_t etaindex,Double_t kappa,Double_t psi) const;
45 AliHLTHistogram **fParamSpace; //!
47 AliHLTTrackIndex **fTrackID; //!
49 Bool_t fDoMC; // Calculate mc labels or not
50 Bool_t fEtaOverlap; // Allow overlapping of eta slice or not
52 void DeleteHistograms();
54 ClassDef(AliHLTHoughTransformer,1) //Normal Hough transformation class
58 typedef AliHLTHoughTransformer AliL3HoughTransformer; // for backward compatibility