Skip to content

Commit da13db5

Browse files
committed
Add wrong sign background
1 parent 70da5e8 commit da13db5

File tree

1 file changed

+56
-23
lines changed

1 file changed

+56
-23
lines changed

PWGLF/Tasks/Resonances/doublephimeson.cxx

Lines changed: 56 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ struct doublephimeson {
8989
const AxisSpec thnAxisNumPhi{configThnAxisNumPhi, "Number of phi meson"};
9090

9191
histos.add("SEMassUnlike", "SEMassUnlike", HistType::kTHnSparseF, {thnAxisInvMass, thnAxisPt, thnAxisDeltaR, thnAxisCosTheta, thnAxisInvMassDeltaPhi, thnAxisNumPhi});
92+
histos.add("SEMassLike", "SEMassLike", HistType::kTHnSparseF, {thnAxisInvMass, thnAxisPt, thnAxisDeltaR, thnAxisCosTheta, thnAxisInvMassDeltaPhi, thnAxisNumPhi});
9293
histos.add("MEMassUnlike", "MEMassUnlike", HistType::kTHnSparseF, {thnAxisInvMass, thnAxisPt, thnAxisDeltaR, thnAxisCosTheta, thnAxisInvMassDeltaPhi});
9394
}
9495

@@ -274,9 +275,10 @@ struct doublephimeson {
274275
}
275276

276277
TLorentzVector exotic, Phid1, Phid2;
278+
TLorentzVector exoticlike, Phi1kaonplus, Phi1kaonminus, Phi2kaonplus, Phi2kaonminus, Phid1like, Phid2like;
277279
// TLorentzVector exoticRot, Phid1Rot;
278280

