]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/RESONANCES/AliRsnComparisonObj.h
Package revised - New AnalysisTask's - Added more functions
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnComparisonObj.h
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     };
50     
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);
82     
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:
91   
92     AliRsnComparisonObj(const AliRsnComparisonObj& copy) 
93     : TNamed(copy),fCurrentComparisonType(kParticleInfo),fCurrentESDPID(kEsd),
94     fESDstatus(0),fITSClusters(0),fTPCClusters(0),fTRDClusters(0),fPIDDivValue(0.) {}
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;
104     
105     Double_t          fPIDDivValue;
106
107     TH1D              *fHistosPartInfo[kLastParameterType][2][AliRsnPID::kSpeciesAll];
108     TH1D              *fHistosPID[kLastFormat][kLastHistoType][AliRsnPID::kSpecies+1];
109     
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