@@ -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