diff --git a/PWGCF/MultiparticleCorrelations/Tasks/threeParticleCorrelations.cxx b/PWGCF/MultiparticleCorrelations/Tasks/threeParticleCorrelations.cxx index 35f95f06987..df1c3f1fe27 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); + 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()) { + // 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 (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 (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 + // End of the MC Track QA - // Start of the MC Same-Event correlations - for (const auto& trigger : groupMCTriggers) { - if (trigger.isPhysicalPrimary()) { + // 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()); + 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()) { + for (const auto& associate : groupMCAssociates) { + if (associate.isPhysicalPrimary()) { - if (associate.pdgCode() > 0) { - assocSign = 1; - } else if (associate.pdgCode() < 0) { - assocSign = -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(); + 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 (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,44 +666,35 @@ 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; - } + 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(); + 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 (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); + } } } } @@ -719,51 +705,46 @@ 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; - } - } - } - - 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()); + 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()); + } } } - } - 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&)