]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/hough/AliHLTHoughTransformer.h
Bug fix: Error when pushing data to the shared memory. The last channel
[u/mrichter/AliRoot.git] / HLT / hough / AliHLTHoughTransformer.h
1 // @(#) $Id$
2
3 #ifndef ALIL3HOUGHTRANSFORMER_H
4 #define ALIL3HOUGHTRANSFORMER_H
5
6 //-------------------------------------------------------------------------
7 //                Class AliHLTHoughTransformer
8 //   This is one of the possible implementations of the Hough Transform
9 //   TPC tracking algorithms for HLT. 
10 //-------------------------------------------------------------------------
11
12 #include "AliHLTRootTypes.h"
13 #include "AliHLTHoughBaseTransformer.h"
14
15 class AliHLTHistogram;
16
17 class AliHLTHoughTransformer : public AliHLTHoughBaseTransformer {
18
19  public:
20   AliHLTHoughTransformer(); 
21   AliHLTHoughTransformer(Int_t slice,Int_t patch,Int_t netasegments,Bool_t DoEtaOverlap=kFALSE,Bool_t DoMC=kFALSE);
22   virtual ~AliHLTHoughTransformer();
23   
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);
28   void Reset();
29   void TransformCircle();
30   void TransformCircle(Int_t *rowrange,Int_t every) {
31     AliHLTHoughBaseTransformer:: TransformCircle(rowrange,every);
32   }
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);
36
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;
42   
43  private:
44   
45   AliHLTHistogram **fParamSpace; //!
46 #ifdef do_mc
47   AliHLTTrackIndex **fTrackID; //!
48 #endif
49   Bool_t fDoMC; // Calculate mc labels or not
50   Bool_t fEtaOverlap; // Allow overlapping of eta slice or not
51   
52   void DeleteHistograms();
53
54   ClassDef(AliHLTHoughTransformer,1) //Normal Hough transformation class
55
56 };
57
58 typedef AliHLTHoughTransformer AliL3HoughTransformer; // for backward compatibility
59
60 #endif
61
62
63
64