]>
Commit | Line | Data |
---|---|---|
1 | #ifndef ALIL3_Evaluate | |
2 | #define ALIL3_Evaluate | |
3 | ||
4 | #include <TObject.h> | |
5 | #include <TH1.h> | |
6 | #include <TTree.h> | |
7 | #include <TNtuple.h> | |
8 | #include "AliSimDigits.h" | |
9 | ||
10 | ||
11 | struct GoodTrack | |
12 | { | |
13 | Int_t label; | |
14 | Double_t eta; | |
15 | Int_t code; | |
16 | Double_t px,py,pz; | |
17 | Double_t x,y,z; | |
18 | Int_t nhits; | |
19 | Int_t sector; | |
20 | }; | |
21 | typedef struct GoodTrack GoodTrack; | |
22 | ||
23 | ||
24 | class AliL3Track; | |
25 | class TClonesArray; | |
26 | class TFile; | |
27 | class AliL3TrackArray; | |
28 | class AliL3SpacePointData; | |
29 | class TH1F; | |
30 | class AliTPCParam; | |
31 | class TTree; | |
32 | class AliSimDigits; | |
33 | class TObjArray; | |
34 | class TParticle; | |
35 | class TNtupleD; | |
36 | ||
37 | class AliL3Evaluate { | |
38 | ||
39 | private: | |
40 | ||
41 | AliL3TrackArray *fTracks; //! | |
42 | AliTPCParam *fParam; | |
43 | AliL3SpacePointData *fClusters[36][6]; //! | |
44 | AliSimDigits *fDigits; | |
45 | TTree *fDigitsTree; | |
46 | Int_t fMinSlice; | |
47 | Int_t fMaxSlice; | |
48 | UInt_t fNcl[36][6]; | |
49 | Int_t fRowid[36][176]; | |
50 | Int_t fMinPointsOnTrack; //Minimum points on track to be considered. | |
51 | Int_t fMinHitsFromParticle; | |
52 | GoodTrack *fGoodTracks; //! | |
53 | Float_t fMaxFalseClusters; | |
54 | ||
55 | Int_t fNFastPoints; | |
56 | UInt_t *fMcIndex;//! | |
57 | Int_t *fMcId;//! | |
58 | Int_t fGoodFound; | |
59 | Int_t fGoodGen; | |
60 | Double_t fMinGoodPt; | |
61 | ||
62 | //Histograms | |
63 | TNtuple *fNtuppel; | |
64 | TH1F *fPtRes; | |
65 | TH1F *fNGoodTracksPt; | |
66 | TH1F *fNFoundTracksPt; | |
67 | TH1F *fNFakeTracksPt; | |
68 | TH1F *fTrackEffPt; | |
69 | TH1F *fFakeTrackEffPt; | |
70 | TH1F *fNGoodTracksEta; | |
71 | TH1F *fNFoundTracksEta; | |
72 | TH1F *fNFakeTracksEta; | |
73 | TH1F *fTrackEffEta; | |
74 | TH1F *fFakeTrackEffEta; | |
75 | ||
76 | ||
77 | ||
78 | public: | |
79 | AliL3Evaluate(); | |
80 | AliL3Evaluate(Char_t *path,Int_t min_clusters,Int_t minhits,Double_t minpt=0.1,Int_t *slice=0); | |
81 | virtual ~AliL3Evaluate(); | |
82 | ||
83 | void CreateHistos(Int_t nbin=20,Float_t xlow=0,Float_t xup=4); | |
84 | void Write2File(Char_t *outputfile); | |
85 | void FillEffHistos(); | |
86 | void FillEffHistosNAIVE(); | |
87 | void CalcEffHistos(); | |
88 | void AssignIDs(); | |
89 | void GetGoodParticles(Char_t *particle_file,Bool_t sector=kFALSE); | |
90 | void GetFastClusterIDs(Char_t *path); | |
91 | void GetCFeff(Char_t *outfile); | |
92 | Int_t GetMCTrackLabel(AliL3Track *track); | |
93 | TNtupleD *CalculateResiduals(Char_t *datapath); | |
94 | TNtuple *EvaluatePoints(Char_t *rootfile); | |
95 | ||
96 | void SetMinPoints(Int_t f) {fMinPointsOnTrack = f;} | |
97 | void SetMinGoodPt(Double_t f) {fMinGoodPt = f;} | |
98 | void SetMaxFalseClusters(Float_t f) {fMaxFalseClusters = f;} | |
99 | ||
100 | Int_t GetNGoodTracks() {return fGoodGen;} | |
101 | Int_t GetNFoundTracks() {return fGoodFound;} | |
102 | TH1F *GetTrackEffPt() {return fTrackEffPt;} | |
103 | TH1F *GetTrackEffEta() {return fTrackEffEta;} | |
104 | TH1F *GetFakeEffEta() {return fFakeTrackEffEta;} | |
105 | TH1F *GetFakeEffPt() {return fFakeTrackEffPt;} | |
106 | TH1F *GetPtRes() {return fPtRes;} | |
107 | ||
108 | ||
109 | ClassDef(AliL3Evaluate,1) //Tracking evaluation class | |
110 | }; | |
111 | ||
112 | #endif |