]>
Commit | Line | Data |
---|---|---|
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 | ||
10 | class AliL3Track; | |
11 | class TClonesArray; | |
12 | class TFile; | |
13 | class AliL3TrackArray; | |
14 | class AliL3SpacePointData; | |
15 | class TH1F; | |
16 | class AliL3Transform; | |
17 | class AliTPCParam; | |
18 | class TTree; | |
19 | class AliSimDigits; | |
20 | class TObjArray; | |
78127e35 | 21 | class TParticle; |
108615fc | 22 | |
23 | class AliL3Evaluate : public TObject { | |
24 | ||
25 | private: | |
26 | ||
27 | TFile *fMCFile; | |
28 | TFile *fMCclusterfile; //If you run the fast simulator. | |
23908b9b | 29 | TObjArray *fParticles; |
108615fc | 30 | AliL3TrackArray *fTracks; //! |
31 | AliTPCParam *fParam; | |
32 | AliL3SpacePointData *fClusters[36][5]; //! | |
33 | AliL3Transform *fTransform; //! | |
34 | AliSimDigits *fDigits; | |
35 | TTree *fDigitsTree; | |
36 | Int_t fMinSlice; | |
37 | Int_t fMaxSlice; | |
38 | UInt_t fNcl[36][5]; | |
ae97a0b9 | 39 | Int_t fRowid[36][176]; |
108615fc | 40 | Int_t fMinPointsOnTrack; //Minimum points on track to be considered. |
41 | Bool_t fIsSlow; | |
23908b9b | 42 | Bool_t fNoOverlap; |
108615fc | 43 | Int_t fNFastPoints; |
c0217812 | 44 | UInt_t *fMcIndex;//! |
45 | Int_t *fMcId;//! | |
23908b9b | 46 | Int_t fGoodFound; |
47 | Int_t fGoodGen; | |
48 | ||
108615fc | 49 | //Histograms |
1f79afc0 | 50 | TNtuple *fNtuppel; |
108615fc | 51 | TH1F *fPtRes; |
52 | TH1F *fNGoodTracksPt; | |
53 | TH1F *fNFoundTracksPt; | |
54 | TH1F *fNFakeTracksPt; | |
55 | TH1F *fTrackEffPt; | |
56 | TH1F *fFakeTrackEffPt; | |
57 | TH1F *fNGoodTracksEta; | |
58 | TH1F *fNFoundTracksEta; | |
59 | TH1F *fNFakeTracksEta; | |
60 | TH1F *fTrackEffEta; | |
61 | TH1F *fFakeTrackEffEta; | |
62 | ||
63 | void FillEffHistos(TObjArray *good_particles,Int_t *particle_id); | |
bc2f4f0e | 64 | void CalcEffHistos(); |
108615fc | 65 | void AssignIDs(); |
66 | Bool_t SetDigitsTree(); | |
67 | Bool_t SetMCParticleArray(); | |
68 | TObjArray *DefineGoodTracks(Int_t slice,Int_t *padrow,Int_t good_number,Int_t *particle_id); | |
c0217812 | 69 | Int_t GetMCTrackLabel(AliL3Track *track); |
70 | Int_t **GetClusterIDs(AliL3Track *track); | |
71 | void GetFastClusterIDs(Char_t *path); | |
1f79afc0 | 72 | //void Setup(Char_t *trackfile,Char_t *path); |
bc2f4f0e | 73 | |
108615fc | 74 | public: |
75 | AliL3Evaluate(); | |
76 | AliL3Evaluate(Char_t *mcfile,Int_t *slice); | |
1f79afc0 | 77 | AliL3Evaluate(Int_t *slice); |
108615fc | 78 | |
79 | virtual ~AliL3Evaluate(); | |
80 | ||
c0217812 | 81 | void SetupFast(Char_t *trackfile,Char_t *mcClusterfile,Char_t *path="."); |
82 | void SetupSlow(Char_t *trackfile,Char_t *path="."); | |
1f79afc0 | 83 | void Setup(Char_t *trackfile,Char_t *path); |
108615fc | 84 | void CreateHistos(Int_t nbin=20,Int_t xlow=0,Int_t xup=4); |
85 | void EvaluatePatch(Int_t slice,Int_t patch,Int_t min_points,Int_t good_number); | |
86 | void EvaluateSlice(Int_t slice,Int_t min_points,Int_t good_number); | |
bc2f4f0e | 87 | void EvaluateGlobal(Int_t min_points,Int_t good_number); |
108615fc | 88 | void Write2File(Char_t *outputfile); |
89 | ||
90 | TH1F *GetTrackEffPt() {return fTrackEffPt;} | |
91 | TH1F *GetTrackEffEta() {return fTrackEffEta;} | |
92 | TH1F *GetPtRes() {return fPtRes;} | |
93 | ||
94 | void SetMinPoints(Int_t f) {fMinPointsOnTrack = f;} | |
23908b9b | 95 | void DoSingleTracks() {fNoOverlap = kTRUE;} |
96 | Int_t GetNGoodTracks() {return fGoodGen;} | |
97 | Int_t GetNFoundTracks() {return fGoodFound;} | |
1f79afc0 | 98 | |
99 | TNtuple *CalculateResiduals(); | |
78127e35 | 100 | TNtuple *EvaluatePoints(); |
101 | Bool_t GetParticleCrossingPoint(TParticle *part,Int_t slice,Int_t padrow,Float_t *xyz); | |
102 | TNtuple *EvaluateGEANT(); | |
103 | ||
108615fc | 104 | ClassDef(AliL3Evaluate,1) |
105 | }; | |
106 | ||
107 | #endif |