Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
233 changes: 107 additions & 126 deletions PWGCF/MultiparticleCorrelations/Tasks/threeParticleCorrelations.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -593,75 +593,70 @@ struct ThreeParticleCorrelations {
void processMCSame(MyFilteredMCGenCollision const& collision, MyFilteredMCParticles const&, soa::SmallGroups<MCRecCollisions> 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)
Expand All @@ -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);
}
}
}
}
Expand All @@ -719,51 +705,46 @@ struct ThreeParticleCorrelations {
void processMCGen(MyFilteredMCGenCollision const& collision, MyFilteredMCParticles const&, soa::SmallGroups<MCRecCollisions> 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&)
Expand Down
Loading