279-
void process(aod::RedPhiEvents::iterator const& collision, aod::PhiTracks const& phitracks)
281+
void processSE(aod::RedPhiEvents::iterator const& collision, aod::PhiTracks const& phitracks)
280282
{
281283
if (additionalEvsel && (collision.numPos() < 2 || collision.numNeg() < 2)) {
282284
return;
@@ -303,9 +305,6 @@ struct doublephimeson {
303305
phimult = phimult + 1;
304306
}
305307
for (auto phitrackd1 : phitracks) {
306-
if (phitrackd1.phiMass() < minPhiMass || phitrackd1.phiMass() > maxPhiMass) {
307-
continue;
308-
}
309308
auto kaonplusd1pt = TMath::Sqrt(phitrackd1.phid1Px() * phitrackd1.phid1Px() + phitrackd1.phid1Py() * phitrackd1.phid1Py());
310309
auto kaonminusd1pt = TMath::Sqrt(phitrackd1.phid2Px() * phitrackd1.phid2Px() + phitrackd1.phid2Py() * phitrackd1.phid2Py());
311310
if (kaonplusd1pt > maxKaonPt) {
@@ -326,14 +325,13 @@ struct doublephimeson {
326325
histos.fill(HIST("hPhiMass"), Phid1.M(), Phid1.Pt());
327326
auto phid1id = phitrackd1.index();
328327
Phid1.SetXYZM(phitrackd1.phiPx(), phitrackd1.phiPy(), phitrackd1.phiPz(), phitrackd1.phiMass());
328+
Phi1kaonplus.SetXYZM(phitrackd1.phid1Px(), phitrackd1.phid1Py(), phitrackd1.phid1Pz(), 0.493);
329+
Phi1kaonminus.SetXYZM(phitrackd1.phid2Px(), phitrackd1.phid2Py(), phitrackd1.phid2Pz(), 0.493);
329330
for (auto phitrackd2 : phitracks) {
330331
auto phid2id = phitrackd2.index();
331332
if (phid2id <= phid1id) {
332333
continue;
333334
}
334-
if (phitrackd2.phiMass() < minPhiMass || phitrackd2.phiMass() > maxPhiMass) {
335-
continue;
336-
}
337335
auto kaonplusd2pt = TMath::Sqrt(phitrackd2.phid1Px() * phitrackd2.phid1Px() + phitrackd2.phid1Py() * phitrackd2.phid1Py());
338336
auto kaonminusd2pt = TMath::Sqrt(phitrackd2.phid2Px() * phitrackd2.phid2Px() + phitrackd2.phid2Py() * phitrackd2.phid2Py());
339337
if (kaonplusd2pt > maxKaonPt) {
@@ -348,19 +346,37 @@ struct doublephimeson {
348346
if (!selectionPID(phitrackd2.phid2TPC(), phitrackd2.phid2TOF(), phitrackd2.phid2TOFHit(), strategyPID2, kaonminusd2pt)) {
349347
continue;
350348
}
351-
// if (phitrackd1.phid1Index() == phitrackd2.phid1Index()) {
352-
// continue;
353-
// }
354-
// if (phitrackd1.phid2Index() == phitrackd2.phid2Index()) {
355-
// continue;
356-
// }
357349
if (phitrackd1.phid1Index() == phitrackd2.phid1Index()) {
358350
continue;
359351
}
360352
if (phitrackd1.phid2Index() == phitrackd2.phid2Index()) {
361353
continue;
362354
}
363355
Phid2.SetXYZM(phitrackd2.phiPx(), phitrackd2.phiPy(), phitrackd2.phiPz(), phitrackd2.phiMass());
356+
Phi2kaonplus.SetXYZM(phitrackd2.phid1Px(), phitrackd2.phid1Py(), phitrackd2.phid1Pz(), 0.493);
357+
Phi2kaonminus.SetXYZM(phitrackd2.phid2Px(), phitrackd2.phid2Py(), phitrackd2.phid2Pz(), 0.493);
358+
359+
// Like
360+
Phid1like = Phi1kaonplus + Phi2kaonplus;
361+
Phid2like = Phi1kaonminus + Phi2kaonminus;
362+
exoticlike = Phid1like + Phid2like;
363+
auto deltaRlike = TMath::Sqrt(TMath::Power(Phid1like.Phi() - Phid2like.Phi(), 2.0) + TMath::Power(Phid1like.Eta() - Phid2like.Eta(), 2.0));
364+
auto costhetalike = (Phid1like.Px() * Phid2like.Px() + Phid1like.Py() * Phid2like.Py() + Phid1like.Pz() * Phid2like.Pz()) / (Phid1like.P() * Phid2like.P());
365+
auto deltamlike = TMath::Sqrt(TMath::Power(Phid1like.M() - 1.0192, 2.0) + TMath::Power(Phid2like.M() - 1.0192, 2.0));
366+
if (!isDeep) {
367+
histos.fill(HIST("SEMassLike"), exoticlike.M(), exoticlike.Pt(), deltaRlike, costhetalike, deltamlike, phimult);
368+
}
369+
if (isDeep) {
370+
histos.fill(HIST("SEMassLike"), exoticlike.M(), exoticlike.Pt(), deltaRlike, deepangle(Phid1like, Phid2like), deltamlike, phimult);
371+
}
372+
373+
// Unlike
374+
if (phitrackd2.phiMass() < minPhiMass || phitrackd2.phiMass() > maxPhiMass) {
375+
continue;
376+
}
377+
if (phitrackd1.phiMass() < minPhiMass || phitrackd1.phiMass() > maxPhiMass) {
378+
continue;
379+
}
364380
exotic = Phid1 + Phid2;
365381
if (exotic.M() < minExoticMass || exotic.M() > maxExoticMass) {
366382
continue;
@@ -380,7 +396,7 @@ struct doublephimeson {
380396
}
381397
}
382398
}
383-
399+
PROCESS_SWITCH(doublephimeson, processSE, "Process Same Event", false);
384400
void processopti(aod::RedPhiEvents::iterator const& collision, aod::PhiTracks const& phitracks)
385401
{
386402
std::vector<ROOT::Math::PtEtaPhiMVector> exoticresonance, phiresonanced1, phiresonanced2;
@@ -414,9 +430,6 @@ struct doublephimeson {
414430
phimult = phimult + 1;
415431
}
416432
for (auto phitrackd1 : phitracks) {
417-
if (phitrackd1.phiMass() < minPhiMass || phitrackd1.phiMass() > maxPhiMass) {
418-
continue;
419-
}
420433
auto kaonplusd1pt = TMath::Sqrt(phitrackd1.phid1Px() * phitrackd1.phid1Px() + phitrackd1.phid1Py() * phitrackd1.phid1Py());
421434
auto kaonminusd1pt = TMath::Sqrt(phitrackd1.phid2Px() * phitrackd1.phid2Px() + phitrackd1.phid2Py() * phitrackd1.phid2Py());
422435
if (kaonplusd1pt > maxKaonPt) {
@@ -437,14 +450,13 @@ struct doublephimeson {
437450
histos.fill(HIST("hPhiMass"), Phid1.M(), Phid1.Pt());
438451
auto phid1id = phitrackd1.index();
439452
Phid1.SetXYZM(phitrackd1.phiPx(), phitrackd1.phiPy(), phitrackd1.phiPz(), phitrackd1.phiMass());
453+
Phi1kaonplus.SetXYZM(phitrackd1.phid1Px(), phitrackd1.phid1Py(), phitrackd1.phid1Pz(), 0.493);
454+
Phi1kaonminus.SetXYZM(phitrackd1.phid2Px(), phitrackd1.phid2Py(), phitrackd1.phid2Pz(), 0.493);
440455
for (auto phitrackd2 : phitracks) {
441456
auto phid2id = phitrackd2.index();
442457
if (phid2id <= phid1id) {
443458
continue;
444459
}
445-
if (phitrackd2.phiMass() < minPhiMass || phitrackd2.phiMass() > maxPhiMass) {
446-
continue;
447-
}
448460
auto kaonplusd2pt = TMath::Sqrt(phitrackd2.phid1Px() * phitrackd2.phid1Px() + phitrackd2.phid1Py() * phitrackd2.phid1Py());
449461
auto kaonminusd2pt = TMath::Sqrt(phitrackd2.phid2Px() * phitrackd2.phid2Px() + phitrackd2.phid2Py() * phitrackd2.phid2Py());
450462
if (kaonplusd2pt > maxKaonPt) {
@@ -462,14 +474,35 @@ struct doublephimeson {
462474
if ((phitrackd1.phid1Index() == phitrackd2.phid1Index()) || (phitrackd1.phid2Index() == phitrackd2.phid2Index())) {
463475
continue;
464476
}
465-
466477
Phid2.SetXYZM(phitrackd2.phiPx(), phitrackd2.phiPy(), phitrackd2.phiPz(), phitrackd2.phiMass());
467-
exotic = Phid1 + Phid2;
478+
Phi2kaonplus.SetXYZM(phitrackd2.phid1Px(), phitrackd2.phid1Py(), phitrackd2.phid1Pz(), 0.493);
479+
Phi2kaonminus.SetXYZM(phitrackd2.phid2Px(), phitrackd2.phid2Py(), phitrackd2.phid2Pz(), 0.493);
480+
481+
// Like
482+
Phid1like = Phi1kaonplus + Phi2kaonplus;
483+
Phid2like = Phi1kaonminus + Phi2kaonminus;
484+
exoticlike = Phid1like + Phid2like;
485+
auto deltaRlike = TMath::Sqrt(TMath::Power(Phid1like.Phi() - Phid2like.Phi(), 2.0) + TMath::Power(Phid1like.Eta() - Phid2like.Eta(), 2.0));
486+
auto costhetalike = (Phid1like.Px() * Phid2like.Px() + Phid1like.Py() * Phid2like.Py() + Phid1like.Pz() * Phid2like.Pz()) / (Phid1like.P() * Phid2like.P());
487+
auto deltamlike = TMath::Sqrt(TMath::Power(Phid1like.M() - 1.0192, 2.0) + TMath::Power(Phid2like.M() - 1.0192, 2.0));
488+
if (!isDeep) {
489+
histos.fill(HIST("SEMassLike"), exoticlike.M(), exoticlike.Pt(), deltaRlike, costhetalike, deltamlike, phimult);
490+
}
491+
if (isDeep) {
492+
histos.fill(HIST("SEMassLike"), exoticlike.M(), exoticlike.Pt(), deltaRlike, deepangle(Phid1like, Phid2like), deltamlike, phimult);
493+
}
468494

495+
// unlike
496+
if (phitrackd1.phiMass() < minPhiMass || phitrackd1.phiMass() > maxPhiMass) {
497+
continue;
498+
}
499+
if (phitrackd2.phiMass() < minPhiMass || phitrackd2.phiMass() > maxPhiMass) {
500+
continue;
501+
}
502+
exotic = Phid1 + Phid2;
469503
if (exotic.M() < minExoticMass || exotic.M() > maxExoticMass) {
470504
continue;
471505
}
472-
473506
ROOT::Math::PtEtaPhiMVector temp1(exotic.Pt(), exotic.Eta(), exotic.Phi(), exotic.M());
474507
ROOT::Math::PtEtaPhiMVector temp2(Phid1.Pt(), Phid1.Eta(), Phid1.Phi(), Phid1.M());
475508
ROOT::Math::PtEtaPhiMVector temp3(Phid2.Pt(), Phid2.Eta(), Phid2.Phi(), Phid2.M());

0 commit comments

Comments
 (0)