Cuts in 2 pair functions only on reconstructed pair
[u/mrichter/AliRoot.git] / HBTAN / AliHBTWeightFctn.cxx
CommitLineData
dd82cadc 1#include "AliHBTWeightFctn.h"
4fdf4eb3 2/* $Id$ */
9714a029 3//_________________________________________________________________________
4//
1ceee0b9 5// class AliHBTWeightQInvFctn
9714a029 6//
1ceee0b9 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//
16////////////////////////////////////////////////////////////////////////////////
7f92929e 17
dd82cadc 18ClassImp( AliHBTWeightQInvFctn )
88cb7938 19
20
7f92929e 21/****************************************************************/
dd82cadc 22AliHBTWeightQInvFctn::AliHBTWeightQInvFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
9714a029 23 AliHBTTwoPairFctn1D(nbins,maxXval,minXval)
7f92929e 24{
2f8eea63 25//ctor
9714a029 26 fWriteNumAndDen = kTRUE;//change default behaviour
27 Rename("wqinvcf","Q_{inv} Weight Correlation Function");
7f92929e 28}
29/****************************************************************/
1ceee0b9 30
dd82cadc 31void AliHBTWeightQInvFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
7f92929e 32{
9714a029 33 //process particles from same events (fills numerator)
7f92929e 34 trackpair = CheckPair(trackpair);
55d46048 35// partpair = CheckPair(partpair);
7f92929e 36 if ( trackpair && partpair)
37 {
dd82cadc 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()) )
42 {
43 weight=partpair->GetWeight();
44 }
45// Double_t weight=weightHBT*weightPID;
46 fNumerator->Fill(trackpair->GetQInv(),weight);
7f92929e 47 }
7f92929e 48}
7f92929e 49/****************************************************************/
2f8eea63 50
dd82cadc 51void AliHBTWeightQInvFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
7f92929e 52{
4fdf4eb3 53 // Fills the denominator using mixed pairs
7f92929e 54 trackpair = CheckPair(trackpair);
55d46048 55// partpair = CheckPair(partpair);
7f92929e 56 if ( trackpair && partpair)
57 {
58 fDenominator->Fill(trackpair->GetQInv());
59 }
60}
61/**************************************************************/
1ceee0b9 62
dd82cadc 63TH1* AliHBTWeightQInvFctn::GetResult()
7f92929e 64{
65//returns ratio of numerator and denominator
fc13079c 66 //returns the scaled ratio
67 delete fRatio;
68 fRatio = GetRatio(Scale());
69 return fRatio;
7f92929e 70}
71
b3fb9814 72/**************************************************************************************/
73/**************************************************************************************/
74/**************************************************************************************/
75/**************************************************************************************/
76
dd82cadc 77ClassImp(AliHBTWeightQOutFctn)
9714a029 78
dd82cadc 79AliHBTWeightQOutFctn::AliHBTWeightQOutFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
9714a029 80 AliHBTTwoPairFctn1D(nbins,maxXval,minXval)
81{
82//ctor
83 fWriteNumAndDen = kTRUE;//change default behaviour
84 Rename("wqoutcf","Q_{out} Weight Correlation Function");
85}
b3fb9814 86/****************************************************************/
1ceee0b9 87
dd82cadc 88void AliHBTWeightQOutFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
b3fb9814 89{
9714a029 90 //process particles from same events (fills numerator)
b3fb9814 91 trackpair = CheckPair(trackpair);
55d46048 92// partpair = CheckPair(partpair);
b3fb9814 93 if ( trackpair && partpair)
94 {
dd82cadc 95// Double_t weightPID=1.;
96 Double_t weight = 1.0;
97 if ( ( trackpair->Particle1()->GetPdgCode() == partpair->Particle1()->GetPdgCode()) &&
98 ( trackpair->Particle2()->GetPdgCode() == partpair->Particle2()->GetPdgCode()) )
99 {
100 weight=partpair->GetWeight();
101 }
102// Double_t weight=weightHBT*weightPID;
78d7c6d3 103 fNumerator->Fill(trackpair->GetQOutLCMS(),weight);
b3fb9814 104 }
105}
106/****************************************************************/
107
dd82cadc 108void AliHBTWeightQOutFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
b3fb9814 109{
9714a029 110 //process particles from diff events (fills denominator)
b3fb9814 111 trackpair = CheckPair(trackpair);
55d46048 112// partpair = CheckPair(partpair);
b3fb9814 113 if ( trackpair && partpair)
114 {
78d7c6d3 115 fDenominator->Fill(trackpair->GetQOutLCMS());
b3fb9814 116 }
117}
118/**************************************************************/
1ceee0b9 119
dd82cadc 120TH1* AliHBTWeightQOutFctn::GetResult()
b3fb9814 121{
fc13079c 122 //returns the scaled ratio
123 delete fRatio;
124 fRatio = GetRatio(Scale());
125 return fRatio;
b3fb9814 126}
127
128/*************************************************************************************/
129/*************************************************************************************/
130/*************************************************************************************/
131
dd82cadc 132ClassImp(AliHBTWeightQLongFctn)
133AliHBTWeightQLongFctn::AliHBTWeightQLongFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
9714a029 134 AliHBTTwoPairFctn1D(nbins,maxXval,minXval)
135{
136//ctor
137 fWriteNumAndDen = kTRUE;//change default behaviour
138 Rename("wqlongcf","Q_{long} Weight Correlation Function");
139}
b3fb9814 140/****************************************************************/
1ceee0b9 141
dd82cadc 142void AliHBTWeightQLongFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
b3fb9814 143{
1ceee0b9 144 //process particles from same events (fills numerator)
b3fb9814 145 trackpair = CheckPair(trackpair);
55d46048 146// partpair = CheckPair(partpair);
b3fb9814 147 if ( trackpair && partpair)
148 {
dd82cadc 149// Double_t weightPID=1.;
150 Double_t weight = 1.0;
151 if ( ( trackpair->Particle1()->GetPdgCode() == partpair->Particle1()->GetPdgCode()) &&
152 ( trackpair->Particle2()->GetPdgCode() == partpair->Particle2()->GetPdgCode()) )
153 {
154 weight=partpair->GetWeight();
155 }
156// Double_t weight=weightHBT*weightPID;
78d7c6d3 157 fNumerator->Fill(trackpair->GetQLongLCMS(),weight);
b3fb9814 158 }
159}
160/****************************************************************/
161
dd82cadc 162void AliHBTWeightQLongFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
b3fb9814 163{
9714a029 164 //process particles from diff events (fills denominator)
b3fb9814 165 trackpair = CheckPair(trackpair);
55d46048 166// partpair = CheckPair(partpair);
b3fb9814 167 if ( trackpair && partpair)
168 {
78d7c6d3 169 fDenominator->Fill(trackpair->GetQLongLCMS());
b3fb9814 170 }
171}
172/**************************************************************/
1ceee0b9 173TH1* AliHBTWeightQLongFctn::GetResult()
b3fb9814 174{
fc13079c 175 //returns the scaled ratio
176 delete fRatio;
177 fRatio = GetRatio(Scale());
178 return fRatio;
b3fb9814 179}
180
181/*************************************************************************************/
182/*************************************************************************************/
183/*************************************************************************************/
184
dd82cadc 185ClassImp(AliHBTWeightQSideFctn)
9714a029 186/*************************************************************************************/
187
dd82cadc 188AliHBTWeightQSideFctn::AliHBTWeightQSideFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
9714a029 189 AliHBTTwoPairFctn1D(nbins,maxXval,minXval)
190{
191//ctor
192 fWriteNumAndDen = kTRUE;//change default behaviour
193 Rename("wqsidecf","Q_{side} Weight Correlation Function");
194}
b3fb9814 195/****************************************************************/
1ceee0b9 196
dd82cadc 197void AliHBTWeightQSideFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
b3fb9814 198{
9714a029 199 //process particles from same events (fills numerator)
b3fb9814 200 trackpair = CheckPair(trackpair);
55d46048 201// partpair = CheckPair(partpair);
b3fb9814 202 if ( trackpair && partpair)
203 {
dd82cadc 204// Double_t weightPID=1.;
205 Double_t weight = 1.0;
206 if ( ( trackpair->Particle1()->GetPdgCode() == partpair->Particle1()->GetPdgCode()) &&
207 ( trackpair->Particle2()->GetPdgCode() == partpair->Particle2()->GetPdgCode()) )
208 {
209 weight=partpair->GetWeight();
210 }
211// Double_t weight=weightHBT*weightPID;
78d7c6d3 212 fNumerator->Fill(trackpair->GetQSideLCMS(),weight);
b3fb9814 213 }
214}
215/****************************************************************/
216
dd82cadc 217void AliHBTWeightQSideFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
b3fb9814 218{
9714a029 219 //process particles from diff events (fills denominator)
b3fb9814 220 trackpair = CheckPair(trackpair);
55d46048 221// partpair = CheckPair(partpair);
b3fb9814 222 if ( trackpair && partpair)
223 {
78d7c6d3 224 fDenominator->Fill(trackpair->GetQSideLCMS());
b3fb9814 225 }
226}
227/**************************************************************/
1ceee0b9 228
dd82cadc 229TH1* AliHBTWeightQSideFctn::GetResult()
b3fb9814 230{
fc13079c 231 //returns the scaled ratio
232 delete fRatio;
233 fRatio = GetRatio(Scale());
234 return fRatio;
b3fb9814 235}
236
237/*************************************************************************************/
238/*************************************************************************************/
9714a029 239/*************************************************************************************/
b3fb9814 240
dd82cadc 241ClassImp(AliHBTWeightTwoKStarFctn)
9714a029 242/*************************************************************************************/
dd82cadc 243AliHBTWeightTwoKStarFctn::AliHBTWeightTwoKStarFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
9714a029 244 AliHBTTwoPairFctn1D(nbins,maxXval,minXval)
245{
246//ctor
247 fWriteNumAndDen = kTRUE;//change default behaviour
248 Rename("wtwokstarcf","2*K^{*} Weight Correlation Function");
249}
b3fb9814 250/****************************************************************/
1ceee0b9 251
dd82cadc 252void AliHBTWeightTwoKStarFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
b3fb9814 253{
9714a029 254 //process particles from same events (fills numerator)
b3fb9814 255 trackpair = CheckPair(trackpair);
55d46048 256// partpair = CheckPair(partpair);
b3fb9814 257 if ( trackpair && partpair)
258 {
dd82cadc 259// Double_t weightPID=1.;
260 Double_t weight = 1.0;
261 if ( ( trackpair->Particle1()->GetPdgCode() == partpair->Particle1()->GetPdgCode()) &&
262 ( trackpair->Particle2()->GetPdgCode() == partpair->Particle2()->GetPdgCode()) )
263 {
264 weight=partpair->GetWeight();
265 }
266// Double_t weight=weightHBT*weightPID;
267 fNumerator->Fill(2.0*(trackpair->GetKStar()),weight);
b3fb9814 268 }
269}
270/****************************************************************/
271
dd82cadc 272void AliHBTWeightTwoKStarFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
b3fb9814 273{
9714a029 274 //process particles from diff events (fills denominator)
b3fb9814 275 trackpair = CheckPair(trackpair);
55d46048 276// partpair = CheckPair(partpair);
b3fb9814 277 if ( trackpair && partpair)
278 {
279 fDenominator->Fill(2.0*(trackpair->GetKStar()));
280 }
281}
282/**************************************************************/
dd82cadc 283TH1* AliHBTWeightTwoKStarFctn::GetResult()
b3fb9814 284
285{
fc13079c 286 //returns the scaled ratio
287 delete fRatio;
288 fRatio = GetRatio(Scale());
289 return fRatio;
b3fb9814 290}
291
292/*************************************************************************************/
9714a029 293/*************************************************************************************/
294/*************************************************************************************/
295
dd82cadc 296ClassImp(AliHBTWeightQOutQSideFctn)
9714a029 297/*************************************************************************************/
298
dd82cadc 299AliHBTWeightQOutQSideFctn::AliHBTWeightQOutQSideFctn(Int_t nxbins, Double_t maxXval, Double_t minXval,
9714a029 300 Int_t nybins, Double_t maxYval, Double_t minYval):
301 AliHBTTwoPairFctn2D(nxbins,maxXval,minXval,nybins,maxYval,minYval)
302{
303 //ctor
304 fWriteNumAndDen = kTRUE;//change default behaviour
305 Rename("wqoutqsidecf","Q_{out} Q_{side} Weight Correlation Function 2D");
306}
307/*************************************************************************************/
1ceee0b9 308
dd82cadc 309void AliHBTWeightQOutQSideFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
9714a029 310{
311 //process particles from same events (fills numerator)
312 trackpair = CheckPair(trackpair);
55d46048 313// partpair = CheckPair(partpair);
9714a029 314 if ( trackpair && partpair)
315 {
dd82cadc 316// Double_t weightPID=1.;
317 Double_t weight = 1.0;
318 if ( ( trackpair->Particle1()->GetPdgCode() == partpair->Particle1()->GetPdgCode()) &&
319 ( trackpair->Particle2()->GetPdgCode() == partpair->Particle2()->GetPdgCode()) )
320 {
321 weight=partpair->GetWeight();
322 }
323// Double_t weight=weightHBT*weightPID;
78d7c6d3 324 fNumerator->Fill(trackpair->GetQOutLCMS(),trackpair->GetQSideLCMS(),weight);
9714a029 325 }
326}
327/****************************************************************/
328
dd82cadc 329void AliHBTWeightQOutQSideFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
9714a029 330{
331 //process particles from diff events (fills denominator)
332 trackpair = CheckPair(trackpair);
55d46048 333// partpair = CheckPair(partpair);
9714a029 334 if ( trackpair && partpair)
335 {
78d7c6d3 336 fDenominator->Fill(trackpair->GetQOutLCMS(),trackpair->GetQSideLCMS());
9714a029 337 }
338}
339/**************************************************************/
1ceee0b9 340
dd82cadc 341TH1* AliHBTWeightQOutQSideFctn::GetResult()
9714a029 342{
fc13079c 343 //returns the scaled ratio
344 delete fRatio;
345 fRatio = GetRatio(Scale());
346 return fRatio;
9714a029 347}
348
349/*************************************************************************************/
350/*************************************************************************************/
351/*************************************************************************************/
352
dd82cadc 353ClassImp(AliHBTWeightQOutQLongFctn)
9714a029 354/*************************************************************************************/
355
dd82cadc 356AliHBTWeightQOutQLongFctn::AliHBTWeightQOutQLongFctn(Int_t nxbins, Double_t maxXval, Double_t minXval,
9714a029 357 Int_t nybins, Double_t maxYval, Double_t minYval):
358 AliHBTTwoPairFctn2D(nxbins,maxXval,minXval,nybins,maxYval,minYval)
359{
360 //ctor
361 fWriteNumAndDen = kTRUE;//change default behaviour
362 Rename("wqoutqlongcf","Q_{out} Q_{long} Weight Correlation Function 2D");
363}
364/*************************************************************************************/
1ceee0b9 365
dd82cadc 366void AliHBTWeightQOutQLongFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
9714a029 367{
368 //process particles from same events (fills numerator)
369 trackpair = CheckPair(trackpair);
55d46048 370// partpair = CheckPair(partpair);
9714a029 371 if ( trackpair && partpair)
372 {
dd82cadc 373// Double_t weightPID=1.;
374 Double_t weight = 1.0;
375 if ( ( trackpair->Particle1()->GetPdgCode() == partpair->Particle1()->GetPdgCode()) &&
376 ( trackpair->Particle2()->GetPdgCode() == partpair->Particle2()->GetPdgCode()) )
377 {
378 weight=partpair->GetWeight();
379 }
380// Double_t weight=weightHBT*weightPID;
78d7c6d3 381 fNumerator->Fill(trackpair->GetQOutLCMS(),trackpair->GetQLongLCMS(),weight);
9714a029 382 }
383}
384/****************************************************************/
385
dd82cadc 386void AliHBTWeightQOutQLongFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
9714a029 387{
388 //process particles from diff events (fills denominator)
389 trackpair = CheckPair(trackpair);
55d46048 390// partpair = CheckPair(partpair);
9714a029 391 if ( trackpair && partpair)
392 {
78d7c6d3 393 fDenominator->Fill(trackpair->GetQOutLCMS(),trackpair->GetQLongLCMS());
9714a029 394 }
395}
396/**************************************************************/
397
dd82cadc 398TH1* AliHBTWeightQOutQLongFctn::GetResult()
9714a029 399{
fc13079c 400 //returns the scaled ratio
401 delete fRatio;
402 fRatio = GetRatio(Scale());
403 return fRatio;
9714a029 404}
405
406/*************************************************************************************/
407/*************************************************************************************/
408/*************************************************************************************/
b3fb9814 409
dd82cadc 410ClassImp(AliHBTWeightQSideQLongFctn)
9714a029 411/*************************************************************************************/
412
dd82cadc 413AliHBTWeightQSideQLongFctn::AliHBTWeightQSideQLongFctn(Int_t nxbins, Double_t maxXval, Double_t minXval,
9714a029 414 Int_t nybins, Double_t maxYval, Double_t minYval):
415 AliHBTTwoPairFctn2D(nxbins,maxXval,minXval,nybins,maxYval,minYval)
416{
417 //ctor
418 fWriteNumAndDen = kTRUE;//change default behaviour
419 Rename("wqsideqlongcf","Q_{side} Q_{long} Weight Correlation Function 2D");
420}
421/*************************************************************************************/
1ceee0b9 422
dd82cadc 423void AliHBTWeightQSideQLongFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
9714a029 424{
425 //process particles from same events (fills numerator)
426 trackpair = CheckPair(trackpair);
55d46048 427// partpair = CheckPair(partpair);
9714a029 428 if ( trackpair && partpair)
429 {
dd82cadc 430// Double_t weightPID=1.;
431 Double_t weight = 1.0;
432 if ( ( trackpair->Particle1()->GetPdgCode() == partpair->Particle1()->GetPdgCode()) &&
433 ( trackpair->Particle2()->GetPdgCode() == partpair->Particle2()->GetPdgCode()) )
434 {
435 weight=partpair->GetWeight();
436 }
437// Double_t weight=weightHBT*weightPID;
78d7c6d3 438 fNumerator->Fill(trackpair->GetQSideLCMS(),trackpair->GetQLongLCMS(),weight);
9714a029 439 }
440}
441/****************************************************************/
442
dd82cadc 443void AliHBTWeightQSideQLongFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
9714a029 444{
445 //process particles from diff events (fills denominator)
446 trackpair = CheckPair(trackpair);
55d46048 447// partpair = CheckPair(partpair);
9714a029 448 if ( trackpair && partpair)
449 {
78d7c6d3 450 fDenominator->Fill(trackpair->GetQSideLCMS(),trackpair->GetQLongLCMS());
9714a029 451 }
452}
453/**************************************************************/
1ceee0b9 454
dd82cadc 455TH1* AliHBTWeightQSideQLongFctn::GetResult()
9714a029 456{
fc13079c 457 //returns the scaled ratio
458 delete fRatio;
459 fRatio = GetRatio(Scale());
460 return fRatio;
9714a029 461}
01118cee 462/*************************************************************/
463/*************************************************************/
464/*************************************************************/
465
466ClassImp(AliHBTWeightQOutSQideQLongFctn)
467
468AliHBTWeightQOutSQideQLongFctn::AliHBTWeightQOutSQideQLongFctn(Int_t nXbins, Double_t maxXval, Double_t minXval,
469 Int_t nYbins, Double_t maxYval, Double_t minYval,
470 Int_t nZbins, Double_t maxZval, Double_t minZval):
471 AliHBTTwoPairFctn3D(nXbins,maxXval,minXval,nYbins,maxYval,minYval,nZbins,maxZval,minZval)
472{
473 //ctor
474 fWriteNumAndDen = kTRUE;//change default behaviour
475 Rename("wqoslcf","Q_{out}-Q_{side}-Q_{long} Weight Correlation Fctn");
476}
477/*************************************************************/
478
479void AliHBTWeightQOutSQideQLongFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
480{
481//Fills numerator
482 //process particles from same events (fills numerator)
483 trackpair = CheckPair(trackpair);
55d46048 484// partpair = CheckPair(partpair);
01118cee 485 if ( trackpair && partpair)
486 {
487// Double_t weightPID=1.;
488 Double_t weight = 1.0;
489 if ( ( trackpair->Particle1()->GetPdgCode() == partpair->Particle1()->GetPdgCode()) &&
490 ( trackpair->Particle2()->GetPdgCode() == partpair->Particle2()->GetPdgCode()) )
491 {
492 weight=partpair->GetWeight();//here we take weight from the particle pair
493 }
494// Double_t weight=weightHBT*weightPID;
78d7c6d3 495 Double_t out = TMath::Abs(trackpair->GetQOutLCMS());
496 Double_t side = TMath::Abs(trackpair->GetQSideLCMS());
497 Double_t lon = TMath::Abs(trackpair->GetQLongLCMS());
9202ec89 498
01118cee 499 fNumerator->Fill(out,side,lon,weight);//here we fill in q's corresponding to track pair
500 //weight calculated for the simulated one
501 }
502}
503/*************************************************************/
504
505void AliHBTWeightQOutSQideQLongFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
506{
507 //process particles from diff events (fills denominator)
508 trackpair = CheckPair(trackpair);
55d46048 509// partpair = CheckPair(partpair);
01118cee 510 if ( trackpair && partpair)
511 {
78d7c6d3 512 Double_t out = TMath::Abs(trackpair->GetQOutLCMS());
513 Double_t side = TMath::Abs(trackpair->GetQSideLCMS());
514 Double_t lon = TMath::Abs(trackpair->GetQLongLCMS());
9202ec89 515
516 fDenominator->Fill(out,side,lon);
01118cee 517 }
518}
519/*************************************************************/
520
521TH1* AliHBTWeightQOutSQideQLongFctn::GetResult()
522{
523 //returns the scaled ratio
524 delete fRatio;
525 fRatio = GetRatio(Scale());
526 return fRatio;
527}