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*/);
36 void Rename(const Char_t * name);
37 void Rename(const Char_t * name, const Char_t * title);
39 Double_t GetValue(AliVAODParticle * /*track*/,AliVAODParticle * /*part*/) const { return 0.0; }
40 void Process(AliVAODParticle * track,AliVAODParticle * part);
42 TH1D* fGood;//histogram filled with correctly identified particles
43 TH1D* fAll;//histogram filled with all particles
44 ClassDef(AliHBTMonPIDPurityVsPtFctn,1)
46 /***********************************************************************/
48 class AliHBTMonPIDContaminationVsPtFctn: public AliHBTMonTwoParticleFctn1D, public AliHBTCorrelFunction
51 AliHBTMonPIDContaminationVsPtFctn(Int_t nbins = 20, Double_t maxXval = 2.0, Double_t minXval = 0.0);
52 AliHBTMonPIDContaminationVsPtFctn(const AliHBTMonPIDContaminationVsPtFctn& /*in*/);
53 virtual ~AliHBTMonPIDContaminationVsPtFctn();
55 AliHBTMonPIDContaminationVsPtFctn& operator=(const AliHBTMonPIDContaminationVsPtFctn& /*in*/);
59 void Rename(const Char_t * name);
60 void Rename(const Char_t * name, const Char_t * title);
62 Double_t GetValue(AliVAODParticle * /*track*/,AliVAODParticle * /*part*/) const { return 0.0; }
63 void Process(AliVAODParticle * track,AliVAODParticle * part);
65 TH1D* fWrong;//histogram filled with wrongly identified particles
66 TH1D* fAll;//histogram filled with all particles
67 ClassDef(AliHBTMonPIDContaminationVsPtFctn,1)
69 /*************************************************************************************/
71 class AliHBTQInvCorrelFctnPerfectPID: public AliHBTTwoPairFctn1D, public AliHBTCorrelFunction
73 //Q Invaraint Correlation Function
74 //1D two particle function
75 //Fills the function only for correctly reconstructed PID
78 AliHBTQInvCorrelFctnPerfectPID(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
79 virtual ~AliHBTQInvCorrelFctnPerfectPID(){};
80 void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
81 void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
84 Double_t GetValue(AliHBTPair* trackpair, AliHBTPair* /*partpair*/) const {return trackpair->GetQInv();}
86 ClassDef(AliHBTQInvCorrelFctnPerfectPID,1)
89 /*************************************************************************************/
91 class AliHBTWeightQInvCorrelFctnPerfectPID: public AliHBTTwoPairFctn1D, public AliHBTCorrelFunction
93 //Weight Q Invaraint Correlation Function
94 //1D two particle function
95 //Fills the function only for correctly reconstructed PID
96 //Together with regular
98 AliHBTWeightQInvCorrelFctnPerfectPID(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
99 virtual ~AliHBTWeightQInvCorrelFctnPerfectPID(){};
100 void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
101 void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
104 Double_t GetValue(AliHBTPair* trackpair, AliHBTPair* /*partpair*/) const {return trackpair->GetQInv();}
106 ClassDef(AliHBTWeightQInvCorrelFctnPerfectPID,1)
108 /*************************************************************************************/
109 class AliHBTWeightQOutSQideQLongFctnPerfectPID: public AliHBTTwoPairFctn3D, public AliHBTCorrelFunction
113 AliHBTWeightQOutSQideQLongFctnPerfectPID(Int_t nXbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0,
114 Int_t nYbins = 100, Double_t maxYval = 0.15, Double_t minYval = 0.0,
115 Int_t nZbins = 100, Double_t maxZval = 0.15, Double_t minZval = 0.0);
116 virtual ~AliHBTWeightQOutSQideQLongFctnPerfectPID(){}
119 void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
120 void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
123 void GetValues(AliHBTPair* /*trackpair*/, AliHBTPair* /*partpair*/, Double_t& /*x*/, Double_t& /*y*/, Double_t& /*z*/) const {}
125 ClassDef(AliHBTWeightQOutSQideQLongFctnPerfectPID,1)
128 /*************************************************************************************/
129 class AliHBTQOutSQideQLongFctnPerfectPID: public AliHBTTwoPairFctn3D, public AliHBTCorrelFunction
133 AliHBTQOutSQideQLongFctnPerfectPID(Int_t nXbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0,
134 Int_t nYbins = 100, Double_t maxYval = 0.15, Double_t minYval = 0.0,
135 Int_t nZbins = 100, Double_t maxZval = 0.15, Double_t minZval = 0.0);
136 virtual ~AliHBTQOutSQideQLongFctnPerfectPID(){}
139 void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
140 void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
143 void GetValues(AliHBTPair* /*trackpair*/, AliHBTPair* /*partpair*/, Double_t& /*x*/, Double_t& /*y*/, Double_t& /*z*/) const {}
145 ClassDef(AliHBTQOutSQideQLongFctnPerfectPID,1)
149 /*************************************************************************************/
151 class AliHBTPairPIDProbVsQInvFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
153 //Q Invaraint Correlation Function
154 //1D two particle function
156 AliHBTPairPIDProbVsQInvFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
157 virtual ~AliHBTPairPIDProbVsQInvFctn(){};
158 void ProcessSameEventParticles(AliHBTPair* pair);
159 void ProcessDiffEventParticles(AliHBTPair* pair);
162 Double_t GetValue(AliHBTPair * pair) const {return pair->GetQInv();}
164 ClassDef(AliHBTPairPIDProbVsQInvFctn,1)
166 /*************************************************************************************/
168 class AliHBTPairPIDProbVsQOutSQideQLongFctn: public AliHBTOnePairFctn3D, public AliHBTCorrelFunction
172 AliHBTPairPIDProbVsQOutSQideQLongFctn(Int_t nXbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0,
173 Int_t nYbins = 100, Double_t maxYval = 0.15, Double_t minYval = 0.0,
174 Int_t nZbins = 100, Double_t maxZval = 0.15, Double_t minZval = 0.0);
175 virtual ~AliHBTPairPIDProbVsQOutSQideQLongFctn(){}
178 void ProcessSameEventParticles(AliHBTPair* part);
179 void ProcessDiffEventParticles(AliHBTPair* pair);
182 void GetValues(AliHBTPair* /*pair*/, Double_t& /*x*/, Double_t& /*y*/, Double_t& /*z*/) const {}
184 ClassDef(AliHBTPairPIDProbVsQOutSQideQLongFctn,1)
186 /******************************************************************/
188 class AliHBTTwoTrackEffFctnPtThetaPhiPerfectPID: public AliHBTTwoPairFctn3D, public AliHBTCorrelFunction
191 AliHBTTwoTrackEffFctnPtThetaPhiPerfectPID(Int_t nXbins = 50, Double_t maxXval = 0.3, Double_t minXval = 0.0,
192 Int_t nYbins = 50, Double_t maxYval = 0.3, Double_t minYval = 0.0,
193 Int_t nZbins = 50, Double_t maxZval = 0.3, Double_t minZval = 0.0);
194 virtual ~AliHBTTwoTrackEffFctnPtThetaPhiPerfectPID(){}
195 void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
196 void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
200 void GetValues(AliHBTPair* /*trackpair*/, AliHBTPair* /*partpair*/, Double_t& /*x*/, Double_t& /*y*/, Double_t& /*z*/) const {}
202 ClassDef(AliHBTTwoTrackEffFctnPtThetaPhiPerfectPID,1)
204 /*************************************************************************************/
206 class AliHBTPairPIDProbVsPtThetaPhiFctn: public AliHBTOnePairFctn3D, public AliHBTCorrelFunction
210 AliHBTPairPIDProbVsPtThetaPhiFctn(Int_t nXbins = 50, Double_t maxXval = 0.3, Double_t minXval = 0.0,
211 Int_t nYbins = 50, Double_t maxYval = 0.3, Double_t minYval = 0.0,
212 Int_t nZbins = 50, Double_t maxZval = 0.3, Double_t minZval = 0.0);
213 virtual ~AliHBTPairPIDProbVsPtThetaPhiFctn(){}
216 void ProcessSameEventParticles(AliHBTPair* part);
217 void ProcessDiffEventParticles(AliHBTPair* pair);
220 void GetValues(AliHBTPair* /*pair*/, Double_t& /*x*/, Double_t& /*y*/, Double_t& /*z*/) const {}
222 ClassDef(AliHBTPairPIDProbVsPtThetaPhiFctn,1)