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