]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/src/AliHLTEvaluate.h
Bogdan: new version of MUON visualization.
[u/mrichter/AliRoot.git] / HLT / src / AliHLTEvaluate.h
CommitLineData
3e87ef69 1// @(#) $Id$
2
108615fc 3#ifndef ALIL3_Evaluate
4#define ALIL3_Evaluate
5
3e87ef69 6
4aa41877 7class AliHLTTrack;
108615fc 8class TClonesArray;
9class TFile;
4aa41877 10class AliHLTTrackArray;
11class AliHLTSpacePointData;
108615fc 12class TH1F;
108615fc 13class AliTPCParam;
14class TTree;
15class AliSimDigits;
16class TObjArray;
78127e35 17class TParticle;
4aa41877 18class AliHLTFileHandler;
14e76e91 19class TClonesArray;
20class TNtuple;
21class TH1F;
22//#include <TNtuple.h>
23//#include <TH1F.h>
108615fc 24
4aa41877 25class AliHLTEvaluate {
108615fc 26
14e76e91 27struct AliGoodTrack
28{
29 Int_t flabel; //label
30 Double_t feta; //eta
31 Int_t fcode; //pcode
32 Double_t fpx,fpy,fpz; //momentum
33 Double_t fx,fy,fz; //pos at entrance
34 Int_t fnhits; //nhits
35 Int_t fsector; //sector number
36};
37typedef struct AliGoodTrack AliGoodTrack;
38
39struct AliS
40{
41 Int_t flab; //lab
42 Int_t fmax; //max
43};
44typedef struct AliS AliS;
45
108615fc 46 private:
47
4aa41877 48 AliHLTTrackArray *fTracks; //!
49 AliHLTSpacePointData *fClusters[36][6]; //!
50 AliHLTFileHandler *fClustersFile[36][6]; //!
b1ed0288 51 Char_t fPath[1024]; //path
52 Int_t fMinSlice; //min slice
53 Int_t fMaxSlice; //max slice
54 UInt_t fNcl[36][6]; //cluster numbers
55 Int_t fRowid[36][176]; //row ids
56 Int_t fMinPointsOnTrack; //minimum points on track to be considered.
57 Int_t fMinHitsFromParticle; //minimums hits a particle has to create
58 AliGoodTrack *fGoodTracks; //!
59 Float_t fMaxFalseClusters; //maximum number of false assigned clusters
e0f4d6b2 60
b1ed0288 61 Int_t fNFastPoints; //fast access to points
c0217812 62 UInt_t *fMcIndex;//!
63 Int_t *fMcId;//!
b1ed0288 64 Int_t fGoodFound; //good found
65 Int_t fGoodGen; //good generated found
66 Double_t fMinGoodPt; //min pt
67 Double_t fMaxGoodPt; //max pt
b2a02bce 68
108615fc 69 //Histograms
b1ed0288 70 TNtuple *fNtuppel;//!
71 TH1F *fPtRes;//!
72 TH1F *fNGoodTracksPt;//!
73 TH1F *fNFoundTracksPt;//!
74 TH1F *fNFakeTracksPt;//!
75 TH1F *fTrackEffPt;//!
76 TH1F *fFakeTrackEffPt;//!
77 TH1F *fNGoodTracksEta;//!
78 TH1F *fNFoundTracksEta;//!
79 TH1F *fNFakeTracksEta;//!
80 TH1F *fTrackEffEta;//!
81 TH1F *fFakeTrackEffEta;//!
82 TNtuple *fNtupleRes;//!
83 Bool_t fStandardComparison; // take standard macro
e0f4d6b2 84
59260886 85 void Clear();
108615fc 86 public:
4aa41877 87 AliHLTEvaluate();
88 AliHLTEvaluate(Char_t *path,Int_t min_clusters,Int_t minhits,Double_t minpt=0.1,Double_t maxpt=4.,Int_t *slice=0);
89 virtual ~AliHLTEvaluate();
3e87ef69 90
91 void LoadData(Int_t event=-1,Bool_t sp=kFALSE);
e0f4d6b2 92 void CreateHistos(Int_t nbin=20,Float_t xlow=0,Float_t xup=4);
108615fc 93 void Write2File(Char_t *outputfile);
e0f4d6b2 94 void FillEffHistos();
95 void FillEffHistosNAIVE();
96 void CalcEffHistos();
de3c3890 97 void AssignPIDs();
e0f4d6b2 98 void AssignIDs();
14e76e91 99 void GetGoodParticles(Char_t *particlefile,Int_t event=-1,Int_t *padrowrange=0);
e0f4d6b2 100 void GetFastClusterIDs(Char_t *path);
3e87ef69 101 void GetCFeff(Char_t *path,Char_t *outfile,Int_t nevent=0,Bool_t sp=kFALSE);
4aa41877 102 Int_t GetMCTrackLabel(AliHLTTrack *track);
103 Float_t GetTrackPID(AliHLTTrack *track);
b2a02bce 104 void CalculateResiduals();
3e87ef69 105 void EvaluatePoints(Char_t *rootfile,Char_t *exactfile,Char_t *tofile,Int_t nevent=1,Bool_t offline=kFALSE,Bool_t sp=kFALSE);
106 Float_t GetCrossingAngle(TParticle *part,Int_t slice,Int_t padrow,Float_t *xyz);
107 Int_t FindPrimaries(Int_t nparticles);
108615fc 108 void SetMinPoints(Int_t f) {fMinPointsOnTrack = f;}
e170e0f9 109 void SetMinGoodPt(Double_t f) {fMinGoodPt = f;}
e0f4d6b2 110 void SetMaxFalseClusters(Float_t f) {fMaxFalseClusters = f;}
b2a02bce 111 void SetStandardComparison(Bool_t b) {fStandardComparison = b;}
112 TNtuple *GetNtuple();
b1ed0288 113 Int_t GetNGoodTracks() const {return fGoodGen;}
114 Int_t GetNFoundTracks() const {return fGoodFound;}
e0f4d6b2 115 TH1F *GetTrackEffPt() {return fTrackEffPt;}
116 TH1F *GetTrackEffEta() {return fTrackEffEta;}
117 TH1F *GetFakeEffEta() {return fFakeTrackEffEta;}
118 TH1F *GetFakeEffPt() {return fFakeTrackEffPt;}
119 TH1F *GetPtRes() {return fPtRes;}
4aa41877 120 AliHLTTrackArray *GetTracks() {return fTracks;}
e0f4d6b2 121
4aa41877 122 ClassDef(AliHLTEvaluate,1) //Tracking evaluation class
108615fc 123};
124
4aa41877 125typedef AliHLTEvaluate AliL3Evaluate; // for backward compatibility
126
108615fc 127#endif