]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/src/AliL3Evaluate.h
Changes so that one can read slice by slice also from
[u/mrichter/AliRoot.git] / HLT / src / AliL3Evaluate.h
CommitLineData
108615fc 1#ifndef ALIL3_Evaluate
2#define ALIL3_Evaluate
3
4#include <TObject.h>
5#include <TH1.h>
6#include <TTree.h>
1f79afc0 7#include <TNtuple.h>
108615fc 8#include "AliSimDigits.h"
9
e1a32fa5 10
11struct GoodTrack
12{
e1a32fa5 13 Int_t label;
40896357 14 Double_t eta;
e1a32fa5 15 Int_t code;
16 Double_t px,py,pz;
e0f4d6b2 17 Double_t x,y,z;
18 Int_t nhits;
e1a32fa5 19};
20typedef struct GoodTrack GoodTrack;
21
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;
108615fc 34
e0f4d6b2 35class AliL3Evaluate {
108615fc 36
37 private:
38
108615fc 39 AliL3TrackArray *fTracks; //!
40 AliTPCParam *fParam;
40896357 41 AliL3SpacePointData *fClusters[36][6]; //!
108615fc 42 AliSimDigits *fDigits;
43 TTree *fDigitsTree;
44 Int_t fMinSlice;
45 Int_t fMaxSlice;
40896357 46 UInt_t fNcl[36][6];
ae97a0b9 47 Int_t fRowid[36][176];
108615fc 48 Int_t fMinPointsOnTrack; //Minimum points on track to be considered.
e0f4d6b2 49 Int_t fMinHitsFromParticle;
50 GoodTrack *fGoodTracks; //!
51 Float_t fMaxFalseClusters;
52
108615fc 53 Int_t fNFastPoints;
c0217812 54 UInt_t *fMcIndex;//!
55 Int_t *fMcId;//!
23908b9b 56 Int_t fGoodFound;
57 Int_t fGoodGen;
e170e0f9 58 Double_t fMinGoodPt;
23908b9b 59
108615fc 60 //Histograms
1f79afc0 61 TNtuple *fNtuppel;
108615fc 62 TH1F *fPtRes;
63 TH1F *fNGoodTracksPt;
64 TH1F *fNFoundTracksPt;
65 TH1F *fNFakeTracksPt;
66 TH1F *fTrackEffPt;
67 TH1F *fFakeTrackEffPt;
68 TH1F *fNGoodTracksEta;
69 TH1F *fNFoundTracksEta;
70 TH1F *fNFakeTracksEta;
71 TH1F *fTrackEffEta;
72 TH1F *fFakeTrackEffEta;
73
e0f4d6b2 74
e1a32fa5 75
108615fc 76 public:
77 AliL3Evaluate();
e0f4d6b2 78 AliL3Evaluate(Char_t *path,Int_t min_clusters,Int_t minhits,Double_t minpt=0.1,Int_t *slice=0);
108615fc 79 virtual ~AliL3Evaluate();
80
e0f4d6b2 81 void CreateHistos(Int_t nbin=20,Float_t xlow=0,Float_t xup=4);
108615fc 82 void Write2File(Char_t *outputfile);
e0f4d6b2 83 void FillEffHistos();
84 void FillEffHistosNAIVE();
85 void CalcEffHistos();
86 void AssignIDs();
87 void GetGoodParticles(Char_t *particle_file);
88 void GetFastClusterIDs(Char_t *path);
89 void GetCFeff(Char_t *outfile);
90 Int_t GetMCTrackLabel(AliL3Track *track);
91 TNtuple *CalculateResiduals();
92 TNtuple *EvaluatePoints(Char_t *rootfile);
93
108615fc 94 void SetMinPoints(Int_t f) {fMinPointsOnTrack = f;}
e170e0f9 95 void SetMinGoodPt(Double_t f) {fMinGoodPt = f;}
e0f4d6b2 96 void SetMaxFalseClusters(Float_t f) {fMaxFalseClusters = f;}
97
23908b9b 98 Int_t GetNGoodTracks() {return fGoodGen;}
99 Int_t GetNFoundTracks() {return fGoodFound;}
e0f4d6b2 100 TH1F *GetTrackEffPt() {return fTrackEffPt;}
101 TH1F *GetTrackEffEta() {return fTrackEffEta;}
102 TH1F *GetFakeEffEta() {return fFakeTrackEffEta;}
103 TH1F *GetFakeEffPt() {return fFakeTrackEffPt;}
104 TH1F *GetPtRes() {return fPtRes;}
78127e35 105
e0f4d6b2 106
b661165c 107 ClassDef(AliL3Evaluate,1) //Tracking evaluation class
108615fc 108};
109
110#endif