1 #include "AliHBTWeightFctn.h"
3 //_________________________________________________________________________
5 // class AliHBTWeightQInvFctn
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)
16 ////////////////////////////////////////////////////////////////////////////////
18 ClassImp( AliHBTWeightQInvFctn )
21 /****************************************************************/
22 AliHBTWeightQInvFctn::AliHBTWeightQInvFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
23 AliHBTTwoPairFctn1D(nbins,maxXval,minXval)
26 fWriteNumAndDen = kTRUE;//change default behaviour
27 Rename("wqinvcf","Q_{inv} Weight Correlation Function");
29 /****************************************************************/
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 /**************************************************************/
63 TH1* AliHBTWeightQInvFctn::GetResult()
65 //returns ratio of numerator and denominator
66 return GetRatio(Scale());
69 /**************************************************************************************/
70 /**************************************************************************************/
71 /**************************************************************************************/
72 /**************************************************************************************/
74 ClassImp(AliHBTWeightQOutFctn)
76 AliHBTWeightQOutFctn::AliHBTWeightQOutFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
77 AliHBTTwoPairFctn1D(nbins,maxXval,minXval)
80 fWriteNumAndDen = kTRUE;//change default behaviour
81 Rename("wqoutcf","Q_{out} Weight Correlation Function");
83 /****************************************************************/
85 void AliHBTWeightQOutFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
87 //process particles from same events (fills numerator)
88 trackpair = CheckPair(trackpair);
89 partpair = CheckPair(partpair);
90 if ( trackpair && partpair)
92 // Double_t weightPID=1.;
93 Double_t weight = 1.0;
94 if ( ( trackpair->Particle1()->GetPdgCode() == partpair->Particle1()->GetPdgCode()) &&
95 ( trackpair->Particle2()->GetPdgCode() == partpair->Particle2()->GetPdgCode()) )
97 weight=partpair->GetWeight();
99 // Double_t weight=weightHBT*weightPID;
100 fNumerator->Fill(trackpair->GetQOutCMSLC(),weight);
103 /****************************************************************/
105 void AliHBTWeightQOutFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
107 //process particles from diff events (fills denominator)
108 trackpair = CheckPair(trackpair);
109 partpair = CheckPair(partpair);
110 if ( trackpair && partpair)
112 fDenominator->Fill(trackpair->GetQOutCMSLC());
115 /**************************************************************/
117 TH1* AliHBTWeightQOutFctn::GetResult()
119 //returns ratio of numerator and denominator
120 return GetRatio(Scale());
123 /*************************************************************************************/
124 /*************************************************************************************/
125 /*************************************************************************************/
127 ClassImp(AliHBTWeightQLongFctn)
128 AliHBTWeightQLongFctn::AliHBTWeightQLongFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
129 AliHBTTwoPairFctn1D(nbins,maxXval,minXval)
132 fWriteNumAndDen = kTRUE;//change default behaviour
133 Rename("wqlongcf","Q_{long} Weight Correlation Function");
135 /****************************************************************/
137 void AliHBTWeightQLongFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
139 //process particles from same events (fills numerator)
140 trackpair = CheckPair(trackpair);
141 partpair = CheckPair(partpair);
142 if ( trackpair && partpair)
144 // Double_t weightPID=1.;
145 Double_t weight = 1.0;
146 if ( ( trackpair->Particle1()->GetPdgCode() == partpair->Particle1()->GetPdgCode()) &&
147 ( trackpair->Particle2()->GetPdgCode() == partpair->Particle2()->GetPdgCode()) )
149 weight=partpair->GetWeight();
151 // Double_t weight=weightHBT*weightPID;
152 fNumerator->Fill(trackpair->GetQLongCMSLC(),weight);
155 /****************************************************************/
157 void AliHBTWeightQLongFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
159 //process particles from diff events (fills denominator)
160 trackpair = CheckPair(trackpair);
161 partpair = CheckPair(partpair);
162 if ( trackpair && partpair)
164 fDenominator->Fill(trackpair->GetQLongCMSLC());
167 /**************************************************************/
168 TH1* AliHBTWeightQLongFctn::GetResult()
170 //returns ratio of numerator and denominator
171 return GetRatio(Scale());
174 /*************************************************************************************/
175 /*************************************************************************************/
176 /*************************************************************************************/
178 ClassImp(AliHBTWeightQSideFctn)
179 /*************************************************************************************/
181 AliHBTWeightQSideFctn::AliHBTWeightQSideFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
182 AliHBTTwoPairFctn1D(nbins,maxXval,minXval)
185 fWriteNumAndDen = kTRUE;//change default behaviour
186 Rename("wqsidecf","Q_{side} Weight Correlation Function");
188 /****************************************************************/
190 void AliHBTWeightQSideFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
192 //process particles from same events (fills numerator)
193 trackpair = CheckPair(trackpair);
194 partpair = CheckPair(partpair);
195 if ( trackpair && partpair)
197 // Double_t weightPID=1.;
198 Double_t weight = 1.0;
199 if ( ( trackpair->Particle1()->GetPdgCode() == partpair->Particle1()->GetPdgCode()) &&
200 ( trackpair->Particle2()->GetPdgCode() == partpair->Particle2()->GetPdgCode()) )
202 weight=partpair->GetWeight();
204 // Double_t weight=weightHBT*weightPID;
205 fNumerator->Fill(trackpair->GetQSideCMSLC(),weight);
208 /****************************************************************/
210 void AliHBTWeightQSideFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
212 //process particles from diff events (fills denominator)
213 trackpair = CheckPair(trackpair);
214 partpair = CheckPair(partpair);
215 if ( trackpair && partpair)
217 fDenominator->Fill(trackpair->GetQSideCMSLC());
220 /**************************************************************/
222 TH1* AliHBTWeightQSideFctn::GetResult()
224 //returns ratio of numerator and denominator
225 return GetRatio(Scale());
228 /*************************************************************************************/
229 /*************************************************************************************/
230 /*************************************************************************************/
232 ClassImp(AliHBTWeightTwoKStarFctn)
233 /*************************************************************************************/
234 AliHBTWeightTwoKStarFctn::AliHBTWeightTwoKStarFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
235 AliHBTTwoPairFctn1D(nbins,maxXval,minXval)
238 fWriteNumAndDen = kTRUE;//change default behaviour
239 Rename("wtwokstarcf","2*K^{*} Weight Correlation Function");
241 /****************************************************************/
243 void AliHBTWeightTwoKStarFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
245 //process particles from same events (fills numerator)
246 trackpair = CheckPair(trackpair);
247 partpair = CheckPair(partpair);
248 if ( trackpair && partpair)
250 // Double_t weightPID=1.;
251 Double_t weight = 1.0;
252 if ( ( trackpair->Particle1()->GetPdgCode() == partpair->Particle1()->GetPdgCode()) &&
253 ( trackpair->Particle2()->GetPdgCode() == partpair->Particle2()->GetPdgCode()) )
255 weight=partpair->GetWeight();
257 // Double_t weight=weightHBT*weightPID;
258 fNumerator->Fill(2.0*(trackpair->GetKStar()),weight);
261 /****************************************************************/
263 void AliHBTWeightTwoKStarFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
265 //process particles from diff events (fills denominator)
266 trackpair = CheckPair(trackpair);
267 partpair = CheckPair(partpair);
268 if ( trackpair && partpair)
270 fDenominator->Fill(2.0*(trackpair->GetKStar()));
273 /**************************************************************/
274 TH1* AliHBTWeightTwoKStarFctn::GetResult()
277 //returns ratio of numerator and denominator
278 return GetRatio(Scale());
281 /*************************************************************************************/
282 /*************************************************************************************/
283 /*************************************************************************************/
285 ClassImp(AliHBTWeightQOutQSideFctn)
286 /*************************************************************************************/
288 AliHBTWeightQOutQSideFctn::AliHBTWeightQOutQSideFctn(Int_t nxbins, Double_t maxXval, Double_t minXval,
289 Int_t nybins, Double_t maxYval, Double_t minYval):
290 AliHBTTwoPairFctn2D(nxbins,maxXval,minXval,nybins,maxYval,minYval)
293 fWriteNumAndDen = kTRUE;//change default behaviour
294 Rename("wqoutqsidecf","Q_{out} Q_{side} Weight Correlation Function 2D");
296 /*************************************************************************************/
298 void AliHBTWeightQOutQSideFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
300 //process particles from same events (fills numerator)
301 trackpair = CheckPair(trackpair);
302 partpair = CheckPair(partpair);
303 if ( trackpair && partpair)
305 // Double_t weightPID=1.;
306 Double_t weight = 1.0;
307 if ( ( trackpair->Particle1()->GetPdgCode() == partpair->Particle1()->GetPdgCode()) &&
308 ( trackpair->Particle2()->GetPdgCode() == partpair->Particle2()->GetPdgCode()) )
310 weight=partpair->GetWeight();
312 // Double_t weight=weightHBT*weightPID;
313 fNumerator->Fill(trackpair->GetQOutCMSLC(),trackpair->GetQSideCMSLC(),weight);
316 /****************************************************************/
318 void AliHBTWeightQOutQSideFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
320 //process particles from diff events (fills denominator)
321 trackpair = CheckPair(trackpair);
322 partpair = CheckPair(partpair);
323 if ( trackpair && partpair)
325 fDenominator->Fill(trackpair->GetQOutCMSLC(),trackpair->GetQSideCMSLC());
328 /**************************************************************/
330 TH1* AliHBTWeightQOutQSideFctn::GetResult()
333 return GetRatio(Scale());
336 /*************************************************************************************/
337 /*************************************************************************************/
338 /*************************************************************************************/
340 ClassImp(AliHBTWeightQOutQLongFctn)
341 /*************************************************************************************/
343 AliHBTWeightQOutQLongFctn::AliHBTWeightQOutQLongFctn(Int_t nxbins, Double_t maxXval, Double_t minXval,
344 Int_t nybins, Double_t maxYval, Double_t minYval):
345 AliHBTTwoPairFctn2D(nxbins,maxXval,minXval,nybins,maxYval,minYval)
348 fWriteNumAndDen = kTRUE;//change default behaviour
349 Rename("wqoutqlongcf","Q_{out} Q_{long} Weight Correlation Function 2D");
351 /*************************************************************************************/
353 void AliHBTWeightQOutQLongFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
355 //process particles from same events (fills numerator)
356 trackpair = CheckPair(trackpair);
357 partpair = CheckPair(partpair);
358 if ( trackpair && partpair)
360 // Double_t weightPID=1.;
361 Double_t weight = 1.0;
362 if ( ( trackpair->Particle1()->GetPdgCode() == partpair->Particle1()->GetPdgCode()) &&
363 ( trackpair->Particle2()->GetPdgCode() == partpair->Particle2()->GetPdgCode()) )
365 weight=partpair->GetWeight();
367 // Double_t weight=weightHBT*weightPID;
368 fNumerator->Fill(trackpair->GetQOutCMSLC(),trackpair->GetQLongCMSLC(),weight);
371 /****************************************************************/
373 void AliHBTWeightQOutQLongFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
375 //process particles from diff events (fills denominator)
376 trackpair = CheckPair(trackpair);
377 partpair = CheckPair(partpair);
378 if ( trackpair && partpair)
380 fDenominator->Fill(trackpair->GetQOutCMSLC(),trackpair->GetQLongCMSLC());
383 /**************************************************************/
385 TH1* AliHBTWeightQOutQLongFctn::GetResult()
388 return GetRatio(Scale());
391 /*************************************************************************************/
392 /*************************************************************************************/
393 /*************************************************************************************/
395 ClassImp(AliHBTWeightQSideQLongFctn)
396 /*************************************************************************************/
398 AliHBTWeightQSideQLongFctn::AliHBTWeightQSideQLongFctn(Int_t nxbins, Double_t maxXval, Double_t minXval,
399 Int_t nybins, Double_t maxYval, Double_t minYval):
400 AliHBTTwoPairFctn2D(nxbins,maxXval,minXval,nybins,maxYval,minYval)
403 fWriteNumAndDen = kTRUE;//change default behaviour
404 Rename("wqsideqlongcf","Q_{side} Q_{long} Weight Correlation Function 2D");
406 /*************************************************************************************/
408 void AliHBTWeightQSideQLongFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
410 //process particles from same events (fills numerator)
411 trackpair = CheckPair(trackpair);
412 partpair = CheckPair(partpair);
413 if ( trackpair && partpair)
415 // Double_t weightPID=1.;
416 Double_t weight = 1.0;
417 if ( ( trackpair->Particle1()->GetPdgCode() == partpair->Particle1()->GetPdgCode()) &&
418 ( trackpair->Particle2()->GetPdgCode() == partpair->Particle2()->GetPdgCode()) )
420 weight=partpair->GetWeight();
422 // Double_t weight=weightHBT*weightPID;
423 fNumerator->Fill(trackpair->GetQSideCMSLC(),trackpair->GetQLongCMSLC(),weight);
426 /****************************************************************/
428 void AliHBTWeightQSideQLongFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
430 //process particles from diff events (fills denominator)
431 trackpair = CheckPair(trackpair);
432 partpair = CheckPair(partpair);
433 if ( trackpair && partpair)
435 fDenominator->Fill(trackpair->GetQSideCMSLC(),trackpair->GetQLongCMSLC());
438 /**************************************************************/
440 TH1* AliHBTWeightQSideQLongFctn::GetResult()
443 return GetRatio(Scale());