New version of SPD raw-data reconstruction. The format now correponds to the actual...
[u/mrichter/AliRoot.git] / HLT / hough / AliHLTHoughClusterTransformer.h
1 // @(#) $Id$
2
3 #ifndef ALIL3HOUGHCLUSTERTRANSFORMER_H
4 #define ALIL3HOUGHCLUSTERTRANSFORMER_H
5
6 #include "AliHLTRootTypes.h"
7 #include "AliHLTHoughBaseTransformer.h"
8
9
10 class AliHLTHistogram;
11 class AliHLTSpacePointData;
12 class AliHLTMemHandler;
13
14 class AliHLTHoughClusterTransformer : public AliHLTHoughBaseTransformer {
15   
16  public:
17   AliHLTHoughClusterTransformer(); 
18   AliHLTHoughClusterTransformer(Int_t slice,Int_t patch,Int_t netasegments);
19   virtual ~AliHLTHoughClusterTransformer();
20   
21   void CreateHistograms(Float_t ptmin,Float_t ptmax,Float_t pres,Int_t nybin,Float_t psi) {
22     AliHLTHoughBaseTransformer::CreateHistograms(ptmin,ptmax,pres,nybin,psi);
23   }
24   void CreateHistograms(Int_t nxbin,Float_t ptmin,Int_t nybin,Float_t phimin,Float_t phimax);
25   void CreateHistograms(Int_t nxbin,Float_t xmin,Float_t xmax,
26                         Int_t nybin,Float_t ymin,Float_t ymax);
27   void FindClusters();
28   void Reset();
29   void TransformCircle();
30   void TransformCircle(Int_t *row_range,Int_t every) {
31     AliHLTHoughBaseTransformer::TransformCircle(row_range,every);
32   }
33   void TransformCircleC(Int_t *rowrange,Int_t every);
34   void TransformLine(Int_t */*rowrange*/=0,Float_t */*phirange*/=0){};
35   
36   Int_t GetEtaIndex(Double_t eta) const;
37   AliHLTHistogram *GetHistogram(Int_t etaindex);
38   Double_t GetEta(Int_t etaindex,Int_t slice) const;
39   Int_t GetTrackID(Int_t etaindex,Double_t kappa,Double_t psi) const;
40   
41  private:
42
43   AliHLTHistogram **fParamSpace;   //!
44   AliHLTMemHandler *fMemHandler;   //!
45   AliHLTSpacePointData *fClusters; //!
46   Int_t fNClusters;//Number of clusters
47 #ifdef do_mc
48   AliHLTTrackIndex **fTrackID; //!
49 #endif
50   void DeleteHistograms();
51
52   ClassDef(AliHLTHoughClusterTransformer,1) //Normal Hough transformation class
53
54 };
55
56 typedef AliHLTHoughClusterTransformer AliL3HoughClusterTransformer; // for backward comapatibility
57
58 #endif
59
60
61
62