Updated PaintContour() method
[u/mrichter/AliRoot.git] / HBTAN / AliHBTPIDPurityFctns.h
CommitLineData
becde6ce 1#ifndef ALIHBTPIDPURITYFCTNS_H
2#define ALIHBTPIDPURITYFCTNS_H
3//_______________________________________________________________________________
4/////////////////////////////////////////////////////////////////////////////////
5//
6// class AliHBTMonPIDPurityVsPtFctn;
7// class AliHBTMonThetaResolutionVsPtFctn;
8//
9// file: AliHBTPIDPurityFctns.cxx AliHBTPIDPurityFctns.h
10//
2b31c209 11// Classes for calculating PID purity, efficiency and other things connected with PID
12// xxxxxxxxxx
13// xxxxxxxxxx
14// xxxxxxxxxx
15// xxxxxxxxxx
16// xxxxxxxxxx
becde6ce 17//
18// added by Piotr.Skowronski@cern.ch
becde6ce 19//
20//////////////////////////////////////////////////////////////////////////////////
21
22#include "AliHBTFunction.h"
23#include "AliHBTMonitorFunction.h"
24
c93e6c76 25class AliHBTMonPIDPurityVsPtFctn: public AliHBTMonTwoParticleFctn1D, public AliHBTCorrelFunction
becde6ce 26{
27 public:
28 AliHBTMonPIDPurityVsPtFctn(Int_t nbins = 20, Double_t maxXval = 2.0, Double_t minXval = 0.0);
2b31c209 29 AliHBTMonPIDPurityVsPtFctn(const AliHBTMonPIDPurityVsPtFctn& /*in*/);
becde6ce 30 virtual ~AliHBTMonPIDPurityVsPtFctn();
2b31c209 31
32 AliHBTMonPIDPurityVsPtFctn& operator=(const AliHBTMonPIDPurityVsPtFctn& /*in*/);
33
becde6ce 34 void Init();
3c1edb34 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);}
becde6ce 37 void Rename(const Char_t * name);
38 void Rename(const Char_t * name, const Char_t * title);
39 TH1* GetResult();
78d7c6d3 40 Double_t GetValue(AliVAODParticle * /*track*/,AliVAODParticle * /*part*/) const { return 0.0; }
41 void Process(AliVAODParticle * track,AliVAODParticle * part);
becde6ce 42 protected:
2b31c209 43 TH1D* fGood;//histogram filled with correctly identified particles
44 TH1D* fAll;//histogram filled with all particles
becde6ce 45 ClassDef(AliHBTMonPIDPurityVsPtFctn,1)
46};
47/***********************************************************************/
48
49class AliHBTMonPIDContaminationVsPtFctn: public AliHBTMonTwoParticleFctn1D, public AliHBTCorrelFunction
50{
51 public:
52 AliHBTMonPIDContaminationVsPtFctn(Int_t nbins = 20, Double_t maxXval = 2.0, Double_t minXval = 0.0);
2b31c209 53 AliHBTMonPIDContaminationVsPtFctn(const AliHBTMonPIDContaminationVsPtFctn& /*in*/);
54 virtual ~AliHBTMonPIDContaminationVsPtFctn();
55
56 AliHBTMonPIDContaminationVsPtFctn& operator=(const AliHBTMonPIDContaminationVsPtFctn& /*in*/);
57
becde6ce 58 void Init();
3c1edb34 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);}
becde6ce 61 void Rename(const Char_t * name);
62 void Rename(const Char_t * name, const Char_t * title);
63 TH1* GetResult();
78d7c6d3 64 Double_t GetValue(AliVAODParticle * /*track*/,AliVAODParticle * /*part*/) const { return 0.0; }
65 void Process(AliVAODParticle * track,AliVAODParticle * part);
becde6ce 66 protected:
2b31c209 67 TH1D* fWrong;//histogram filled with wrongly identified particles
68 TH1D* fAll;//histogram filled with all particles
becde6ce 69 ClassDef(AliHBTMonPIDContaminationVsPtFctn,1)
70};
71/*************************************************************************************/
72
61763057 73class AliHBTQInvCorrelFctnPerfectPID: public AliHBTTwoPairFctn1D, public AliHBTCorrelFunction
74{
75//Q Invaraint Correlation Function
76//1D two particle function
77//Fills the function only for correctly reconstructed PID
78//Together with
79 public:
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);
84 TH1* GetResult();
85 protected:
86 Double_t GetValue(AliHBTPair* trackpair, AliHBTPair* /*partpair*/) const {return trackpair->GetQInv();}
87 private:
88 ClassDef(AliHBTQInvCorrelFctnPerfectPID,1)
89};
90
91/*************************************************************************************/
92
93class AliHBTWeightQInvCorrelFctnPerfectPID: public AliHBTTwoPairFctn1D, public AliHBTCorrelFunction
94{
95//Weight Q Invaraint Correlation Function
96//1D two particle function
97//Fills the function only for correctly reconstructed PID
98//Together with regular
99 public:
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);
104 TH1* GetResult();
105 protected:
106 Double_t GetValue(AliHBTPair* trackpair, AliHBTPair* /*partpair*/) const {return trackpair->GetQInv();}
107 private:
108 ClassDef(AliHBTWeightQInvCorrelFctnPerfectPID,1)
109};
110/*************************************************************************************/
111class AliHBTWeightQOutSQideQLongFctnPerfectPID: public AliHBTTwoPairFctn3D, public AliHBTCorrelFunction
112{
113
114 public:
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(){}
119
120 TH1* GetResult();
121 void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
122 void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
123
124 protected:
125 void GetValues(AliHBTPair* /*trackpair*/, AliHBTPair* /*partpair*/, Double_t& /*x*/, Double_t& /*y*/, Double_t& /*z*/) const {}
126
127 ClassDef(AliHBTWeightQOutSQideQLongFctnPerfectPID,1)
128};
129
130/*************************************************************************************/
131class AliHBTQOutSQideQLongFctnPerfectPID: public AliHBTTwoPairFctn3D, public AliHBTCorrelFunction
132{
133
134 public:
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(){}
139
140 TH1* GetResult();
141 void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
142 void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
143
144 protected:
145 void GetValues(AliHBTPair* /*trackpair*/, AliHBTPair* /*partpair*/, Double_t& /*x*/, Double_t& /*y*/, Double_t& /*z*/) const {}
146
147 ClassDef(AliHBTQOutSQideQLongFctnPerfectPID,1)
148};
149
150
151/*************************************************************************************/
152
becde6ce 153class AliHBTPairPIDProbVsQInvFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
154{
155//Q Invaraint Correlation Function
156//1D two particle function
157 public:
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);
162 TH1* GetResult();
163 protected:
a22a56ec 164 Double_t GetValue(AliHBTPair * pair) const {return pair->GetQInv();}
becde6ce 165 private:
166 ClassDef(AliHBTPairPIDProbVsQInvFctn,1)
167};
168/*************************************************************************************/
1f4ef2d2 169
becde6ce 170class AliHBTPairPIDProbVsQOutSQideQLongFctn: public AliHBTOnePairFctn3D, public AliHBTCorrelFunction
171{
172
173 public:
174 AliHBTPairPIDProbVsQOutSQideQLongFctn(Int_t nXbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0,
d277b11c 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);
becde6ce 177 virtual ~AliHBTPairPIDProbVsQOutSQideQLongFctn(){}
178
179 TH1* GetResult();
180 void ProcessSameEventParticles(AliHBTPair* part);
181 void ProcessDiffEventParticles(AliHBTPair* pair);
182
183 protected:
a22a56ec 184 void GetValues(AliHBTPair* /*pair*/, Double_t& /*x*/, Double_t& /*y*/, Double_t& /*z*/) const {}
becde6ce 185
186 ClassDef(AliHBTPairPIDProbVsQOutSQideQLongFctn,1)
187};
1f4ef2d2 188/******************************************************************/
189
190class AliHBTTwoTrackEffFctnPtThetaPhiPerfectPID: public AliHBTTwoPairFctn3D, public AliHBTCorrelFunction
191 {
192 public:
d277b11c 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);
1f4ef2d2 196 virtual ~AliHBTTwoTrackEffFctnPtThetaPhiPerfectPID(){}
197 void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
198 void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
199
200 TH1* GetResult();
201 protected:
202 void GetValues(AliHBTPair* /*trackpair*/, AliHBTPair* /*partpair*/, Double_t& /*x*/, Double_t& /*y*/, Double_t& /*z*/) const {}
203 private:
204 ClassDef(AliHBTTwoTrackEffFctnPtThetaPhiPerfectPID,1)
205 };
206/*************************************************************************************/
207
208class AliHBTPairPIDProbVsPtThetaPhiFctn: public AliHBTOnePairFctn3D, public AliHBTCorrelFunction
209{
210
211 public:
d277b11c 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);
1f4ef2d2 215 virtual ~AliHBTPairPIDProbVsPtThetaPhiFctn(){}
216
217 TH1* GetResult();
218 void ProcessSameEventParticles(AliHBTPair* part);
219 void ProcessDiffEventParticles(AliHBTPair* pair);
220
221 protected:
222 void GetValues(AliHBTPair* /*pair*/, Double_t& /*x*/, Double_t& /*y*/, Double_t& /*z*/) const {}
223
224 ClassDef(AliHBTPairPIDProbVsPtThetaPhiFctn,1)
225};
226
becde6ce 227
228
229#endif