1 #ifndef ALIHBTPIDPURITYFCTNS_H
2 #define ALIHBTPIDPURITYFCTNS_H
3 //_______________________________________________________________________________
4 /////////////////////////////////////////////////////////////////////////////////
6 // class AliHBTMonPIDPurityVsPtFctn;
7 // class AliHBTMonThetaResolutionVsPtFctn;
9 // file: AliHBTPIDPurityFctns.cxx AliHBTPIDPurityFctns.h
11 // Classes for calculating PID purity, efficiency and other things connected with PID
18 // added by Piotr.Skowronski@cern.ch
20 //////////////////////////////////////////////////////////////////////////////////
22 #include "AliHBTFunction.h"
23 #include "AliHBTMonitorFunction.h"
25 class AliHBTMonPIDPurityVsPtFctn: public AliHBTMonTwoParticleFctn1D, public AliHBTCorrelFunction
28 AliHBTMonPIDPurityVsPtFctn(Int_t nbins = 20, Double_t maxXval = 2.0, Double_t minXval = 0.0);
29 AliHBTMonPIDPurityVsPtFctn(const AliHBTMonPIDPurityVsPtFctn& /*in*/);
30 virtual ~AliHBTMonPIDPurityVsPtFctn();
32 AliHBTMonPIDPurityVsPtFctn& operator=(const AliHBTMonPIDPurityVsPtFctn& /*in*/);
35 Int_t Write(const char* /*x1*/ = "",Int_t /*x2*/ = 0, Int_t /*x3*/ = 0);
36 Int_t Write(const char* x1 = "",Int_t x2 = 0, Int_t x3 = 0) const {return AliHBTMonTwoParticleFctn1D::Write(x1,x2,x3);}
37 void Rename(const Char_t * name);
38 void Rename(const Char_t * name, const Char_t * title);
40 Double_t GetValue(AliVAODParticle * /*track*/,AliVAODParticle * /*part*/) const { return 0.0; }
41 void Process(AliVAODParticle * track,AliVAODParticle * part);
43 TH1D* fGood;//histogram filled with correctly identified particles
44 TH1D* fAll;//histogram filled with all particles
45 ClassDef(AliHBTMonPIDPurityVsPtFctn,1)
47 /***********************************************************************/
49 class AliHBTMonPIDContaminationVsPtFctn: public AliHBTMonTwoParticleFctn1D, public AliHBTCorrelFunction
52 AliHBTMonPIDContaminationVsPtFctn(Int_t nbins = 20, Double_t maxXval = 2.0, Double_t minXval = 0.0);
53 AliHBTMonPIDContaminationVsPtFctn(const AliHBTMonPIDContaminationVsPtFctn& /*in*/);
54 virtual ~AliHBTMonPIDContaminationVsPtFctn();
56 AliHBTMonPIDContaminationVsPtFctn& operator=(const AliHBTMonPIDContaminationVsPtFctn& /*in*/);
59 Int_t Write(const char* /*x1*/ = "",Int_t /*x2*/ = 0, Int_t /*x3*/ = 0);
60 Int_t Write(const char* x1 = "",Int_t x2 = 0, Int_t x3 = 0) const {return AliHBTMonTwoParticleFctn1D::Write(x1,x2,x3);}
61 void Rename(const Char_t * name);
62 void Rename(const Char_t * name, const Char_t * title);
64 Double_t GetValue(AliVAODParticle * /*track*/,AliVAODParticle * /*part*/) const { return 0.0; }
65 void Process(AliVAODParticle * track,AliVAODParticle * part);
67 TH1D* fWrong;//histogram filled with wrongly identified particles
68 TH1D* fAll;//histogram filled with all particles
69 ClassDef(AliHBTMonPIDContaminationVsPtFctn,1)
71 /*************************************************************************************/
73 class AliHBTQInvCorrelFctnPerfectPID: public AliHBTTwoPairFctn1D, public AliHBTCorrelFunction
75 //Q Invaraint Correlation Function
76 //1D two particle function
77 //Fills the function only for correctly reconstructed PID
80 AliHBTQInvCorrelFctnPerfectPID(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
81 virtual ~AliHBTQInvCorrelFctnPerfectPID(){};
82 void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
83 void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
86 Double_t GetValue(AliHBTPair* trackpair, AliHBTPair* /*partpair*/) const {return trackpair->GetQInv();}
88 ClassDef(AliHBTQInvCorrelFctnPerfectPID,1)
91 /*************************************************************************************/
93 class AliHBTWeightQInvCorrelFctnPerfectPID: public AliHBTTwoPairFctn1D, public AliHBTCorrelFunction
95 //Weight Q Invaraint Correlation Function
96 //1D two particle function
97 //Fills the function only for correctly reconstructed PID
98 //Together with regular
100 AliHBTWeightQInvCorrelFctnPerfectPID(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
101 virtual ~AliHBTWeightQInvCorrelFctnPerfectPID(){};
102 void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
103 void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
106 Double_t GetValue(AliHBTPair* trackpair, AliHBTPair* /*partpair*/) const {return trackpair->GetQInv();}
108 ClassDef(AliHBTWeightQInvCorrelFctnPerfectPID,1)
110 /*************************************************************************************/
111 class AliHBTWeightQOutSQideQLongFctnPerfectPID: public AliHBTTwoPairFctn3D, public AliHBTCorrelFunction
115 AliHBTWeightQOutSQideQLongFctnPerfectPID(Int_t nXbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0,
116 Int_t nYbins = 100, Double_t maxYval = 0.15, Double_t minYval = 0.0,
117 Int_t nZbins = 100, Double_t maxZval = 0.15, Double_t minZval = 0.0);
118 virtual ~AliHBTWeightQOutSQideQLongFctnPerfectPID(){}
121 void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
122 void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
125 void GetValues(AliHBTPair* /*trackpair*/, AliHBTPair* /*partpair*/, Double_t& /*x*/, Double_t& /*y*/, Double_t& /*z*/) const {}
127 ClassDef(AliHBTWeightQOutSQideQLongFctnPerfectPID,1)
130 /*************************************************************************************/
131 class AliHBTQOutSQideQLongFctnPerfectPID: public AliHBTTwoPairFctn3D, public AliHBTCorrelFunction
135 AliHBTQOutSQideQLongFctnPerfectPID(Int_t nXbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0,
136 Int_t nYbins = 100, Double_t maxYval = 0.15, Double_t minYval = 0.0,
137 Int_t nZbins = 100, Double_t maxZval = 0.15, Double_t minZval = 0.0);
138 virtual ~AliHBTQOutSQideQLongFctnPerfectPID(){}
141 void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
142 void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
145 void GetValues(AliHBTPair* /*trackpair*/, AliHBTPair* /*partpair*/, Double_t& /*x*/, Double_t& /*y*/, Double_t& /*z*/) const {}
147 ClassDef(AliHBTQOutSQideQLongFctnPerfectPID,1)
151 /*************************************************************************************/
153 class AliHBTPairPIDProbVsQInvFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
155 //Q Invaraint Correlation Function
156 //1D two particle function
158 AliHBTPairPIDProbVsQInvFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
159 virtual ~AliHBTPairPIDProbVsQInvFctn(){};
160 void ProcessSameEventParticles(AliHBTPair* pair);
161 void ProcessDiffEventParticles(AliHBTPair* pair);
164 Double_t GetValue(AliHBTPair * pair) const {return pair->GetQInv();}
166 ClassDef(AliHBTPairPIDProbVsQInvFctn,1)
168 /*************************************************************************************/
170 class AliHBTPairPIDProbVsQOutSQideQLongFctn: public AliHBTOnePairFctn3D, public AliHBTCorrelFunction
174 AliHBTPairPIDProbVsQOutSQideQLongFctn(Int_t nXbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0,
175 Int_t nYbins = 100, Double_t maxYval = 0.15, Double_t minYval = 0.0,
176 Int_t nZbins = 100, Double_t maxZval = 0.15, Double_t minZval = 0.0);
177 virtual ~AliHBTPairPIDProbVsQOutSQideQLongFctn(){}
180 void ProcessSameEventParticles(AliHBTPair* part);
181 void ProcessDiffEventParticles(AliHBTPair* pair);
184 void GetValues(AliHBTPair* /*pair*/, Double_t& /*x*/, Double_t& /*y*/, Double_t& /*z*/) const {}
186 ClassDef(AliHBTPairPIDProbVsQOutSQideQLongFctn,1)
188 /******************************************************************/
190 class AliHBTTwoTrackEffFctnPtThetaPhiPerfectPID: public AliHBTTwoPairFctn3D, public AliHBTCorrelFunction
193 AliHBTTwoTrackEffFctnPtThetaPhiPerfectPID(Int_t nXbins = 50, Double_t maxXval = 0.3, Double_t minXval = 0.0,
194 Int_t nYbins = 50, Double_t maxYval = 0.3, Double_t minYval = 0.0,
195 Int_t nZbins = 50, Double_t maxZval = 0.3, Double_t minZval = 0.0);
196 virtual ~AliHBTTwoTrackEffFctnPtThetaPhiPerfectPID(){}
197 void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
198 void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
202 void GetValues(AliHBTPair* /*trackpair*/, AliHBTPair* /*partpair*/, Double_t& /*x*/, Double_t& /*y*/, Double_t& /*z*/) const {}
204 ClassDef(AliHBTTwoTrackEffFctnPtThetaPhiPerfectPID,1)
206 /*************************************************************************************/
208 class AliHBTPairPIDProbVsPtThetaPhiFctn: public AliHBTOnePairFctn3D, public AliHBTCorrelFunction
212 AliHBTPairPIDProbVsPtThetaPhiFctn(Int_t nXbins = 50, Double_t maxXval = 0.3, Double_t minXval = 0.0,
213 Int_t nYbins = 50, Double_t maxYval = 0.3, Double_t minYval = 0.0,
214 Int_t nZbins = 50, Double_t maxZval = 0.3, Double_t minZval = 0.0);
215 virtual ~AliHBTPairPIDProbVsPtThetaPhiFctn(){}
218 void ProcessSameEventParticles(AliHBTPair* part);
219 void ProcessDiffEventParticles(AliHBTPair* pair);
222 void GetValues(AliHBTPair* /*pair*/, Double_t& /*x*/, Double_t& /*y*/, Double_t& /*z*/) const {}
224 ClassDef(AliHBTPairPIDProbVsPtThetaPhiFctn,1)