From ddf3b45060d549f9d5fc5dc922cf446fe0dfb989 Mon Sep 17 00:00:00 2001 From: Joey Staa Date: Mon, 24 Nov 2025 16:17:16 +0100 Subject: [PATCH 1/2] Fixed a bug for MC Gen events needing to have exactly one MC Rec event --- .../Tasks/threeParticleCorrelations.cxx | 275 ++++++++---------- 1 file changed, 128 insertions(+), 147 deletions(-) diff --git a/PWGCF/MultiparticleCorrelations/Tasks/threeParticleCorrelations.cxx b/PWGCF/MultiparticleCorrelations/Tasks/threeParticleCorrelations.cxx index 35f95f06987..bd6b7c13d19 100644 --- a/PWGCF/MultiparticleCorrelations/Tasks/threeParticleCorrelations.cxx +++ b/PWGCF/MultiparticleCorrelations/Tasks/threeParticleCorrelations.cxx @@ -593,75 +593,70 @@ struct ThreeParticleCorrelations { void processMCSame(MyFilteredMCGenCollision const& collision, MyFilteredMCParticles const&, soa::SmallGroups const& recCollisions) { - if (recCollisions.size() == 1) { - for (const auto& recCollision : recCollisions) { - if (!acceptEvent(recCollision, false)) { - return; - } + if (recCollisions.size() == 1 && acceptEvent(recCollisions.begin(), false)) { + + rQARegistry.fill(HIST("hEventCentrality_MC"), collision.bestCollisionCentFT0C()); + auto groupMCTriggers = mcTriggers->sliceByCached(aod::mcparticle::mcCollisionId, collision.globalIndex(), cache); + auto groupMCAssociates = mcAssociates->sliceByCached(aod::mcparticle::mcCollisionId, collision.globalIndex(), cache); + + // Start of the MC Track QA + for (const auto& track : groupMCAssociates) { + if (track.isPhysicalPrimary()) { + + if (track.pdgCode() > 0) { + assocSign = 1; + } else if (track.pdgCode() < 0) { + assocSign = -1; + } + + if (std::abs(track.pdgCode()) == kPiPlus) { // Pions + rQARegistry.fill(HIST("hPtPion_MC"), track.pt(), collision.bestCollisionCentFT0C(), assocSign); + } else if (std::abs(track.pdgCode()) == kKPlus) { // Kaons + rQARegistry.fill(HIST("hPtKaon_MC"), track.pt(), collision.bestCollisionCentFT0C(), assocSign); + } else if (std::abs(track.pdgCode()) == kProton) { // Protons + rQARegistry.fill(HIST("hPtProton_MC"), track.pt(), collision.bestCollisionCentFT0C(), assocSign); + } + } } - } - - rQARegistry.fill(HIST("hEventCentrality_MC"), collision.bestCollisionCentFT0C()); - auto groupMCTriggers = mcTriggers->sliceByCached(aod::mcparticle::mcCollisionId, collision.globalIndex(), cache); - auto groupMCAssociates = mcAssociates->sliceByCached(aod::mcparticle::mcCollisionId, collision.globalIndex(), cache); - - // Start of the MC Track QA - for (const auto& track : groupMCAssociates) { - if (track.isPhysicalPrimary()) { - - if (track.pdgCode() > 0) { - assocSign = 1; - } else if (track.pdgCode() < 0) { - assocSign = -1; - } - - if (std::abs(track.pdgCode()) == kPiPlus) { // Pions - rQARegistry.fill(HIST("hPtPion_MC"), track.pt(), collision.bestCollisionCentFT0C(), assocSign); - } else if (std::abs(track.pdgCode()) == kKPlus) { // Kaons - rQARegistry.fill(HIST("hPtKaon_MC"), track.pt(), collision.bestCollisionCentFT0C(), assocSign); - } else if (std::abs(track.pdgCode()) == kProton) { // Protons - rQARegistry.fill(HIST("hPtProton_MC"), track.pt(), collision.bestCollisionCentFT0C(), assocSign); - } - } - } - // End of the MC Track QA - - // Start of the MC Same-Event correlations - for (const auto& trigger : groupMCTriggers) { - if (trigger.isPhysicalPrimary()) { - - if (trigger.pdgCode() > 0) { - triggSign = 1; - } else if (trigger.pdgCode() < 0) { - triggSign = -1; - } - rQARegistry.fill(HIST("hPtV0_MC"), trigger.pt(), collision.bestCollisionCentFT0C(), triggSign); - rQARegistry.fill(HIST("hNLambdas"), triggSign, trigger.pt(), collision.bestCollisionCentFT0C()); - - for (const auto& associate : groupMCAssociates) { - if (associate.isPhysicalPrimary()) { - - if (associate.pdgCode() > 0) { - assocSign = 1; - } else if (associate.pdgCode() < 0) { - assocSign = -1; - } - - deltaPhi = RecoDecay::constrainAngle(trigger.phi() - associate.phi(), -constants::math::PIHalf); - deltaEta = trigger.eta() - associate.eta(); - - if (std::abs(associate.pdgCode()) == kPiPlus) { - rSECorrRegistry.fill(HIST("hSameLambdaPion_MC"), deltaPhi, deltaEta, collision.bestCollisionCentFT0C(), collision.posZ(), triggSign, assocSign); - } else if (std::abs(associate.pdgCode()) == kKPlus) { - rSECorrRegistry.fill(HIST("hSameLambdaKaon_MC"), deltaPhi, deltaEta, collision.bestCollisionCentFT0C(), collision.posZ(), triggSign, assocSign); - } else if (std::abs(associate.pdgCode()) == kProton) { - rSECorrRegistry.fill(HIST("hSameLambdaProton_MC"), deltaPhi, deltaEta, collision.bestCollisionCentFT0C(), collision.posZ(), triggSign, assocSign); - } - } - } + // End of the MC Track QA + + // Start of the MC Same-Event correlations + for (const auto& trigger : groupMCTriggers) { + if (trigger.isPhysicalPrimary()) { + + if (trigger.pdgCode() > 0) { + triggSign = 1; + } else if (trigger.pdgCode() < 0) { + triggSign = -1; + } + rQARegistry.fill(HIST("hPtV0_MC"), trigger.pt(), collision.bestCollisionCentFT0C(), triggSign); + rQARegistry.fill(HIST("hNLambdas"), triggSign, trigger.pt(), collision.bestCollisionCentFT0C()); + + for (const auto& associate : groupMCAssociates) { + if (associate.isPhysicalPrimary()) { + + if (associate.pdgCode() > 0) { + assocSign = 1; + } else if (associate.pdgCode() < 0) { + assocSign = -1; + } + + deltaPhi = RecoDecay::constrainAngle(trigger.phi() - associate.phi(), -constants::math::PIHalf); + deltaEta = trigger.eta() - associate.eta(); + + if (std::abs(associate.pdgCode()) == kPiPlus) { + rSECorrRegistry.fill(HIST("hSameLambdaPion_MC"), deltaPhi, deltaEta, collision.bestCollisionCentFT0C(), collision.posZ(), triggSign, assocSign); + } else if (std::abs(associate.pdgCode()) == kKPlus) { + rSECorrRegistry.fill(HIST("hSameLambdaKaon_MC"), deltaPhi, deltaEta, collision.bestCollisionCentFT0C(), collision.posZ(), triggSign, assocSign); + } else if (std::abs(associate.pdgCode()) == kProton) { + rSECorrRegistry.fill(HIST("hSameLambdaProton_MC"), deltaPhi, deltaEta, collision.bestCollisionCentFT0C(), collision.posZ(), triggSign, assocSign); + } + } + } + } } + // End of the MC Same-Event Correlations } - // End of the MC Same-Event Correlations } void processMCMixed(MyFilteredMCGenCollisions const&, MyFilteredMCParticles const&, MyFilteredMCRecCollisions const& recCollisions) @@ -671,46 +666,37 @@ struct ThreeParticleCorrelations { for (const auto& [coll_1, v0_1, coll_2, particle_2] : pairMC) { auto recCollsA1 = recCollisions.sliceBy(perMCCol, coll_1.globalIndex()); auto recCollsA2 = recCollisions.sliceBy(perMCCol, coll_2.globalIndex()); - if (recCollsA1.size() == 1 && recCollsA2.size() == 1) { - for (const auto& recColl_1 : recCollsA1) { - if (!acceptEvent(recColl_1, false)) { - continue; - } - } - for (const auto& recColl_2 : recCollsA2) { - if (!acceptEvent(recColl_2, false)) { - continue; - } - } - } - - auto groupMCTriggers = mcTriggers->sliceByCached(aod::mcparticle::mcCollisionId, coll_1.globalIndex(), cache); - auto groupMCAssociates = mcAssociates->sliceByCached(aod::mcparticle::mcCollisionId, coll_2.globalIndex(), cache); - for (const auto& [trigger, associate] : soa::combinations(soa::CombinationsFullIndexPolicy(groupMCTriggers, groupMCAssociates))) { - if (trigger.isPhysicalPrimary() && associate.isPhysicalPrimary()) { - - if (trigger.pdgCode() > 0) { - triggSign = 1; - } else if (trigger.pdgCode() < 0) { - triggSign = -1; - } - if (associate.pdgCode() > 0) { - assocSign = 1; - } else if (associate.pdgCode() < 0) { - assocSign = -1; - } - - deltaPhi = RecoDecay::constrainAngle(trigger.phi() - associate.phi(), -constants::math::PIHalf); - deltaEta = trigger.eta() - associate.eta(); - - if (std::abs(associate.pdgCode()) == kPiPlus) { - rMECorrRegistry.fill(HIST("hMixLambdaPion_MC"), deltaPhi, deltaEta, coll_1.bestCollisionCentFT0C(), coll_1.posZ(), triggSign, assocSign); - } else if (std::abs(associate.pdgCode()) == kKPlus) { - rMECorrRegistry.fill(HIST("hMixLambdaKaon_MC"), deltaPhi, deltaEta, coll_1.bestCollisionCentFT0C(), coll_1.posZ(), triggSign, assocSign); - } else if (std::abs(associate.pdgCode()) == kProton) { - rMECorrRegistry.fill(HIST("hMixLambdaProton_MC"), deltaPhi, deltaEta, coll_1.bestCollisionCentFT0C(), coll_1.posZ(), triggSign, assocSign); - } - } + if (recCollsA1.size() == 1 && recCollsA2.size() == 1 && acceptEvent(recCollsA1.begin(), false) && acceptEvent(recCollsA2.begin(), false)) { + + LOGF(info, "Size_1 = %i, Size_2 = %i", recCollsA1.size(), recCollsA1.size()); + auto groupMCTriggers = mcTriggers->sliceByCached(aod::mcparticle::mcCollisionId, coll_1.globalIndex(), cache); + auto groupMCAssociates = mcAssociates->sliceByCached(aod::mcparticle::mcCollisionId, coll_2.globalIndex(), cache); + for (const auto& [trigger, associate] : soa::combinations(soa::CombinationsFullIndexPolicy(groupMCTriggers, groupMCAssociates))) { + if (trigger.isPhysicalPrimary() && associate.isPhysicalPrimary()) { + + if (trigger.pdgCode() > 0) { + triggSign = 1; + } else if (trigger.pdgCode() < 0) { + triggSign = -1; + } + if (associate.pdgCode() > 0) { + assocSign = 1; + } else if (associate.pdgCode() < 0) { + assocSign = -1; + } + + deltaPhi = RecoDecay::constrainAngle(trigger.phi() - associate.phi(), -constants::math::PIHalf); + deltaEta = trigger.eta() - associate.eta(); + + if (std::abs(associate.pdgCode()) == kPiPlus) { + rMECorrRegistry.fill(HIST("hMixLambdaPion_MC"), deltaPhi, deltaEta, coll_1.bestCollisionCentFT0C(), coll_1.posZ(), triggSign, assocSign); + } else if (std::abs(associate.pdgCode()) == kKPlus) { + rMECorrRegistry.fill(HIST("hMixLambdaKaon_MC"), deltaPhi, deltaEta, coll_1.bestCollisionCentFT0C(), coll_1.posZ(), triggSign, assocSign); + } else if (std::abs(associate.pdgCode()) == kProton) { + rMECorrRegistry.fill(HIST("hMixLambdaProton_MC"), deltaPhi, deltaEta, coll_1.bestCollisionCentFT0C(), coll_1.posZ(), triggSign, assocSign); + } + } + } } } // End of the MC Mixed-events Correlations @@ -719,53 +705,48 @@ struct ThreeParticleCorrelations { void processMCGen(MyFilteredMCGenCollision const& collision, MyFilteredMCParticles const&, soa::SmallGroups const& recCollisions) { - if (recCollisions.size() == 1) { - for (const auto& recCollision : recCollisions) { - if (!acceptEvent(recCollision, false)) { - return; - } + if (recCollisions.size() == 1 && acceptEvent(recCollisions.begin(), false)) { + + auto groupMCTracks = mcTracks->sliceByCached(aod::mcparticle::mcCollisionId, collision.globalIndex(), cache); + auto groupMCV0s = mcV0s->sliceByCached(aod::mcparticle::mcCollisionId, collision.globalIndex(), cache); + + // Start of the Monte-Carlo generated QA + for (const auto& particle : groupMCTracks) { + if (particle.isPhysicalPrimary()) { + + // Track efficiency - Generated + rMCRegistry.fill(HIST("hGenerated"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); + if (particle.pdgCode() == kPiPlus) { // Pos pions + rMCRegistry.fill(HIST("hGenPionP"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); + } else if (particle.pdgCode() == kPiMinus) { // Neg pions + rMCRegistry.fill(HIST("hGenPionN"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); + } else if (particle.pdgCode() == kKPlus) { // Pos kaons + rMCRegistry.fill(HIST("hGenKaonP"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); + } else if (particle.pdgCode() == kKMinus) { // Neg kaons + rMCRegistry.fill(HIST("hGenKaonN"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); + } else if (particle.pdgCode() == kProton) { // Pos protons + rMCRegistry.fill(HIST("hGenProtonP"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); + } else if (particle.pdgCode() == kProtonBar) { // Neg protons + rMCRegistry.fill(HIST("hGenProtonN"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); + } + } } - } - auto groupMCTracks = mcTracks->sliceByCached(aod::mcparticle::mcCollisionId, collision.globalIndex(), cache); - auto groupMCV0s = mcV0s->sliceByCached(aod::mcparticle::mcCollisionId, collision.globalIndex(), cache); - - // Start of the Monte-Carlo generated QA - for (const auto& particle : groupMCTracks) { - if (particle.isPhysicalPrimary()) { - - // Track efficiency - Generated - rMCRegistry.fill(HIST("hGenerated"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); - if (particle.pdgCode() == kPiPlus) { // Pos pions - rMCRegistry.fill(HIST("hGenPionP"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); - } else if (particle.pdgCode() == kPiMinus) { // Neg pions - rMCRegistry.fill(HIST("hGenPionN"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); - } else if (particle.pdgCode() == kKPlus) { // Pos kaons - rMCRegistry.fill(HIST("hGenKaonP"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); - } else if (particle.pdgCode() == kKMinus) { // Neg kaons - rMCRegistry.fill(HIST("hGenKaonN"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); - } else if (particle.pdgCode() == kProton) { // Pos protons - rMCRegistry.fill(HIST("hGenProtonP"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); - } else if (particle.pdgCode() == kProtonBar) { // Neg protons - rMCRegistry.fill(HIST("hGenProtonN"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); - } - } - } - - for (const auto& particle : groupMCV0s) { - if (particle.isPhysicalPrimary()) { + for (const auto& particle : groupMCV0s) { + if (particle.isPhysicalPrimary()) { - // V0 efficiency - Generated - if (particle.pdgCode() == kLambda0) { // Lambdas - rMCRegistry.fill(HIST("hGenLambdaP"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); - } else if (particle.pdgCode() == kLambda0Bar) { // AntiLambdas - rMCRegistry.fill(HIST("hGenLambdaN"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); - } + // V0 efficiency - Generated + if (particle.pdgCode() == kLambda0) { // Lambdas + rMCRegistry.fill(HIST("hGenLambdaP"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); + } else if (particle.pdgCode() == kLambda0Bar) { // AntiLambdas + rMCRegistry.fill(HIST("hGenLambdaN"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); + } + } } + // End of the Monte-Carlo generated QA } - // End of the Monte-Carlo generated QA } - + void processMCRec(MyFilteredMCRecCollisions::iterator const& collision, MyMCV0s const& v0s, MyFilteredMCTracks const& tracks, aod::McCollisions const&, aod::McParticles const&) { From a6f5cda32496b2ebd5d6023e6c65af059ab2a05b Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Mon, 24 Nov 2025 15:31:44 +0000 Subject: [PATCH 2/2] Please consider the following formatting changes --- .../Tasks/threeParticleCorrelations.cxx | 210 +++++++++--------- 1 file changed, 105 insertions(+), 105 deletions(-) diff --git a/PWGCF/MultiparticleCorrelations/Tasks/threeParticleCorrelations.cxx b/PWGCF/MultiparticleCorrelations/Tasks/threeParticleCorrelations.cxx index bd6b7c13d19..df1c3f1fe27 100644 --- a/PWGCF/MultiparticleCorrelations/Tasks/threeParticleCorrelations.cxx +++ b/PWGCF/MultiparticleCorrelations/Tasks/threeParticleCorrelations.cxx @@ -601,59 +601,59 @@ struct ThreeParticleCorrelations { // Start of the MC Track QA for (const auto& track : groupMCAssociates) { - if (track.isPhysicalPrimary()) { - - if (track.pdgCode() > 0) { - assocSign = 1; - } else if (track.pdgCode() < 0) { - assocSign = -1; - } - - if (std::abs(track.pdgCode()) == kPiPlus) { // Pions - rQARegistry.fill(HIST("hPtPion_MC"), track.pt(), collision.bestCollisionCentFT0C(), assocSign); - } else if (std::abs(track.pdgCode()) == kKPlus) { // Kaons - rQARegistry.fill(HIST("hPtKaon_MC"), track.pt(), collision.bestCollisionCentFT0C(), assocSign); - } else if (std::abs(track.pdgCode()) == kProton) { // Protons - rQARegistry.fill(HIST("hPtProton_MC"), track.pt(), collision.bestCollisionCentFT0C(), assocSign); - } - } + if (track.isPhysicalPrimary()) { + + if (track.pdgCode() > 0) { + assocSign = 1; + } else if (track.pdgCode() < 0) { + assocSign = -1; + } + + if (std::abs(track.pdgCode()) == kPiPlus) { // Pions + rQARegistry.fill(HIST("hPtPion_MC"), track.pt(), collision.bestCollisionCentFT0C(), assocSign); + } else if (std::abs(track.pdgCode()) == kKPlus) { // Kaons + rQARegistry.fill(HIST("hPtKaon_MC"), track.pt(), collision.bestCollisionCentFT0C(), assocSign); + } else if (std::abs(track.pdgCode()) == kProton) { // Protons + rQARegistry.fill(HIST("hPtProton_MC"), track.pt(), collision.bestCollisionCentFT0C(), assocSign); + } + } } // End of the MC Track QA // Start of the MC Same-Event correlations for (const auto& trigger : groupMCTriggers) { - if (trigger.isPhysicalPrimary()) { - - if (trigger.pdgCode() > 0) { - triggSign = 1; - } else if (trigger.pdgCode() < 0) { - triggSign = -1; - } - rQARegistry.fill(HIST("hPtV0_MC"), trigger.pt(), collision.bestCollisionCentFT0C(), triggSign); - rQARegistry.fill(HIST("hNLambdas"), triggSign, trigger.pt(), collision.bestCollisionCentFT0C()); - - for (const auto& associate : groupMCAssociates) { - if (associate.isPhysicalPrimary()) { - - if (associate.pdgCode() > 0) { - assocSign = 1; - } else if (associate.pdgCode() < 0) { - assocSign = -1; - } - - deltaPhi = RecoDecay::constrainAngle(trigger.phi() - associate.phi(), -constants::math::PIHalf); - deltaEta = trigger.eta() - associate.eta(); - - if (std::abs(associate.pdgCode()) == kPiPlus) { - rSECorrRegistry.fill(HIST("hSameLambdaPion_MC"), deltaPhi, deltaEta, collision.bestCollisionCentFT0C(), collision.posZ(), triggSign, assocSign); - } else if (std::abs(associate.pdgCode()) == kKPlus) { - rSECorrRegistry.fill(HIST("hSameLambdaKaon_MC"), deltaPhi, deltaEta, collision.bestCollisionCentFT0C(), collision.posZ(), triggSign, assocSign); - } else if (std::abs(associate.pdgCode()) == kProton) { - rSECorrRegistry.fill(HIST("hSameLambdaProton_MC"), deltaPhi, deltaEta, collision.bestCollisionCentFT0C(), collision.posZ(), triggSign, assocSign); - } - } - } - } + if (trigger.isPhysicalPrimary()) { + + if (trigger.pdgCode() > 0) { + triggSign = 1; + } else if (trigger.pdgCode() < 0) { + triggSign = -1; + } + rQARegistry.fill(HIST("hPtV0_MC"), trigger.pt(), collision.bestCollisionCentFT0C(), triggSign); + rQARegistry.fill(HIST("hNLambdas"), triggSign, trigger.pt(), collision.bestCollisionCentFT0C()); + + for (const auto& associate : groupMCAssociates) { + if (associate.isPhysicalPrimary()) { + + if (associate.pdgCode() > 0) { + assocSign = 1; + } else if (associate.pdgCode() < 0) { + assocSign = -1; + } + + deltaPhi = RecoDecay::constrainAngle(trigger.phi() - associate.phi(), -constants::math::PIHalf); + deltaEta = trigger.eta() - associate.eta(); + + if (std::abs(associate.pdgCode()) == kPiPlus) { + rSECorrRegistry.fill(HIST("hSameLambdaPion_MC"), deltaPhi, deltaEta, collision.bestCollisionCentFT0C(), collision.posZ(), triggSign, assocSign); + } else if (std::abs(associate.pdgCode()) == kKPlus) { + rSECorrRegistry.fill(HIST("hSameLambdaKaon_MC"), deltaPhi, deltaEta, collision.bestCollisionCentFT0C(), collision.posZ(), triggSign, assocSign); + } else if (std::abs(associate.pdgCode()) == kProton) { + rSECorrRegistry.fill(HIST("hSameLambdaProton_MC"), deltaPhi, deltaEta, collision.bestCollisionCentFT0C(), collision.posZ(), triggSign, assocSign); + } + } + } + } } // End of the MC Same-Event Correlations } @@ -668,35 +668,35 @@ struct ThreeParticleCorrelations { auto recCollsA2 = recCollisions.sliceBy(perMCCol, coll_2.globalIndex()); if (recCollsA1.size() == 1 && recCollsA2.size() == 1 && acceptEvent(recCollsA1.begin(), false) && acceptEvent(recCollsA2.begin(), false)) { - LOGF(info, "Size_1 = %i, Size_2 = %i", recCollsA1.size(), recCollsA1.size()); - auto groupMCTriggers = mcTriggers->sliceByCached(aod::mcparticle::mcCollisionId, coll_1.globalIndex(), cache); - auto groupMCAssociates = mcAssociates->sliceByCached(aod::mcparticle::mcCollisionId, coll_2.globalIndex(), cache); - for (const auto& [trigger, associate] : soa::combinations(soa::CombinationsFullIndexPolicy(groupMCTriggers, groupMCAssociates))) { - if (trigger.isPhysicalPrimary() && associate.isPhysicalPrimary()) { - - if (trigger.pdgCode() > 0) { - triggSign = 1; - } else if (trigger.pdgCode() < 0) { - triggSign = -1; - } - if (associate.pdgCode() > 0) { - assocSign = 1; - } else if (associate.pdgCode() < 0) { - assocSign = -1; - } - - deltaPhi = RecoDecay::constrainAngle(trigger.phi() - associate.phi(), -constants::math::PIHalf); - deltaEta = trigger.eta() - associate.eta(); - - if (std::abs(associate.pdgCode()) == kPiPlus) { - rMECorrRegistry.fill(HIST("hMixLambdaPion_MC"), deltaPhi, deltaEta, coll_1.bestCollisionCentFT0C(), coll_1.posZ(), triggSign, assocSign); - } else if (std::abs(associate.pdgCode()) == kKPlus) { - rMECorrRegistry.fill(HIST("hMixLambdaKaon_MC"), deltaPhi, deltaEta, coll_1.bestCollisionCentFT0C(), coll_1.posZ(), triggSign, assocSign); - } else if (std::abs(associate.pdgCode()) == kProton) { - rMECorrRegistry.fill(HIST("hMixLambdaProton_MC"), deltaPhi, deltaEta, coll_1.bestCollisionCentFT0C(), coll_1.posZ(), triggSign, assocSign); - } - } - } + LOGF(info, "Size_1 = %i, Size_2 = %i", recCollsA1.size(), recCollsA1.size()); + auto groupMCTriggers = mcTriggers->sliceByCached(aod::mcparticle::mcCollisionId, coll_1.globalIndex(), cache); + auto groupMCAssociates = mcAssociates->sliceByCached(aod::mcparticle::mcCollisionId, coll_2.globalIndex(), cache); + for (const auto& [trigger, associate] : soa::combinations(soa::CombinationsFullIndexPolicy(groupMCTriggers, groupMCAssociates))) { + if (trigger.isPhysicalPrimary() && associate.isPhysicalPrimary()) { + + if (trigger.pdgCode() > 0) { + triggSign = 1; + } else if (trigger.pdgCode() < 0) { + triggSign = -1; + } + if (associate.pdgCode() > 0) { + assocSign = 1; + } else if (associate.pdgCode() < 0) { + assocSign = -1; + } + + deltaPhi = RecoDecay::constrainAngle(trigger.phi() - associate.phi(), -constants::math::PIHalf); + deltaEta = trigger.eta() - associate.eta(); + + if (std::abs(associate.pdgCode()) == kPiPlus) { + rMECorrRegistry.fill(HIST("hMixLambdaPion_MC"), deltaPhi, deltaEta, coll_1.bestCollisionCentFT0C(), coll_1.posZ(), triggSign, assocSign); + } else if (std::abs(associate.pdgCode()) == kKPlus) { + rMECorrRegistry.fill(HIST("hMixLambdaKaon_MC"), deltaPhi, deltaEta, coll_1.bestCollisionCentFT0C(), coll_1.posZ(), triggSign, assocSign); + } else if (std::abs(associate.pdgCode()) == kProton) { + rMECorrRegistry.fill(HIST("hMixLambdaProton_MC"), deltaPhi, deltaEta, coll_1.bestCollisionCentFT0C(), coll_1.posZ(), triggSign, assocSign); + } + } + } } } // End of the MC Mixed-events Correlations @@ -712,41 +712,41 @@ struct ThreeParticleCorrelations { // Start of the Monte-Carlo generated QA for (const auto& particle : groupMCTracks) { - if (particle.isPhysicalPrimary()) { - - // Track efficiency - Generated - rMCRegistry.fill(HIST("hGenerated"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); - if (particle.pdgCode() == kPiPlus) { // Pos pions - rMCRegistry.fill(HIST("hGenPionP"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); - } else if (particle.pdgCode() == kPiMinus) { // Neg pions - rMCRegistry.fill(HIST("hGenPionN"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); - } else if (particle.pdgCode() == kKPlus) { // Pos kaons - rMCRegistry.fill(HIST("hGenKaonP"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); - } else if (particle.pdgCode() == kKMinus) { // Neg kaons - rMCRegistry.fill(HIST("hGenKaonN"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); - } else if (particle.pdgCode() == kProton) { // Pos protons - rMCRegistry.fill(HIST("hGenProtonP"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); - } else if (particle.pdgCode() == kProtonBar) { // Neg protons - rMCRegistry.fill(HIST("hGenProtonN"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); - } - } + if (particle.isPhysicalPrimary()) { + + // Track efficiency - Generated + rMCRegistry.fill(HIST("hGenerated"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); + if (particle.pdgCode() == kPiPlus) { // Pos pions + rMCRegistry.fill(HIST("hGenPionP"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); + } else if (particle.pdgCode() == kPiMinus) { // Neg pions + rMCRegistry.fill(HIST("hGenPionN"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); + } else if (particle.pdgCode() == kKPlus) { // Pos kaons + rMCRegistry.fill(HIST("hGenKaonP"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); + } else if (particle.pdgCode() == kKMinus) { // Neg kaons + rMCRegistry.fill(HIST("hGenKaonN"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); + } else if (particle.pdgCode() == kProton) { // Pos protons + rMCRegistry.fill(HIST("hGenProtonP"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); + } else if (particle.pdgCode() == kProtonBar) { // Neg protons + rMCRegistry.fill(HIST("hGenProtonN"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); + } + } } for (const auto& particle : groupMCV0s) { - if (particle.isPhysicalPrimary()) { - - // V0 efficiency - Generated - if (particle.pdgCode() == kLambda0) { // Lambdas - rMCRegistry.fill(HIST("hGenLambdaP"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); - } else if (particle.pdgCode() == kLambda0Bar) { // AntiLambdas - rMCRegistry.fill(HIST("hGenLambdaN"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); - } - } + if (particle.isPhysicalPrimary()) { + + // V0 efficiency - Generated + if (particle.pdgCode() == kLambda0) { // Lambdas + rMCRegistry.fill(HIST("hGenLambdaP"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); + } else if (particle.pdgCode() == kLambda0Bar) { // AntiLambdas + rMCRegistry.fill(HIST("hGenLambdaN"), particle.pt(), particle.eta(), collision.bestCollisionCentFT0C()); + } + } } // End of the Monte-Carlo generated QA } } - + void processMCRec(MyFilteredMCRecCollisions::iterator const& collision, MyMCV0s const& v0s, MyFilteredMCTracks const& tracks, aod::McCollisions const&, aod::McParticles const&) {