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