@@ -427,24 +427,28 @@ struct correlateStrangeness {
427427
428428 if (bitcheck (doCorrelation, 0 )) {
429429 histos.add (" h3dK0ShortSpectrum" , " h3dK0ShortSpectrum" , kTH3F , {axisPtQA, axisMult, {3 , 0 .5f , 3 .5f }});
430+ histos.add (" h3dK0ShortSpectrumY" , " h3dK0ShortSpectrumY" , kTH3F , {axisPtQA, axisMult, {3 , 0 .5f , 3 .5f }});
430431 histos.add (" hK0ShortEtaVsPtVsPhi" , " hK0ShortEtaVsPtVsPhi" , kTH3F , {axisPtQA, axisEta, axisPhi});
431432 histos.add (" hK0ShortEtaVsPtVsPhiBg" , " hK0ShortEtaVsPtVsPhiBg" , kTH3F , {axisPtQA, axisEta, axisPhi});
432433 histos.add (" sameEvent/Signal/K0Short" , " K0Short" , kTHnF , {axisDeltaPhiNDim, axisDeltaEtaNDim, axisPtAssocNDim, axisPtTriggerNDim, axisVtxZNDim, axisMultNDim});
433434 }
434435 if (bitcheck (doCorrelation, 1 )) {
435436 histos.add (" h3dLambdaSpectrum" , " h3dLambdaSpectrum" , kTH3F , {axisPtQA, axisMult, {3 , 0 .5f , 3 .5f }});
437+ histos.add (" h3dLambdaSpectrumY" , " h3dLambdaSpectrumY" , kTH3F , {axisPtQA, axisMult, {3 , 0 .5f , 3 .5f }});
436438 histos.add (" hLambdaEtaVsPtVsPhi" , " hLambdaEtaVsPtVsPhi" , kTH3F , {axisPtQA, axisEta, axisPhi});
437439 histos.add (" hLambdaEtaVsPtVsPhiBg" , " hLambdaEtaVsPtVsPhiBg" , kTH3F , {axisPtQA, axisEta, axisPhi});
438440 histos.add (" sameEvent/Signal/Lambda" , " Lambda" , kTHnF , {axisDeltaPhiNDim, axisDeltaEtaNDim, axisPtAssocNDim, axisPtTriggerNDim, axisVtxZNDim, axisMultNDim});
439441 }
440442 if (bitcheck (doCorrelation, 2 )) {
441443 histos.add (" h3dAntiLambdaSpectrum" , " h3dAntiLambdaSpectrum" , kTH3F , {axisPtQA, axisMult, {3 , 0 .5f , 3 .5f }});
444+ histos.add (" h3dAntiLambdaSpectrumY" , " h3dAntiLambdaSpectrumY" , kTH3F , {axisPtQA, axisMult, {3 , 0 .5f , 3 .5f }});
442445 histos.add (" hAntiLambdaEtaVsPtVsPhi" , " hAntiLambdaEtaVsPtVsPhi" , kTH3F , {axisPtQA, axisEta, axisPhi});
443446 histos.add (" hAntiLambdaEtaVsPtVsPhiBg" , " hAntiLambdaEtaVsPtVsPhiBg" , kTH3F , {axisPtQA, axisEta, axisPhi});
444447 histos.add (" sameEvent/Signal/AntiLambda" , " AntiLambda" , kTHnF , {axisDeltaPhiNDim, axisDeltaEtaNDim, axisPtAssocNDim, axisPtTriggerNDim, axisVtxZNDim, axisMultNDim});
445448 }
446449 if (bitcheck (doCorrelation, 3 )) {
447450 histos.add (" h3dXiMinusSpectrum" , " h3dXiMinusSpectrum" , kTH3F , {axisPtQA, axisMult, {3 , 0 .5f , 3 .5f }});
451+ histos.add (" h3dXiMinusSpectrumY" , " h3dXiMinusSpectrumY" , kTH3F , {axisPtQA, axisMult, {3 , 0 .5f , 3 .5f }});
448452 histos.add (" hXiMinusEtaVsPtVsPhi" , " hXiMinusEtaVsPtVsPhi" , kTH3F , {axisPtQA, axisEta, axisPhi});
449453 histos.add (" hXiMinusEtaVsPtVsPhiBg" , " hXiMinusEtaVsPtVsPhiBg" , kTH3F , {axisPtQA, axisEta, axisPhi});
450454 histos.add (" sameEvent/Signal/XiMinus" , " XiMinus" , kTHnF , {axisDeltaPhiNDim, axisDeltaEtaNDim, axisPtAssocNDim, axisPtTriggerNDim, axisVtxZNDim, axisMultNDim});
@@ -457,12 +461,14 @@ struct correlateStrangeness {
457461 }
458462 if (bitcheck (doCorrelation, 5 )) {
459463 histos.add (" h3dOmegaMinusSpectrum" , " h3dOmegaMinusSpectrum" , kTH3F , {axisPtQA, axisMult, {3 , 0 .5f , 3 .5f }});
464+ histos.add (" h3dOmegaMinusSpectrumY" , " h3dOmegaMinusSpectrumY" , kTH3F , {axisPtQA, axisMult, {3 , 0 .5f , 3 .5f }});
460465 histos.add (" hOmegaMinusEtaVsPtVsPhi" , " hOmegaMinusEtaVsPtVsPhi" , kTH3F , {axisPtQA, axisEta, axisPhi});
461466 histos.add (" hOmegaMinusEtaVsPtVsPhiBg" , " hOmegaMinusEtaVsPtVsPhiBg" , kTH3F , {axisPtQA, axisEta, axisPhi});
462467 histos.add (" sameEvent/Signal/OmegaMinus" , " OmegaMinus" , kTHnF , {axisDeltaPhiNDim, axisDeltaEtaNDim, axisPtAssocNDim, axisPtTriggerNDim, axisVtxZNDim, axisMultNDim});
463468 }
464469 if (bitcheck (doCorrelation, 6 )) {
465470 histos.add (" h3dOmegaPlusSpectrum" , " h3dOmegaPlusSpectrum" , kTH3F , {axisPtQA, axisMult, {3 , 0 .5f , 3 .5f }});
471+ histos.add (" h3dOmegaPlusSpectrumY" , " h3dOmegaPlusSpectrumY" , kTH3F , {axisPtQA, axisMult, {3 , 0 .5f , 3 .5f }});
466472 histos.add (" hOmegaPlusEtaVsPtVsPhi" , " hOmegaPlusEtaVsPtVsPhi" , kTH3F , {axisPtQA, axisEta, axisPhi});
467473 histos.add (" hOmegaPlusEtaVsPtVsPhiBg" , " hOmegaPlusEtaVsPtVsPhiBg" , kTH3F , {axisPtQA, axisEta, axisPhi});
468474 histos.add (" sameEvent/Signal/OmegaPlus" , " OmegaPlus" , kTHnF , {axisDeltaPhiNDim, axisDeltaEtaNDim, axisPtAssocNDim, axisPtTriggerNDim, axisVtxZNDim, axisMultNDim});
@@ -513,6 +519,25 @@ struct correlateStrangeness {
513519 histos.add (" Generated/hOmegaPlus" , " " , kTH2F , {axisPtQA, axisEta});
514520
515521 histos.addClone (" Generated/" , " GeneratedWithPV/" );
522+
523+ // histograms within |y|<0.5, vs multiplicity
524+ histos.add (" GeneratedWithPV/hPion_MidYVsMult" , " " , kTH2F , {axisPtQA, axisMult});
525+ histos.add (" GeneratedWithPV/hK0Short_MidYVsMult" , " " , kTH2F , {axisPtQA, axisMult});
526+ histos.add (" GeneratedWithPV/hLambda_MidYVsMult" , " " , kTH2F , {axisPtQA, axisMult});
527+ histos.add (" GeneratedWithPV/hAntiLambda_MidYVsMult" , " " , kTH2F , {axisPtQA, axisMult});
528+ histos.add (" GeneratedWithPV/hXiMinus_MidYVsMult" , " " , kTH2F , {axisPtQA, axisMult});
529+ histos.add (" GeneratedWithPV/hXiPlus_MidYVsMult" , " " , kTH2F , {axisPtQA, axisMult});
530+ histos.add (" GeneratedWithPV/hOmegaMinus_MidYVsMult" , " " , kTH2F , {axisPtQA, axisMult});
531+ histos.add (" GeneratedWithPV/hOmegaPlus_MidYVsMult" , " " , kTH2F , {axisPtQA, axisMult});
532+
533+ histos.add (" GeneratedWithPV/hPion_MidYVsMult_TwoPVsOrMore" , " " , kTH2F , {axisPtQA, axisMult});
534+ histos.add (" GeneratedWithPV/hK0Short_MidYVsMult_TwoPVsOrMore" , " " , kTH2F , {axisPtQA, axisMult});
535+ histos.add (" GeneratedWithPV/hLambda_MidYVsMult_TwoPVsOrMore" , " " , kTH2F , {axisPtQA, axisMult});
536+ histos.add (" GeneratedWithPV/hAntiLambda_MidYVsMult_TwoPVsOrMore" , " " , kTH2F , {axisPtQA, axisMult});
537+ histos.add (" GeneratedWithPV/hXiMinus_MidYVsMult_TwoPVsOrMore" , " " , kTH2F , {axisPtQA, axisMult});
538+ histos.add (" GeneratedWithPV/hXiPlus_MidYVsMult_TwoPVsOrMore" , " " , kTH2F , {axisPtQA, axisMult});
539+ histos.add (" GeneratedWithPV/hOmegaMinus_MidYVsMult_TwoPVsOrMore" , " " , kTH2F , {axisPtQA, axisMult});
540+ histos.add (" GeneratedWithPV/hOmegaPlus_MidYVsMult_TwoPVsOrMore" , " " , kTH2F , {axisPtQA, axisMult});
516541 }
517542 }
518543
@@ -544,6 +569,9 @@ struct correlateStrangeness {
544569 constexpr int index = i.value ;
545570 if (v0.compatible (index) && (!doMCassociation || v0.mcTrue (index)) && bitcheck (doCorrelation, index)) {
546571 histos.fill (HIST (" h3d" ) + HIST (v0names[index]) + HIST (" Spectrum" ), v0Data.pt (), collision.centFT0M (), v0.invMassRegion (index));
572+ if (std::abs (v0Data.rapidity (index)) < 0.5 ) {
573+ histos.fill (HIST (" h3d" ) + HIST (v0names[index]) + HIST (" SpectrumY" ), v0Data.pt (), collision.centFT0M (), v0.invMassRegion (index));
574+ }
547575 if (v0.invMassRegionCheck (index, 2 ))
548576 histos.fill (HIST (" h" ) + HIST (v0names[index]) + HIST (" EtaVsPtVsPhi" ), v0Data.pt (), v0Data.eta (), v0Data.phi ());
549577 if (v0.invMassRegionCheck (index, 1 ) || v0.invMassRegionCheck (index, 3 ))
@@ -589,6 +617,9 @@ struct correlateStrangeness {
589617 constexpr int index = i.value ;
590618 if (casc.compatible (index) && (!doMCassociation || casc.mcTrue (index)) && bitcheck (doCorrelation, index + 3 )) {
591619 histos.fill (HIST (" h3d" ) + HIST (cascadenames[index]) + HIST (" Spectrum" ), cascData.pt (), collision.centFT0M (), casc.invMassRegion (index));
620+ if (std::abs (cascData.rapidity (index)) < 0.5 ) {
621+ histos.fill (HIST (" h3d" ) + HIST (cascadenames[index]) + HIST (" SpectrumY" ), cascData.pt (), collision.centFT0M (), casc.invMassRegion (index));
622+ }
592623 if (casc.invMassRegionCheck (index, 2 ))
593624 histos.fill (HIST (" h" ) + HIST (cascadenames[index]) + HIST (" EtaVsPtVsPhi" ), cascData.pt (), cascData.eta (), cascData.phi ());
594625 if (casc.invMassRegionCheck (index, 1 ) || casc.invMassRegionCheck (index, 3 ))
@@ -739,7 +770,7 @@ struct correlateStrangeness {
739770 fillCorrelationsPion (slicedTriggerTracks, slicedAssocPions, true , collision1.posZ (), collision1.centFT0M ());
740771 }
741772 }
742- void processMCGenerated (aod::McCollision const & mcCollision, soa::SmallGroups<soa::Join<aod::McCollisionLabels, aod::Collisions>> const & collisions, aod::McParticles const & mcParticles)
773+ void processMCGenerated (aod::McCollision const & mcCollision, soa::SmallGroups<soa::Join<aod::McCollisionLabels, aod::Collisions, aod::EvSels, aod::CentFT0Ms >> const & collisions, aod::McParticles const & mcParticles)
743774 {
744775 for (auto const & mcParticle : mcParticles) {
745776 if (!mcParticle.isPhysicalPrimary ())
@@ -757,14 +788,61 @@ struct correlateStrangeness {
757788 if (mcParticle.pdgCode () == -3312 )
758789 histos.fill (HIST (" Generated/hXiPlus" ), mcParticle.pt (), mcParticle.eta ());
759790 if (mcParticle.pdgCode () == 3334 )
760- histos.fill (HIST (" Generated/hXiMinus " ), mcParticle.pt (), mcParticle.eta ());
791+ histos.fill (HIST (" Generated/hOmegaMinus " ), mcParticle.pt (), mcParticle.eta ());
761792 if (mcParticle.pdgCode () == -3334 )
762- histos.fill (HIST (" Generated/hXiPlus " ), mcParticle.pt (), mcParticle.eta ());
793+ histos.fill (HIST (" Generated/hOmegaPlus " ), mcParticle.pt (), mcParticle.eta ());
763794 }
764795
765796 if (collisions.size () < 1 )
766797 return ;
767798
799+ // determine best collision properties
800+ int biggestNContribs = -1 ;
801+ int bestCollisionFT0Mpercentile = -1 ;
802+ float bestCollisionVtxZ = 0 .0f ;
803+ bool bestCollisionSel8 = false ;
804+ for (auto & collision : collisions) {
805+ if (biggestNContribs < collision.numContrib ()) {
806+ biggestNContribs = collision.numContrib ();
807+ bestCollisionFT0Mpercentile = collision.centFT0M ();
808+ bestCollisionSel8 = collision.sel8 ();
809+ bestCollisionVtxZ = collision.posZ ();
810+ }
811+ }
812+
813+ if (collisions.size () > 1 ) {
814+ for (auto const & mcParticle : mcParticles) {
815+ if (!mcParticle.isPhysicalPrimary ())
816+ continue ;
817+ if (abs (mcParticle.y ()) < 0.5 ) {
818+ if (abs (mcParticle.pdgCode ()) == 211 )
819+ histos.fill (HIST (" GeneratedWithPV/hPion_MidYVsMult_TwoPVsOrMore" ), mcParticle.pt (), bestCollisionFT0Mpercentile);
820+ if (abs (mcParticle.pdgCode ()) == 310 )
821+ histos.fill (HIST (" GeneratedWithPV/hK0Short_MidYVsMult_TwoPVsOrMore" ), mcParticle.pt (), bestCollisionFT0Mpercentile);
822+ if (mcParticle.pdgCode () == 3122 )
823+ histos.fill (HIST (" GeneratedWithPV/hLambda_MidYVsMult_TwoPVsOrMore" ), mcParticle.pt (), bestCollisionFT0Mpercentile);
824+ if (mcParticle.pdgCode () == -3122 )
825+ histos.fill (HIST (" GeneratedWithPV/hAntiLambda_MidYVsMult_TwoPVsOrMore" ), mcParticle.pt (), bestCollisionFT0Mpercentile);
826+ if (mcParticle.pdgCode () == 3312 )
827+ histos.fill (HIST (" GeneratedWithPV/hXiMinus_MidYVsMult_TwoPVsOrMore" ), mcParticle.pt (), bestCollisionFT0Mpercentile);
828+ if (mcParticle.pdgCode () == -3312 )
829+ histos.fill (HIST (" GeneratedWithPV/hXiPlus_MidYVsMult_TwoPVsOrMore" ), mcParticle.pt (), bestCollisionFT0Mpercentile);
830+ if (mcParticle.pdgCode () == 3334 )
831+ histos.fill (HIST (" GeneratedWithPV/hOmegaMinus_MidYVsMult_TwoPVsOrMore" ), mcParticle.pt (), bestCollisionFT0Mpercentile);
832+ if (mcParticle.pdgCode () == -3334 )
833+ histos.fill (HIST (" GeneratedWithPV/hOmegaPlus_MidYVsMult_TwoPVsOrMore" ), mcParticle.pt (), bestCollisionFT0Mpercentile);
834+ }
835+ }
836+ }
837+
838+ // do selections on best collision
839+ // WARNING: if 2 PV case large, this will not necessarily be fine!
840+ // caution advised!
841+ if (!bestCollisionSel8)
842+ return ;
843+ if (std::abs (bestCollisionVtxZ) > 10 .0f )
844+ return ;
845+
768846 for (auto const & mcParticle : mcParticles) {
769847 if (!mcParticle.isPhysicalPrimary ())
770848 continue ;
@@ -781,9 +859,28 @@ struct correlateStrangeness {
781859 if (mcParticle.pdgCode () == -3312 )
782860 histos.fill (HIST (" GeneratedWithPV/hXiPlus" ), mcParticle.pt (), mcParticle.eta ());
783861 if (mcParticle.pdgCode () == 3334 )
784- histos.fill (HIST (" GeneratedWithPV/hXiMinus " ), mcParticle.pt (), mcParticle.eta ());
862+ histos.fill (HIST (" GeneratedWithPV/hOmegaMinus " ), mcParticle.pt (), mcParticle.eta ());
785863 if (mcParticle.pdgCode () == -3334 )
786- histos.fill (HIST (" GeneratedWithPV/hXiPlus" ), mcParticle.pt (), mcParticle.eta ());
864+ histos.fill (HIST (" GeneratedWithPV/hOmegaPlus" ), mcParticle.pt (), mcParticle.eta ());
865+
866+ if (abs (mcParticle.y ()) < 0.5 ) {
867+ if (abs (mcParticle.pdgCode ()) == 211 )
868+ histos.fill (HIST (" Generated/hPion_MidYVsMult" ), mcParticle.pt (), bestCollisionFT0Mpercentile);
869+ if (abs (mcParticle.pdgCode ()) == 310 )
870+ histos.fill (HIST (" Generated/hK0Short_MidYVsMult" ), mcParticle.pt (), bestCollisionFT0Mpercentile);
871+ if (mcParticle.pdgCode () == 3122 )
872+ histos.fill (HIST (" Generated/hLambda_MidYVsMult" ), mcParticle.pt (), bestCollisionFT0Mpercentile);
873+ if (mcParticle.pdgCode () == -3122 )
874+ histos.fill (HIST (" Generated/hAntiLambda_MidYVsMult" ), mcParticle.pt (), bestCollisionFT0Mpercentile);
875+ if (mcParticle.pdgCode () == 3312 )
876+ histos.fill (HIST (" Generated/hXiMinus_MidYVsMult" ), mcParticle.pt (), bestCollisionFT0Mpercentile);
877+ if (mcParticle.pdgCode () == -3312 )
878+ histos.fill (HIST (" Generated/hXiPlus_MidYVsMult" ), mcParticle.pt (), bestCollisionFT0Mpercentile);
879+ if (mcParticle.pdgCode () == 3334 )
880+ histos.fill (HIST (" Generated/hOmegaMinus_MidYVsMult" ), mcParticle.pt (), bestCollisionFT0Mpercentile);
881+ if (mcParticle.pdgCode () == -3334 )
882+ histos.fill (HIST (" Generated/hOmegaPlus_MidYVsMult" ), mcParticle.pt (), bestCollisionFT0Mpercentile);
883+ }
787884 }
788885 }
789886
0 commit comments