]>
Commit | Line | Data |
---|---|---|
aec0ec32 | 1 | // |
2 | // *** Class AliRsnComparisonObj *** | |
3 | // | |
4 | // TODO | |
5 | // | |
6 | // authors: A. Pulvirenti (email: alberto.pulvirenti@ct.infn.it) | |
7 | // M. Vala (email: martin.vala@cern.ch) | |
8 | // | |
9 | ||
10 | #ifndef ALIRSNCOMPARISONOBJ_H | |
11 | #define ALIRSNCOMPARISONOBJ_H | |
12 | ||
13 | #include <TNamed.h> | |
14 | #include <TList.h> | |
15 | #include <TH1.h> | |
16 | ||
17 | #include "AliMCEvent.h" | |
18 | #include "AliESDtrack.h" | |
19 | #include "AliMCParticle.h" | |
20 | ||
21 | #include "AliRsnPID.h" | |
22 | ||
23 | class AliRsnComparisonObj : public TNamed | |
24 | { | |
25 | public: | |
26 | ||
27 | enum EFormat | |
28 | { | |
29 | kRSN=0, | |
30 | kESD, | |
31 | kMC, | |
32 | kLastFormat | |
33 | }; | |
34 | ||
35 | enum EComparisonType | |
36 | { | |
37 | kParticleInfo=0, | |
38 | kPid, | |
39 | kLastComparisonType | |
40 | }; | |
41 | ||
42 | enum EParameterType | |
43 | { | |
44 | kP = 0, | |
45 | kPt, | |
46 | kEta, | |
47 | kY, | |
48 | kLastParameterType | |
49 | }; | |
e0baff8c | 50 | |
aec0ec32 | 51 | enum EHistoType |
52 | { | |
53 | kIndent=0, | |
54 | kGood, | |
55 | kFake, | |
56 | kTrue, | |
57 | kLastHistoType | |
58 | }; | |
59 | ||
60 | enum EPIDType | |
61 | { | |
62 | kEsd=0, | |
63 | kITS, | |
64 | kTPC, | |
65 | kTOF, | |
66 | kITS_TPC, | |
67 | kITS_TOF, | |
68 | kTPC_TOF, | |
69 | kITS_TPC_TOF, | |
70 | kITS_TPC_TOF_SP, | |
71 | kLastPIDType | |
72 | }; | |
73 | ||
74 | AliRsnComparisonObj(const char*name="RSN"); | |
75 | ~AliRsnComparisonObj(); | |
76 | ||
77 | TList *GenerateParticleInfoHistogramList(TString prefix=""); | |
78 | TList *GeneratePIDHistogramList(TString prefix=""); | |
79 | void FillPIDHistograms(AliRsnDaughter *daughter); | |
80 | void FillPIDHistograms(AliESDtrack *track,AliMCEvent *mc=0); | |
81 | void FillPIDHistograms(AliMCParticle *mctrack); | |
e0baff8c | 82 | |
aec0ec32 | 83 | void FillHistograms(AliMCParticle *mctrack); |
84 | ||
85 | void SetCurrentESDPID(const EPIDType& type,const Double_t&divValue = 0.0); | |
86 | void SetPriorProbs(Double_t* pid) { for (Int_t i=0; i<5; i++) fPriorProbs[i]=pid[i]; } | |
87 | ||
88 | void SetESDstatus(const ULong_t status); | |
89 | void SetESDTrackQualityCuts(const Int_t& its=-1,const Int_t& tpc=-1,const Int_t& trd=-1); | |
90 | private: | |
e0baff8c | 91 | |
92 | AliRsnComparisonObj(const AliRsnComparisonObj& copy) | |
93 | : TNamed(copy),fCurrentComparisonType(kParticleInfo),fCurrentESDPID(kEsd), | |
94 | fESDstatus(0),fITSClusters(0),fTPCClusters(0),fTRDClusters(0),fPIDDivValue(0.) {} | |
aec0ec32 | 95 | const AliRsnComparisonObj& operator=(const AliRsnComparisonObj&) {return *this;} |
96 | ||
97 | EComparisonType fCurrentComparisonType; | |
98 | EPIDType fCurrentESDPID; | |
99 | Double_t fPriorProbs[5]; | |
100 | ULong_t fESDstatus; | |
101 | Int_t fITSClusters; | |
102 | Int_t fTPCClusters; | |
103 | Int_t fTRDClusters; | |
e0baff8c | 104 | |
aec0ec32 | 105 | Double_t fPIDDivValue; |
106 | ||
107 | TH1D *fHistosPartInfo[kLastParameterType][2][AliRsnPID::kSpeciesAll]; | |
108 | TH1D *fHistosPID[kLastFormat][kLastHistoType][AliRsnPID::kSpecies+1]; | |
e0baff8c | 109 | |
aec0ec32 | 110 | TString GetFormatName(EFormat type); |
111 | TString GetHistoTypeName(EHistoType type); | |
112 | ||
113 | void GetESDPID(AliESDtrack *track,Double_t *pid,Double_t p=-1.0); | |
114 | TString GetParameterName(EParameterType type); | |
115 | Double_t GetParameterNameValue(EParameterType type,AliMCParticle * mctrack); | |
116 | ||
117 | ClassDef(AliRsnComparisonObj, 1) | |
118 | }; | |
119 | ||
120 | #endif |