]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/hough/AliHLTHoughTransformerGlobal.h
Completely updated version (Guillermo)
[u/mrichter/AliRoot.git] / HLT / hough / AliHLTHoughTransformerGlobal.h
CommitLineData
3e87ef69 1// @(#) $Id$
2
c62b480b 3#ifndef ALIL3HOUGHTRANSFORMERGLOBAL_H
4#define ALIL3HOUGHTRANSFORMERGLOBAL_H
3e87ef69 5
4aa41877 6#include "AliHLTRootTypes.h"
7#include "AliHLTHoughTransformer.h"
3e87ef69 8
4aa41877 9class AliHLTHistogram;
10class AliHLTMemHandler;
11class AliHLTTrackArray;
12class AliHLTHoughMaxFinder;
3e87ef69 13class TH2F;
14
4aa41877 15struct AliHLTSeed {
c62b480b 16 Float_t fPhi;//Track emission angle
17 Float_t fRadius;//Track radius
18 Float_t fEta;//Track eta
19 Int_t fIndex;//index?
3e87ef69 20};
21
4aa41877 22class AliHLTHoughTransformerGlobal : public AliHLTHoughTransformer {
c62b480b 23
3e87ef69 24 public:
4aa41877 25 AliHLTHoughTransformerGlobal();
26 AliHLTHoughTransformerGlobal(Char_t *path,Int_t event=0);
27 virtual ~AliHLTHoughTransformerGlobal();
3e87ef69 28
b2a02bce 29 void CreateHistograms(Float_t ptmin,Int_t nxbin,Int_t nybin);
298edb8a 30 void CreateHistograms(Float_t ptmin,Float_t ptmax,Float_t pres,Int_t nybin,Float_t psi) {
4aa41877 31 AliHLTHoughTransformer::CreateHistograms(ptmin,ptmax,pres,nybin,psi);
298edb8a 32 }
33 void CreateHistograms(Int_t nxbin,Float_t ptmin,Int_t nybin,Float_t phimin,Float_t phimax) {
4aa41877 34 AliHLTHoughTransformer::CreateHistograms(nxbin,ptmin,nybin,phimin,phimax);
298edb8a 35 }
36 void CreateHistograms(Int_t nxbin,Float_t xmin,Float_t xmax,
37 Int_t nybin,Float_t ymin,Float_t ymax) {
4aa41877 38 AliHLTHoughTransformer::CreateHistograms(nxbin,xmin,xmax,nybin,ymin,ymax);
298edb8a 39 }
4aa41877 40 void VerifyTracks(AliHLTTrackArray *tracks,Int_t &index);
3e87ef69 41 void TransformCircle();
298edb8a 42 void TransformCircle(Int_t *row_range,Int_t every) {
4aa41877 43 AliHLTHoughTransformer::TransformCircle(row_range,every);
298edb8a 44 }
3e87ef69 45 void TransformCircleC();
298edb8a 46 void TransformCircleC(Int_t *rowrange,Int_t every){
4aa41877 47 AliHLTHoughTransformer::TransformCircleC(rowrange,every);
298edb8a 48 }
3e87ef69 49 void DefineRegion(Float_t ptmin,Float_t linephi,Int_t seedpadrow);
50 void LoadActiveSlices(Bool_t binary=kTRUE);
51 void UnloadActiveSlices();
c62b480b 52 void DisplayActiveRegion(TH2F *hist,Int_t etaindex=0);
3e87ef69 53
54 void SetSeedPadRow(Int_t i) {fSeedPadRow=i;}
55
4aa41877 56 AliHLTTrackArray *GetTracks() {return fTracks;}
3e87ef69 57
c62b480b 58 private:
59 Int_t fEvent;//Event index
60 Char_t fPath[1024];//path to the input files
61 Int_t *fPadMin; //!
62 Int_t *fPadMax; //!
63 Int_t fNActiveSlice;//number of active slices
64 Float_t fPsi;//psi range
65 Float_t fPtMin;//minimum pt
66 Int_t fSeedPadRow;//?
4aa41877 67 AliHLTMemHandler **fMemHandler; //!
68 AliHLTTrackArray *fTracks; //!
69 AliHLTHoughMaxFinder *fPeakFinder; //!
c62b480b 70
71 void Rotate(Float_t *xyz,Int_t relslice);
4aa41877 72 void FindPeaks(AliHLTHistogram *hist,Float_t eta);
73 Int_t LoadClusterSeeds(AliHLTSeed *seeds);
c62b480b 74 Float_t CalculateBorder(Float_t *xyz,Int_t charge);
75
4aa41877 76 ClassDef(AliHLTHoughTransformerGlobal,1)
3e87ef69 77
78};
79
4aa41877 80typedef AliHLTHoughTransformerGlobal AliL3HoughTransformerGlobal; // for backward compatibility
81
3e87ef69 82#endif
83
84
85
86