]>
Commit | Line | Data |
---|---|---|
3e87ef69 | 1 | // @(#) $Id$ |
2 | ||
108615fc | 3 | #ifndef ALIL3_Evaluate |
4 | #define ALIL3_Evaluate | |
5 | ||
3e87ef69 | 6 | |
7 | class TClonesArray; | |
8 | ||
108615fc | 9 | #include <TObject.h> |
10 | #include <TH1.h> | |
11 | #include <TTree.h> | |
1f79afc0 | 12 | #include <TNtuple.h> |
108615fc | 13 | #include "AliSimDigits.h" |
14 | ||
e1a32fa5 | 15 | |
16 | struct GoodTrack | |
17 | { | |
e1a32fa5 | 18 | Int_t label; |
40896357 | 19 | Double_t eta; |
e1a32fa5 | 20 | Int_t code; |
21 | Double_t px,py,pz; | |
e0f4d6b2 | 22 | Double_t x,y,z; |
23 | Int_t nhits; | |
a8a3f5c2 | 24 | Int_t sector; |
e1a32fa5 | 25 | }; |
26 | typedef struct GoodTrack GoodTrack; | |
27 | ||
28 | ||
108615fc | 29 | class AliL3Track; |
30 | class TClonesArray; | |
31 | class TFile; | |
32 | class AliL3TrackArray; | |
33 | class AliL3SpacePointData; | |
34 | class TH1F; | |
108615fc | 35 | class AliTPCParam; |
36 | class TTree; | |
37 | class AliSimDigits; | |
38 | class TObjArray; | |
78127e35 | 39 | class TParticle; |
108615fc | 40 | |
e0f4d6b2 | 41 | class AliL3Evaluate { |
108615fc | 42 | |
43 | private: | |
44 | ||
108615fc | 45 | AliL3TrackArray *fTracks; //! |
46 | AliTPCParam *fParam; | |
40896357 | 47 | AliL3SpacePointData *fClusters[36][6]; //! |
108615fc | 48 | TTree *fDigitsTree; |
8af8a456 | 49 | AliSimDigits *fDigits; |
3e87ef69 | 50 | Char_t fPath[1024]; |
108615fc | 51 | Int_t fMinSlice; |
52 | Int_t fMaxSlice; | |
40896357 | 53 | UInt_t fNcl[36][6]; |
ae97a0b9 | 54 | Int_t fRowid[36][176]; |
108615fc | 55 | Int_t fMinPointsOnTrack; //Minimum points on track to be considered. |
e0f4d6b2 | 56 | Int_t fMinHitsFromParticle; |
57 | GoodTrack *fGoodTracks; //! | |
58 | Float_t fMaxFalseClusters; | |
59 | ||
108615fc | 60 | Int_t fNFastPoints; |
c0217812 | 61 | UInt_t *fMcIndex;//! |
62 | Int_t *fMcId;//! | |
23908b9b | 63 | Int_t fGoodFound; |
64 | Int_t fGoodGen; | |
e170e0f9 | 65 | Double_t fMinGoodPt; |
b2a02bce | 66 | Double_t fMaxGoodPt; |
67 | ||
108615fc | 68 | //Histograms |
1f79afc0 | 69 | TNtuple *fNtuppel; |
108615fc | 70 | TH1F *fPtRes; |
71 | TH1F *fNGoodTracksPt; | |
72 | TH1F *fNFoundTracksPt; | |
73 | TH1F *fNFakeTracksPt; | |
74 | TH1F *fTrackEffPt; | |
75 | TH1F *fFakeTrackEffPt; | |
76 | TH1F *fNGoodTracksEta; | |
77 | TH1F *fNFoundTracksEta; | |
78 | TH1F *fNFakeTracksEta; | |
79 | TH1F *fTrackEffEta; | |
80 | TH1F *fFakeTrackEffEta; | |
b2a02bce | 81 | TNtuple *fNtupleRes; |
82 | Bool_t fStandardComparison; | |
e0f4d6b2 | 83 | |
108615fc | 84 | public: |
85 | AliL3Evaluate(); | |
b2a02bce | 86 | 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 | 87 | virtual ~AliL3Evaluate(); |
3e87ef69 | 88 | |
89 | void LoadData(Int_t event=-1,Bool_t sp=kFALSE); | |
e0f4d6b2 | 90 | void CreateHistos(Int_t nbin=20,Float_t xlow=0,Float_t xup=4); |
108615fc | 91 | void Write2File(Char_t *outputfile); |
e0f4d6b2 | 92 | void FillEffHistos(); |
93 | void FillEffHistosNAIVE(); | |
94 | void CalcEffHistos(); | |
de3c3890 | 95 | void AssignPIDs(); |
e0f4d6b2 | 96 | void AssignIDs(); |
3e87ef69 | 97 | void GetGoodParticles(Char_t *particle_file,Int_t event=-1,Int_t *padrowrange=0); |
e0f4d6b2 | 98 | void GetFastClusterIDs(Char_t *path); |
3e87ef69 | 99 | void GetCFeff(Char_t *path,Char_t *outfile,Int_t nevent=0,Bool_t sp=kFALSE); |
e0f4d6b2 | 100 | Int_t GetMCTrackLabel(AliL3Track *track); |
de3c3890 | 101 | Float_t GetTrackPID(AliL3Track *track); |
b2a02bce | 102 | void CalculateResiduals(); |
3e87ef69 | 103 | void EvaluatePoints(Char_t *rootfile,Char_t *exactfile,Char_t *tofile,Int_t nevent=1,Bool_t offline=kFALSE,Bool_t sp=kFALSE); |
104 | Float_t GetCrossingAngle(TParticle *part,Int_t slice,Int_t padrow,Float_t *xyz); | |
105 | Int_t FindPrimaries(Int_t nparticles); | |
108615fc | 106 | void SetMinPoints(Int_t f) {fMinPointsOnTrack = f;} |
e170e0f9 | 107 | void SetMinGoodPt(Double_t f) {fMinGoodPt = f;} |
e0f4d6b2 | 108 | void SetMaxFalseClusters(Float_t f) {fMaxFalseClusters = f;} |
b2a02bce | 109 | void SetStandardComparison(Bool_t b) {fStandardComparison = b;} |
110 | TNtuple *GetNtuple(); | |
23908b9b | 111 | Int_t GetNGoodTracks() {return fGoodGen;} |
112 | Int_t GetNFoundTracks() {return fGoodFound;} | |
e0f4d6b2 | 113 | TH1F *GetTrackEffPt() {return fTrackEffPt;} |
114 | TH1F *GetTrackEffEta() {return fTrackEffEta;} | |
115 | TH1F *GetFakeEffEta() {return fFakeTrackEffEta;} | |
116 | TH1F *GetFakeEffPt() {return fFakeTrackEffPt;} | |
117 | TH1F *GetPtRes() {return fPtRes;} | |
3e87ef69 | 118 | AliL3TrackArray *GetTracks() {return fTracks;} |
e0f4d6b2 | 119 | |
b661165c | 120 | ClassDef(AliL3Evaluate,1) //Tracking evaluation class |
108615fc | 121 | }; |
122 | ||
123 | #endif |