Temporary: do not link AliHLTMUON.so
[u/mrichter/AliRoot.git] / ANALYSIS / AliAODPair.cxx
CommitLineData
78d7c6d3 1#include "AliAODPair.h"
2//_________________________________________________________________________
3///////////////////////////////////////////////////////////////////////////
4//
5// class AliAODPair
6//
7// class implements pair of particles and taking care of caluclation (almost)
8// all of pair properties (Qinv, InvMass,...)
9//
c7ffd78f 10// more info: http://aliweb.cern.ch/people/skowron/analyzer/index.html
78d7c6d3 11//
12////////////////////////////////////////////////////////////////////////////
13
14#include "AliVAODParticle.h"
15#include "AliTrackPoints.h"
78d7c6d3 16ClassImp(AliAODPair)
17
18/************************************************************************/
19AliAODPair::AliAODPair(Bool_t rev):
20 fPart1(0x0),
21 fPart2(0x0),
22 fSwappedPair(0x0),
23 fQSideLCMS(0.0),
24 fQSideLCMSNotCalc(kTRUE),
25 fQOutLCMS(0.0),
26 fQOutLCMSNotCalc(kTRUE),
27 fQLongLCMS(0.0),
28 fQLongLCMSNotCalc(kTRUE),
f422a7da 29 fQtLCMS(0.0),
30 fQtLCMSNotCalc(kTRUE),
fb629e2d 31 fQt(0.0),
32 fQtNotCalc(kTRUE),
78d7c6d3 33 fQInv(0.0),
34 fQInvNotCalc(kTRUE),
35 fInvMass(0.0),
36 fInvMassNotCalc(kTRUE),
37 fKt(0.0),
38 fKtNotCalc(kTRUE),
39 fKStar(0.0),
40 fKStarNotCalc(kTRUE),
a40c0433 41 fKStarOut(0.0),
42 fKStarSide(0.0),
43 fKStarLong(0.0),
44 fKStarCompNotCalc(kTRUE),
78d7c6d3 45 fPInv(0.0),
46 fQSide(0.0),
47 fOut(0.0),
48 fQLong(0.0),
49 fMt(0.0),
50 fMtNotCalc(kTRUE),
51 fInvMassSqr(0.0),
52 fMassSqrNotCalc(kTRUE),
53 fQInvL(0.0),
54 fQInvLNotCalc(kTRUE),
55 fAvarageDistance(0.0),
56 fAvarageDistanceNotCalc(kTRUE),
57 fPxSum(0.0),
58 fPySum(0.0),
59 fPzSum(0.0),
60 fESum(0.0),
61 fSumsNotCalc(kTRUE),
62 fPxDiff(0.0),
63 fPyDiff(0.0),
64 fPzDiff(0.0),
65 fEDiff(0.0),
66 fDiffsNotCalc(kTRUE),
67 fGammaLCMS(0.0),
68 fGammaLCMSNotCalc(kTRUE),
69 fChanged(kTRUE)
70 {
71//value of rev defines if it is Swapped
72//if you pass kTRUE swpaped pair will NOT be created
73//though you wont be able to get the swaped pair from this pair
74
75 if(!rev) fSwappedPair = new AliAODPair(kTRUE); //if false create swaped pair
76
77 }
78/************************************************************************/
79
80AliAODPair::AliAODPair(AliVAODParticle* part1, AliVAODParticle* part2, Bool_t rev):
81 fPart1(part1),
82 fPart2(part2),
83 fSwappedPair(0x0),
84 fQSideLCMS(0.0),
85 fQSideLCMSNotCalc(kTRUE),
86 fQOutLCMS(0.0),
87 fQOutLCMSNotCalc(kTRUE),
88 fQLongLCMS(0.0),
89 fQLongLCMSNotCalc(kTRUE),
f422a7da 90 fQtLCMS(0.0),
91 fQtLCMSNotCalc(kTRUE),
af250cbf 92 fQt(0.0),
93 fQtNotCalc(kTRUE),
78d7c6d3 94 fQInv(0.0),
95 fQInvNotCalc(kTRUE),
96 fInvMass(0.0),
97 fInvMassNotCalc(kTRUE),
98 fKt(0.0),
99 fKtNotCalc(kTRUE),
100 fKStar(0.0),
101 fKStarNotCalc(kTRUE),
a40c0433 102 fKStarOut(0.0),
103 fKStarSide(0.0),
104 fKStarLong(0.0),
105 fKStarCompNotCalc(kTRUE),
78d7c6d3 106 fPInv(0.0),
107 fQSide(0.0),
108 fOut(0.0),
109 fQLong(0.0),
110 fMt(0.0),
111 fMtNotCalc(kTRUE),
112 fInvMassSqr(0.0),
113 fMassSqrNotCalc(kTRUE),
114 fQInvL(0.0),
115 fQInvLNotCalc(kTRUE),
116 fAvarageDistance(0.0),
117 fAvarageDistanceNotCalc(kTRUE),
118 fPxSum(0.0),
119 fPySum(0.0),
120 fPzSum(0.0),
121 fESum(0.0),
122 fSumsNotCalc(kTRUE),
123 fPxDiff(0.0),
124 fPyDiff(0.0),
125 fPzDiff(0.0),
126 fEDiff(0.0),
127 fDiffsNotCalc(kTRUE),
128 fGammaLCMS(0.0),
129 fGammaLCMSNotCalc(kTRUE),
130 fChanged(kTRUE)
131 {
132//value of rev defines if it is Swapped
133//if you pass kTRUE swpaped pair will NOT be created
134//though you wont be able to get the swaped pair from this pair
135
136 if(!rev) fSwappedPair = new AliAODPair(part2,part1,kTRUE); //if false create swaped pair
137
138 }
139/************************************************************************/
140AliAODPair::AliAODPair(const AliAODPair& in):
141 TObject(in),
142 fPart1(0x0),
143 fPart2(0x0),
144 fSwappedPair(0x0),
145 fQSideLCMS(0.0),
146 fQSideLCMSNotCalc(kTRUE),
147 fQOutLCMS(0.0),
148 fQOutLCMSNotCalc(kTRUE),
149 fQLongLCMS(0.0),
150 fQLongLCMSNotCalc(kTRUE),
f422a7da 151 fQtLCMS(0.0),
152 fQtLCMSNotCalc(kTRUE),
af250cbf 153 fQt(0.0),
154 fQtNotCalc(kTRUE),
78d7c6d3 155 fQInv(0.0),
156 fQInvNotCalc(kTRUE),
157 fInvMass(0.0),
158 fInvMassNotCalc(kTRUE),
159 fKt(0.0),
160 fKtNotCalc(kTRUE),
161 fKStar(0.0),
162 fKStarNotCalc(kTRUE),
a40c0433 163 fKStarOut(0.0),
164 fKStarSide(0.0),
165 fKStarLong(0.0),
166 fKStarCompNotCalc(kTRUE),
78d7c6d3 167 fPInv(0.0),
168 fQSide(0.0),
169 fOut(0.0),
170 fQLong(0.0),
171 fMt(0.0),
172 fMtNotCalc(kTRUE),
173 fInvMassSqr(0.0),
174 fMassSqrNotCalc(kTRUE),
175 fQInvL(0.0),
176 fQInvLNotCalc(kTRUE),
177 fAvarageDistance(0.0),
178 fAvarageDistanceNotCalc(kTRUE),
179 fPxSum(0.0),
180 fPySum(0.0),
181 fPzSum(0.0),
182 fESum(0.0),
183 fSumsNotCalc(kTRUE),
184 fPxDiff(0.0),
185 fPyDiff(0.0),
186 fPzDiff(0.0),
187 fEDiff(0.0),
188 fDiffsNotCalc(kTRUE),
189 fGammaLCMS(0.0),
190 fGammaLCMSNotCalc(kTRUE),
191 fChanged(kTRUE)
192{
193 //cpy constructor
194 in.Copy(*this);
195}
196/************************************************************************/
197
198AliAODPair& AliAODPair::operator=(const AliAODPair& in)
199{
200 //Assigment operator
201 in.Copy(*this);
202 return *this;
203}
204/************************************************************************/
205
206Double_t AliAODPair::GetInvMass()
207{
208//Returns qinv value for a pair
209 if(fInvMassNotCalc)
210 {
211 CalculateInvMassSqr(); //method is inline so we not waste th time for jumping into method
212
213 if(fInvMassSqr<0) fInvMass = TMath::Sqrt(-fInvMassSqr);
214 else fInvMass = TMath::Sqrt(fInvMassSqr);
215
216 fInvMassNotCalc = kFALSE;
217 }
218 return fInvMass;
219}
220/************************************************************************/
221
222Double_t AliAODPair::GetQSideLCMS()
223{
224//return Q Side in Central Of Mass System in Longitudialy Comoving Frame
225
226 if (fQSideLCMSNotCalc)
227 {
228 fQSideLCMS = (fPart1->Px()*fPart2->Py()-fPart2->Px()*fPart1->Py())/GetKt();
229 fQSideLCMSNotCalc = kFALSE;
230 }
231 return fQSideLCMS;
232}
233/************************************************************************/
234
235Double_t AliAODPair::GetQOutLCMS()
236{
237 //caculates Qout in Center Of Mass Longitudionally Co-Moving
238 if(fQOutLCMSNotCalc)
239 {
240 CalculateSums();
241 CalculateDiffs();
242
243 if (fPart1->Mass() != fPart2->Mass())
244 {
245/*
246 //STAR algorithm
247 Double_t beta = fPzSum/fESum;
248 Double_t gamma = GetGammaToLCMS();
249 Double_t el = gamma * (fPart1->E() - beta * fPart1->Pz());
250 Double_t x = ( fPart1->Px()*fPxSum + fPart1->Py()*fPySum) / ( 2.0*GetKt() );
251 beta = 2.0*GetKt()/GetMt();
252 gamma = GetMt()/GetQInv();
253 fQOutLCMS = gamma * (x - beta * el);
254*/
255
256 //beta=fPzSum/fESum; // Longit. V == beta
257 Double_t beta=fPzSum/fESum;
258 Double_t gamma = GetGammaToLCMS();
259
260 Double_t cosphi=fPxSum/(2.0*GetKt()); // cos(phi)
261 Double_t sinphi=fPySum/(2.0*GetKt()); // sin(phi)
262
263// ROTATE(part1Px,part1Py,SPHI,CPHI,part1Px,part1Py);//ROT8
264// ROTATE(part2Px,part2Py,SPHI,CPHI,part2Px,part2Py);//ROT8
265 Double_t tmp;
266 tmp = fPart1->Px()*cosphi + fPart1->Py()*sinphi;
267 Double_t part1Py = fPart1->Py()*cosphi - fPart1->Px()*sinphi;
268 Double_t part1Px = tmp;
269
270 tmp = fPart2->Px()*cosphi + fPart2->Py()*sinphi;
271 Double_t part2Py = fPart2->Py()*cosphi - fPart2->Px()*sinphi;
272 Double_t part2Px = tmp;
273
274
275// LTR(part1Pz,E1,beta,GetGammaToLCMS(),part1Pz,E1a);
276// LTR(part2Pz,E2,beta,GetGammaToLCMS(),part2Pz,E2a);
277 Double_t part1Pz=gamma*(fPart1->Pz()-beta*fPart1->E());
278 Double_t part2Pz=gamma*(fPart2->Pz()-beta*fPart2->E());
279
280 Double_t part1P2=part1Px*part1Px+part1Py*part1Py+part1Pz*part1Pz;
281 Double_t part2P2=part2Px*part2Px+part2Py*part2Py+part2Pz*part2Pz;
282 Double_t part1E=TMath::Sqrt(fPart1->Mass()*fPart1->Mass()+part1P2);
283 Double_t part2E=TMath::Sqrt(fPart2->Mass()*fPart2->Mass()+part2P2);
284 Double_t sumE=part1E+part2E;
285 Double_t sumPx=part1Px+part2Px;
286 Double_t sumPy=part1Py+part2Py;
287 Double_t sumPZ=part1Pz+part2Pz;
288 Double_t sumP2=sumPx*sumPx+sumPy*sumPy+sumPZ*sumPZ;
289
290 Double_t relmass=TMath::Sqrt(sumE*sumE-sumP2);
291 Double_t hf = (fPart1->Mass()*fPart1->Mass() - fPart2->Mass()*fPart2->Mass())/(relmass*relmass);
292 fQOutLCMS=(part1Px-part2Px);//== id
293 fQOutLCMS=fQOutLCMS-sumPx*hf; //sumPx == fPxSum ale po rotacji i transf
294 }
295 else
296 {
297 Double_t k2 = fPxSum*fPxDiff+fPySum*fPyDiff;
298 fQOutLCMS = 0.5*k2/GetKt();
299 // if (non-id) fQOutLCMS=fQOutLCMS - sumPx*HF;
300 }
301
302
303 fQOutLCMSNotCalc = kFALSE;
304 }
305 return fQOutLCMS;
306}
307/************************************************************************/
308
309Double_t AliAODPair::GetQLongLCMS()
310{
311 //return Q Long in Central Of Mass System in Longitudialy Comoving Frame
312 if (fQLongLCMSNotCalc)
313 {
314 CalculateSums();
315 CalculateDiffs();
316 Double_t beta = fPzSum/fESum;
317 fQLongLCMS = GetGammaToLCMS() * ( fPzDiff - beta*fEDiff );
318 fQLongLCMSNotCalc = kFALSE;
319 }
320 return fQLongLCMS;
321}
322/************************************************************************/
323
f422a7da 324Double_t AliAODPair::GetQtLCMS()
325{
326 //returns Q transverse CMS longitudionally co-moving
327 if (fQtLCMSNotCalc)
328 {
329 fQtLCMS = TMath::Hypot(GetQOutLCMS(),GetQSideLCMS());
330 fQtLCMSNotCalc = kFALSE;
331 }
332 return fQtLCMS;
333}
fb629e2d 334/************************************************************************/
335
336Double_t AliAODPair::GetQt()
337{
338 //returns Q transverse CMS longitudionally co-moving
339 if (fQtNotCalc)
340 {
05eb9603 341 CalculateSums();
342 CalculateDiffs();
343
fb629e2d 344 Double_t dotprod = fPxSum*fPxDiff + fPySum*fPyDiff + fPzSum*fPzDiff;
345 Double_t klen = fPxSum*fPxSum + fPySum*fPySum + fPzSum*fPzSum;
346 klen = TMath::Sqrt(klen);
347 Double_t qlen = fPxDiff*fPxDiff + fPyDiff*fPyDiff + fPzDiff*fPzDiff;
348 qlen = TMath::Sqrt(qlen);
05eb9603 349 Double_t tmp = klen*qlen;
350 if (tmp == 0.0)
351 {
352 fQt = 10e5;
353 fQtNotCalc = kFALSE;
354 return fQt;
355 }
356 Double_t cosopenangle = dotprod/tmp;
fb629e2d 357 Double_t sinopenangle = TMath::Sqrt(1.0 - cosopenangle*cosopenangle);
358
359 fQt = sinopenangle*qlen;
360 fQtNotCalc = kFALSE;
361 }
362 return fQt;
363}
364/************************************************************************/
f422a7da 365
78d7c6d3 366Double_t AliAODPair::GetKt()
367{
368 //calculates the evarage momentum of the pair
369 if(fKtNotCalc)
370 {
371 CalculateSums();
372 fKt = 0.5*TMath::Hypot(fPxSum,fPySum);
373 fKtNotCalc = kFALSE;
374 }
375 return fKt;
376}
377/************************************************************************/
378
379Double_t AliAODPair::GetKStar()
380{
381 //calculates invariant velocity difference
382 if (fKStarNotCalc)
383 {
384 CalculateSums();
385
386 Double_t ptrans = fPxSum*fPxSum + fPySum*fPySum;
387 Double_t mtrans = fESum*fESum - fPzSum*fPzSum;
388 if (ptrans > mtrans)
389 {
390 Error("GetKStar","Tranverse momentum bigger than transverse mass. Not normal for on-shell particles");
391 Error("GetKStar","Particle1:");
392 fPart1->Print();
393 Error("GetKStar","Particle2:");
394 fPart2->Print();
395 Error("GetKStar","");
396
397 fKStar = 10e5;
398 fKStarNotCalc = kFALSE;
399 return fKStar;
400 }
401 Double_t pinv = TMath::Sqrt(mtrans - ptrans);
402
403 Double_t q = (fPart1->Mass()*fPart1->Mass() - fPart2->Mass()*fPart2->Mass())/pinv;
404
405 CalculateQInvL();
406
407 q = q*q - fQInvL;
408 if ( q < 0)
409 {
410 Info("GetKStar","Sqrt of negative number q = %f",q);
411 Error("GetKStar","Particle1:");
412 fPart1->Print();
413 Error("GetKStar","Particle2:");
414 fPart2->Print();
415 fKStar = 10e5;
416 fKStarNotCalc = kFALSE;
417 return fKStar;
418 }
419
420 q = TMath::Sqrt(q);
421 fKStar = q/2.;
422 fKStarNotCalc = kFALSE;
423 }
424 return fKStar;
425}
426/************************************************************************/
a40c0433 427Double_t AliAODPair::GetKStarOut()
428{
429 CalculateKStarComp();
430 return fKStarOut;
431}
432/************************************************************************/
433Double_t AliAODPair::GetKStarSide()
434{
435 CalculateKStarComp();
436 return fKStarSide;
437}
438/************************************************************************/
439Double_t AliAODPair::GetKStarLong()
440{
441 CalculateKStarComp();
442 return fKStarLong;
443}
444/************************************************************************/
78d7c6d3 445
446Double_t AliAODPair::GetQInv()
447{
448//returns Qinv
449//warning for non-id particles you want to use 2*KStar
450 if(fQInvNotCalc)
451 {
452 CalculateQInvL();
453 fQInv = TMath::Sqrt(TMath::Abs(fQInvL));
454 fQInvNotCalc = kFALSE;
455 }
456 return fQInv;
457}
458/************************************************************************/
459
460Double_t AliAODPair::GetGammaToLCMS()
461{
462 //calculates gamma factor of the boost to LCMS
463 if(fGammaLCMSNotCalc)
464 {
465 CalculateSums();
466 Double_t beta = fPzSum/fESum;
467 fGammaLCMS = 1.0/TMath::Sqrt(1.0 - beta*beta);
468 fGammaLCMSNotCalc = kFALSE;
469 }
470 return fGammaLCMS;
471}
472/************************************************************************/
473
fe3f2f54 474Double_t AliAODPair::GetGammaToTransverse()
475{
476 //calculates gamma factor of the boost to LCMS
477 Double_t beta = 2.0*GetKt() / GetMt();
478 Double_t gamma = 1.0/TMath::Sqrt(1.0 - beta*beta);
479
480 return gamma;
481}
482/************************************************************************/
483
78d7c6d3 484Double_t AliAODPair::GetMt()
485{
486 //Calculates transverse mass of the pair
487 if (fMtNotCalc)
488 {
489 CalculateSums();
490 fMt = TMath::Sqrt(fESum*fESum - fPzSum*fPzSum);
491 fMtNotCalc = kFALSE;
492 }
493 return fMt;
494}
495/************************************************************************/
496
497Double_t AliAODPair::GetAvarageDistance()
498{
499//returns and buffers avarage distance between two tracks calculated
500// out of track points (see AliAODTrackPoints class)
501
502 if (fAvarageDistanceNotCalc)
503 {
504 fAvarageDistance = AvDistance();
505 fAvarageDistanceNotCalc = kFALSE;
506 }
507 return fAvarageDistance;
508}
509/************************************************************************/
510
511Double_t AliAODPair::AvDistance()
512{
513 //returns avarage distance between two tracks in range
514 //as defined in Track-Points of AliVAODParticle
515 //returns negative value if error uccured f.g. tracks do not have track-points
516 AliTrackPoints* tpts1 = fPart1->GetTPCTrackPoints();
517 if ( tpts1 == 0x0)
518 {//it could be simulated pair
519// Warning("GetValue","Track 1 does not have Track Points. Pair NOT Passed.");
520 return -1.0;
521 }
522
523 AliTrackPoints* tpts2 = fPart2->GetTPCTrackPoints();
524 if ( tpts2 == 0x0)
525 {
526// Warning("GetValue","Track 2 does not have Track Points. Pair NOT Passed.");
527 return -1.0;
528 }
529
530 return tpts1->AvarageDistance(*tpts2);
531}
8ea30edc 532/************************************************************************/
533
534Double_t AliAODPair::GetR()
535{
536//Returns distance between particles vertexes in thir CMS
537
538 CalculateDiffs();
5c03edbe 539
540 Double_t vxDiff = fPart1->Vx() - fPart2->Vx();
541 Double_t vyDiff = fPart1->Vy() - fPart2->Vy();
542 Double_t vzDiff = fPart1->Vz() - fPart2->Vz();
543
544 Double_t r = TMath::Sqrt( vxDiff*vxDiff + vyDiff*vyDiff + vzDiff*vzDiff );
545 return r;
8ea30edc 546
547}
548/************************************************************************/
549
550Double_t AliAODPair::GetRStar()
551{
552//Returns distance between particles vertexes in thir CMS
553
554
555 CalculateSums();
556
557 Double_t klen = fPxSum*fPxSum + fPySum*fPySum + fPzSum*fPzSum;
558 klen = TMath::Sqrt(klen);
559
560 Double_t aBeta = klen/fESum;
561 Double_t aGamma = 1.0/TMath::Sqrt(1.0 - aBeta*aBeta);
562
563
564 Double_t alpha = -TMath::ATan2(fPySum,fPzSum);
565 Double_t beta = TMath::ATan2(fPxSum,TMath::Hypot(fPySum,fPzSum));
566
567 Double_t sinalpha = TMath::Sin(alpha);
568 Double_t cosalpha = TMath::Cos(alpha);
569 Double_t sinbeta = TMath::Sin(beta);
570 Double_t cosbeta = TMath::Cos(beta);
571
572 Double_t v1xP = fPart1->Vx();
573 Double_t v2xP = fPart2->Vx();
574 Double_t v1yP = fPart1->Vy()*cosalpha + fPart1->Vz()*sinalpha;
575 Double_t v2yP = fPart2->Vy()*cosalpha + fPart2->Vz()*sinalpha;
576 Double_t v1zP =-fPart1->Vy()*sinalpha + fPart1->Vz()*cosalpha;
577 Double_t v2zP =-fPart2->Vy()*sinalpha + fPart2->Vz()*cosalpha;
578
579
580///////////////////////////////////////////////////
581
582// Double_t p1yP = fPart1->Py()*cosalpha + fPart1->Pz()*sinalpha;
583// Double_t p2yP = fPart2->Py()*cosalpha + fPart2->Pz()*sinalpha;
584//
585// Double_t p1zP =-fPart1->Py()*sinalpha + fPart1->Pz()*cosalpha;
586// Double_t p2zP =-fPart2->Py()*sinalpha + fPart2->Pz()*cosalpha;
587//
588//
589// Double_t p1x = fPart1->Px()*cosbeta - p1zP*sinbeta;
590// Double_t p2x = fPart2->Px()*cosbeta - p2zP*sinbeta;
591// Double_t p1z = fPart1->Px()*sinbeta + p1zP*cosbeta;
592// Double_t p2z = fPart2->Px()*sinbeta + p2zP*cosbeta;
593
594// Info("","%f %f %f",p1yP,p2yP,p1yP+p2yP);
595// Info("","%f %f %f",p1x,p2x,p1x+p2x);
596
597// Info("","%f %f ",p1x+p2x,p1yP+p2yP);
598
599///////////////////////////////////////////////////
600
601
602 Double_t v1x = v1xP*cosbeta - v1zP*sinbeta;
603 Double_t v2x = v2xP*cosbeta - v2zP*sinbeta;
604 Double_t v1y = v1yP;
605 Double_t v2y = v2yP;
606 Double_t v1z = v1xP*sinbeta + v1zP*cosbeta;
607 Double_t v2z = v2xP*sinbeta + v2zP*cosbeta;
608
609
610 Double_t v1zB=aGamma*(v1z-aBeta*fPart1->T());
611 Double_t v2zB=aGamma*(v2z-aBeta*fPart2->T());
612
613
614
615 Double_t dx = v1x - v2x;
616 Double_t dy = v1y - v2y;
617 Double_t dz = v1zB - v2zB;
618
619 Double_t rstar = TMath::Sqrt( dx*dx + dy*dy + dz*dz);
620
621 return rstar;
622}
6808c13f 623/************************************************************************/
af2872da 624
625void AliAODPair::MirrorSecond()
626{
627//makes local copy of the second particle and mirrors their momenta
628//for its deletion is responsible who calls this method
629 fPart2 = (AliVAODParticle*)fPart2->Clone();
630 fPart2->SetMomentum(-fPart2->Px(),-fPart2->Py(),-fPart2->Pz(),fPart2->E());
6808c13f 631 Changed();
af2872da 632}
6808c13f 633/************************************************************************/
af2872da 634
635void AliAODPair::DeleteSecond()
636{
637//Deletes second particle
638 delete fPart2;
639 fPart2 = 0x0;
640}
fe3f2f54 641
201c7e13 642void AliAODPair::Print()
fe3f2f54 643{
644 if (fPart1) fPart1->Print();
645 if (fPart2) fPart2->Print();
646
647 Info("Print","GetKStar() %f",GetKStar());
648 Info("Print","GetKt() %f",GetKt() );
649 Info("Print","QInv %f", GetQInv() );
650 Info("Print","GetQOutLCMS() %f",GetQOutLCMS() );
651 Info("Print","GetQSideLCMS %f",GetQSideLCMS() );
652 Info("Print","GetQLongLCMS() %f", GetQLongLCMS());
653 Info("Print","GetDeltaTheta() %f", GetDeltaTheta());
654 Info("Print","GetDeltaPhi() %f", GetDeltaPhi());
655
656
657}