1 #include "AliHBTWeightFctn.h"
3 //_________________________________________________________________________
7 //This class allows to obtain Q_inv correlation function with weights
8 //calculated by Lednicky's alghorithm.
9 //Numerator is filled with weighted events. Weights are attributed to reconstructed tracks.
10 //Weights are calculated with corresponding simulated particles momenta.
11 //Denominator is filled with mixing unweighted reconstructed tracks.
12 //One needs both pairs
13 //(simulated and recontructed), thus function is of class AliHBTTwoPairFctn1D.
14 //Author: Ludmila Malinina, JINR (malinina@sunhe.jinr.ru)
15 #include "AliHBTWeightsPID.h"
17 //--for test--AliHBTWeightQInvFctn* yyy= new AliHBTWeightQInvFctn();
19 ClassImp( AliHBTWeightQInvFctn )
22 /****************************************************************/
23 AliHBTWeightQInvFctn::AliHBTWeightQInvFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
24 AliHBTTwoPairFctn1D(nbins,maxXval,minXval)
27 fWriteNumAndDen = kTRUE;//change default behaviour
28 Rename("wqinvcf","Q_{inv} Weight Correlation Function");
30 /****************************************************************/
31 void AliHBTWeightQInvFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
33 //process particles from same events (fills numerator)
34 trackpair = CheckPair(trackpair);
35 partpair = CheckPair(partpair);
36 if ( trackpair && partpair)
38 // Double_t weightPID=1.;
39 Double_t weight = 1.0;
40 if ( ( trackpair->Particle1()->GetPdgCode() == partpair->Particle1()->GetPdgCode()) &&
41 ( trackpair->Particle2()->GetPdgCode() == partpair->Particle2()->GetPdgCode()) )
43 weight=partpair->GetWeight();
45 // Double_t weight=weightHBT*weightPID;
46 fNumerator->Fill(trackpair->GetQInv(),weight);
49 /****************************************************************/
51 void AliHBTWeightQInvFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
53 // Fills the denominator using mixed pairs
54 trackpair = CheckPair(trackpair);
55 partpair = CheckPair(partpair);
56 if ( trackpair && partpair)
58 fDenominator->Fill(trackpair->GetQInv());
61 /**************************************************************/
62 TH1* AliHBTWeightQInvFctn::GetResult()
64 //returns ratio of numerator and denominator
65 return GetRatio(Scale());
68 /**************************************************************************************/
69 /**************************************************************************************/
70 /**************************************************************************************/
71 /**************************************************************************************/
73 ClassImp(AliHBTWeightQOutFctn)
75 AliHBTWeightQOutFctn::AliHBTWeightQOutFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
76 AliHBTTwoPairFctn1D(nbins,maxXval,minXval)
79 fWriteNumAndDen = kTRUE;//change default behaviour
80 Rename("wqoutcf","Q_{out} Weight Correlation Function");
82 /****************************************************************/
83 void AliHBTWeightQOutFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
85 //process particles from same events (fills numerator)
86 trackpair = CheckPair(trackpair);
87 partpair = CheckPair(partpair);
88 if ( trackpair && partpair)
90 // Double_t weightPID=1.;
91 Double_t weight = 1.0;
92 if ( ( trackpair->Particle1()->GetPdgCode() == partpair->Particle1()->GetPdgCode()) &&
93 ( trackpair->Particle2()->GetPdgCode() == partpair->Particle2()->GetPdgCode()) )
95 weight=partpair->GetWeight();
97 // Double_t weight=weightHBT*weightPID;
98 fNumerator->Fill(trackpair->GetQOutCMSLC(),weight);
101 /****************************************************************/
103 void AliHBTWeightQOutFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
105 //process particles from diff events (fills denominator)
106 trackpair = CheckPair(trackpair);
107 partpair = CheckPair(partpair);
108 if ( trackpair && partpair)
110 fDenominator->Fill(trackpair->GetQOutCMSLC());
113 /**************************************************************/
114 TH1* AliHBTWeightQOutFctn::GetResult()
117 //returns ratio of numerator and denominator
118 return GetRatio(Scale());
121 /*************************************************************************************/
122 /*************************************************************************************/
123 /*************************************************************************************/
125 ClassImp(AliHBTWeightQLongFctn)
126 AliHBTWeightQLongFctn::AliHBTWeightQLongFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
127 AliHBTTwoPairFctn1D(nbins,maxXval,minXval)
130 fWriteNumAndDen = kTRUE;//change default behaviour
131 Rename("wqlongcf","Q_{long} Weight Correlation Function");
133 /****************************************************************/
134 void AliHBTWeightQLongFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
136 //process particles from same events (fills numerator)
137 trackpair = CheckPair(trackpair);
138 partpair = CheckPair(partpair);
139 if ( trackpair && partpair)
141 // Double_t weightPID=1.;
142 Double_t weight = 1.0;
143 if ( ( trackpair->Particle1()->GetPdgCode() == partpair->Particle1()->GetPdgCode()) &&
144 ( trackpair->Particle2()->GetPdgCode() == partpair->Particle2()->GetPdgCode()) )
146 weight=partpair->GetWeight();
148 // Double_t weight=weightHBT*weightPID;
149 fNumerator->Fill(trackpair->GetQLongCMSLC(),weight);
152 /****************************************************************/
154 void AliHBTWeightQLongFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
156 //process particles from diff events (fills denominator)
157 trackpair = CheckPair(trackpair);
158 partpair = CheckPair(partpair);
159 if ( trackpair && partpair)
161 fDenominator->Fill(trackpair->GetQLongCMSLC());
164 /**************************************************************/
165 TH1* AliHBTWeightQLongFctn::GetResult()
168 //returns ratio of numerator and denominator
169 return GetRatio(Scale());
172 /*************************************************************************************/
173 /*************************************************************************************/
174 /*************************************************************************************/
176 ClassImp(AliHBTWeightQSideFctn)
177 /*************************************************************************************/
179 AliHBTWeightQSideFctn::AliHBTWeightQSideFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
180 AliHBTTwoPairFctn1D(nbins,maxXval,minXval)
183 fWriteNumAndDen = kTRUE;//change default behaviour
184 Rename("wqsidecf","Q_{side} Weight Correlation Function");
186 /****************************************************************/
187 void AliHBTWeightQSideFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
189 //process particles from same events (fills numerator)
190 trackpair = CheckPair(trackpair);
191 partpair = CheckPair(partpair);
192 if ( trackpair && partpair)
194 // Double_t weightPID=1.;
195 Double_t weight = 1.0;
196 if ( ( trackpair->Particle1()->GetPdgCode() == partpair->Particle1()->GetPdgCode()) &&
197 ( trackpair->Particle2()->GetPdgCode() == partpair->Particle2()->GetPdgCode()) )
199 weight=partpair->GetWeight();
201 // Double_t weight=weightHBT*weightPID;
202 fNumerator->Fill(trackpair->GetQSideCMSLC(),weight);
205 /****************************************************************/
207 void AliHBTWeightQSideFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
209 //process particles from diff events (fills denominator)
210 trackpair = CheckPair(trackpair);
211 partpair = CheckPair(partpair);
212 if ( trackpair && partpair)
214 fDenominator->Fill(trackpair->GetQSideCMSLC());
217 /**************************************************************/
218 TH1* AliHBTWeightQSideFctn::GetResult()
221 //returns ratio of numerator and denominator
222 return GetRatio(Scale());
225 /*************************************************************************************/
226 /*************************************************************************************/
227 /*************************************************************************************/
229 ClassImp(AliHBTWeightTwoKStarFctn)
230 /*************************************************************************************/
231 AliHBTWeightTwoKStarFctn::AliHBTWeightTwoKStarFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
232 AliHBTTwoPairFctn1D(nbins,maxXval,minXval)
235 fWriteNumAndDen = kTRUE;//change default behaviour
236 Rename("wtwokstarcf","2*K^{*} Weight Correlation Function");
238 /****************************************************************/
239 void AliHBTWeightTwoKStarFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
241 //process particles from same events (fills numerator)
242 trackpair = CheckPair(trackpair);
243 partpair = CheckPair(partpair);
244 if ( trackpair && partpair)
246 // Double_t weightPID=1.;
247 Double_t weight = 1.0;
248 if ( ( trackpair->Particle1()->GetPdgCode() == partpair->Particle1()->GetPdgCode()) &&
249 ( trackpair->Particle2()->GetPdgCode() == partpair->Particle2()->GetPdgCode()) )
251 weight=partpair->GetWeight();
253 // Double_t weight=weightHBT*weightPID;
254 fNumerator->Fill(2.0*(trackpair->GetKStar()),weight);
257 /****************************************************************/
259 void AliHBTWeightTwoKStarFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
261 //process particles from diff events (fills denominator)
262 trackpair = CheckPair(trackpair);
263 partpair = CheckPair(partpair);
264 if ( trackpair && partpair)
266 fDenominator->Fill(2.0*(trackpair->GetKStar()));
269 /**************************************************************/
270 TH1* AliHBTWeightTwoKStarFctn::GetResult()
273 //returns ratio of numerator and denominator
274 return GetRatio(Scale());
277 /*************************************************************************************/
278 /*************************************************************************************/
279 /*************************************************************************************/
281 ClassImp(AliHBTWeightQOutQSideFctn)
282 /*************************************************************************************/
284 AliHBTWeightQOutQSideFctn::AliHBTWeightQOutQSideFctn(Int_t nxbins, Double_t maxXval, Double_t minXval,
285 Int_t nybins, Double_t maxYval, Double_t minYval):
286 AliHBTTwoPairFctn2D(nxbins,maxXval,minXval,nybins,maxYval,minYval)
289 fWriteNumAndDen = kTRUE;//change default behaviour
290 Rename("wqoutqsidecf","Q_{out} Q_{side} Weight Correlation Function 2D");
292 /*************************************************************************************/
293 void AliHBTWeightQOutQSideFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
295 //process particles from same events (fills numerator)
296 trackpair = CheckPair(trackpair);
297 partpair = CheckPair(partpair);
298 if ( trackpair && partpair)
300 // Double_t weightPID=1.;
301 Double_t weight = 1.0;
302 if ( ( trackpair->Particle1()->GetPdgCode() == partpair->Particle1()->GetPdgCode()) &&
303 ( trackpair->Particle2()->GetPdgCode() == partpair->Particle2()->GetPdgCode()) )
305 weight=partpair->GetWeight();
307 // Double_t weight=weightHBT*weightPID;
308 fNumerator->Fill(trackpair->GetQOutCMSLC(),trackpair->GetQSideCMSLC(),weight);
311 /****************************************************************/
313 void AliHBTWeightQOutQSideFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
315 //process particles from diff events (fills denominator)
316 trackpair = CheckPair(trackpair);
317 partpair = CheckPair(partpair);
318 if ( trackpair && partpair)
320 fDenominator->Fill(trackpair->GetQOutCMSLC(),trackpair->GetQSideCMSLC());
323 /**************************************************************/
324 TH1* AliHBTWeightQOutQSideFctn::GetResult()
327 return GetRatio(Scale());
330 /*************************************************************************************/
331 /*************************************************************************************/
332 /*************************************************************************************/
334 ClassImp(AliHBTWeightQOutQLongFctn)
335 /*************************************************************************************/
337 AliHBTWeightQOutQLongFctn::AliHBTWeightQOutQLongFctn(Int_t nxbins, Double_t maxXval, Double_t minXval,
338 Int_t nybins, Double_t maxYval, Double_t minYval):
339 AliHBTTwoPairFctn2D(nxbins,maxXval,minXval,nybins,maxYval,minYval)
342 fWriteNumAndDen = kTRUE;//change default behaviour
343 Rename("wqoutqlongcf","Q_{out} Q_{long} Weight Correlation Function 2D");
345 /*************************************************************************************/
346 void AliHBTWeightQOutQLongFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
348 //process particles from same events (fills numerator)
349 trackpair = CheckPair(trackpair);
350 partpair = CheckPair(partpair);
351 if ( trackpair && partpair)
353 // Double_t weightPID=1.;
354 Double_t weight = 1.0;
355 if ( ( trackpair->Particle1()->GetPdgCode() == partpair->Particle1()->GetPdgCode()) &&
356 ( trackpair->Particle2()->GetPdgCode() == partpair->Particle2()->GetPdgCode()) )
358 weight=partpair->GetWeight();
360 // Double_t weight=weightHBT*weightPID;
361 fNumerator->Fill(trackpair->GetQOutCMSLC(),trackpair->GetQLongCMSLC(),weight);
364 /****************************************************************/
366 void AliHBTWeightQOutQLongFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
368 //process particles from diff events (fills denominator)
369 trackpair = CheckPair(trackpair);
370 partpair = CheckPair(partpair);
371 if ( trackpair && partpair)
373 fDenominator->Fill(trackpair->GetQOutCMSLC(),trackpair->GetQLongCMSLC());
376 /**************************************************************/
378 TH1* AliHBTWeightQOutQLongFctn::GetResult()
381 return GetRatio(Scale());
384 /*************************************************************************************/
385 /*************************************************************************************/
386 /*************************************************************************************/
388 ClassImp(AliHBTWeightQSideQLongFctn)
389 /*************************************************************************************/
391 AliHBTWeightQSideQLongFctn::AliHBTWeightQSideQLongFctn(Int_t nxbins, Double_t maxXval, Double_t minXval,
392 Int_t nybins, Double_t maxYval, Double_t minYval):
393 AliHBTTwoPairFctn2D(nxbins,maxXval,minXval,nybins,maxYval,minYval)
396 fWriteNumAndDen = kTRUE;//change default behaviour
397 Rename("wqsideqlongcf","Q_{side} Q_{long} Weight Correlation Function 2D");
399 /*************************************************************************************/
400 void AliHBTWeightQSideQLongFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
402 //process particles from same events (fills numerator)
403 trackpair = CheckPair(trackpair);
404 partpair = CheckPair(partpair);
405 if ( trackpair && partpair)
407 // Double_t weightPID=1.;
408 Double_t weight = 1.0;
409 if ( ( trackpair->Particle1()->GetPdgCode() == partpair->Particle1()->GetPdgCode()) &&
410 ( trackpair->Particle2()->GetPdgCode() == partpair->Particle2()->GetPdgCode()) )
412 weight=partpair->GetWeight();
414 // Double_t weight=weightHBT*weightPID;
415 fNumerator->Fill(trackpair->GetQSideCMSLC(),trackpair->GetQLongCMSLC(),weight);
418 /****************************************************************/
420 void AliHBTWeightQSideQLongFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
422 //process particles from diff events (fills denominator)
423 trackpair = CheckPair(trackpair);
424 partpair = CheckPair(partpair);
425 if ( trackpair && partpair)
427 fDenominator->Fill(trackpair->GetQSideCMSLC(),trackpair->GetQLongCMSLC());
430 /**************************************************************/
431 TH1* AliHBTWeightQSideQLongFctn::GetResult()
434 return GetRatio(Scale());