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
152 changes: 105 additions & 47 deletions PWGLF/Tasks/Strangeness/hStrangeCorrelation.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@
Configurable<bool> applyEfficiencyPropagation{"applyEfficiencyPropagation", false, "propagate also the efficiency uncertainty"};
Configurable<bool> applyPurityHadron{"applyPurityHadron", false, "apply the purity correction for associated hadrons"};
Configurable<bool> applyPurityTrigger{"applyPurityTrigger", false, "apply the purity correction for trigger particle"};
Configurable<bool> applyEffAsFunctionOfMult{"applyEffAsFunctionOfMult", false, "apply efficiency as a function of multiplicity as well"};
} efficiencyFlags;
Configurable<std::string> ccdburl{"ccdburl", "http://alice-ccdb.cern.ch", "url of the ccdb repository to use"};
Configurable<std::string> efficiencyCCDBPath{"efficiencyCCDBPath", "GLO/Config/GeometryAligned", "Path of the efficiency corrections"};
Expand Down Expand Up @@ -215,6 +216,7 @@

// objects to use for efficiency corrections
TH2F* hEfficiencyTrigger;
TH3F* hEfficiencyTriggerMult;
TH2F* hEfficiencyPion;
TH2F* hEfficiencyK0Short;
TH2F* hEfficiencyLambda;
Expand All @@ -224,9 +226,12 @@
TH2F* hEfficiencyOmegaMinus;
TH2F* hEfficiencyOmegaPlus;
TH2F* hEfficiencyHadron;
TH3F* hEfficiencyHadronMult;
TH1F* hPurityHadron;
TH2F* hPurityHadronMult;
// objects to propagate the efficiency uncertainty
TH2F* hEfficiencyUncertaintyTrigger;
TH3F* hEfficiencyUncertaintyTriggerMult;
TH2F* hEfficiencyUncertaintyPion;
TH2F* hEfficiencyUncertaintyK0Short;
TH2F* hEfficiencyUncertaintyLambda;
Expand All @@ -236,7 +241,9 @@
TH2F* hEfficiencyUncertaintyOmegaMinus;
TH2F* hEfficiencyUncertaintyOmegaPlus;
TH2F* hEfficiencyUncertaintyHadron;
TH3F* hEfficiencyUncertaintyHadronMult;
TH1F* hPurityUncertaintyHadron;
TH2F* hPurityUncertaintyHadronMult;

using BinningType = ColumnBinningPolicy<aod::collision::PosZ, aod::cent::CentFT0M>;
using BinningTypePbPb = ColumnBinningPolicy<aod::collision::PosZ, aod::cent::CentFT0C>;
Expand All @@ -262,8 +269,8 @@

std::vector<std::vector<float>> axisRanges;

const float ctauxiPDG = 4.91; // from PDG

Check failure on line 272 in PWGLF/Tasks/Strangeness/hStrangeCorrelation.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[pdg/explicit-code]

Avoid hard-coded PDG codes. Use named values from PDG_t or o2::constants::physics::Pdg instead.
const float ctauomegaPDG = 2.461; // from PDG

Check failure on line 273 in PWGLF/Tasks/Strangeness/hStrangeCorrelation.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[pdg/explicit-code]

Avoid hard-coded PDG codes. Use named values from PDG_t or o2::constants::physics::Pdg instead.

/// Function to aid in calculating delta-phi
/// \param phi1 first phi value
Expand Down Expand Up @@ -307,6 +314,7 @@
}

hEfficiencyTrigger = static_cast<TH2F*>(listEfficiencies->FindObject("hEfficiencyTrigger"));
hEfficiencyTriggerMult = static_cast<TH3F*>(listEfficiencies->FindObject("hEfficiencyTriggerMult"));
hEfficiencyK0Short = static_cast<TH2F*>(listEfficiencies->FindObject("hEfficiencyK0Short"));
hEfficiencyLambda = static_cast<TH2F*>(listEfficiencies->FindObject("hEfficiencyLambda"));
hEfficiencyAntiLambda = static_cast<TH2F*>(listEfficiencies->FindObject("hEfficiencyAntiLambda"));
Expand All @@ -315,9 +323,12 @@
hEfficiencyOmegaMinus = static_cast<TH2F*>(listEfficiencies->FindObject("hEfficiencyOmegaMinus"));
hEfficiencyOmegaPlus = static_cast<TH2F*>(listEfficiencies->FindObject("hEfficiencyOmegaPlus"));
hEfficiencyHadron = static_cast<TH2F*>(listEfficiencies->FindObject("hEfficiencyHadron"));
hEfficiencyHadronMult = static_cast<TH3F*>(listEfficiencies->FindObject("hEfficiencyHadronMult"));
hEfficiencyPion = static_cast<TH2F*>(listEfficiencies->FindObject("hEfficiencyPion"));
hPurityHadron = static_cast<TH1F*>(listEfficiencies->FindObject("hPurityHadron"));
hPurityHadronMult = static_cast<TH2F*>(listEfficiencies->FindObject("hPurityHadronMult"));
hEfficiencyUncertaintyTrigger = static_cast<TH2F*>(listEfficiencies->FindObject("hEfficiencyUncertaintyTrigger"));
hEfficiencyUncertaintyTriggerMult = static_cast<TH3F*>(listEfficiencies->FindObject("hEfficiencyUncertaintyTriggerMult"));
hEfficiencyUncertaintyK0Short = static_cast<TH2F*>(listEfficiencies->FindObject("hEfficiencyUncertaintyK0Short"));
hEfficiencyUncertaintyLambda = static_cast<TH2F*>(listEfficiencies->FindObject("hEfficiencyUncertaintyLambda"));
hEfficiencyUncertaintyAntiLambda = static_cast<TH2F*>(listEfficiencies->FindObject("hEfficiencyUncertaintyAntiLambda"));
Expand All @@ -327,7 +338,9 @@
hEfficiencyUncertaintyOmegaPlus = static_cast<TH2F*>(listEfficiencies->FindObject("hEfficiencyUncertaintyOmegaPlus"));
hEfficiencyUncertaintyPion = static_cast<TH2F*>(listEfficiencies->FindObject("hEfficiencyUncertaintyPion"));
hEfficiencyUncertaintyHadron = static_cast<TH2F*>(listEfficiencies->FindObject("hEfficiencyUncertaintyHadron"));
hEfficiencyUncertaintyHadronMult = static_cast<TH3F*>(listEfficiencies->FindObject("hEfficiencyUncertaintyHadronMult"));
hPurityUncertaintyHadron = static_cast<TH1F*>(listEfficiencies->FindObject("hPurityUncertaintyHadron"));
hPurityUncertaintyHadronMult = static_cast<TH2F*>(listEfficiencies->FindObject("hPurityUncertaintyHadronMult"));
if (efficiencyFlags.applyEfficiencyPropagation && !hEfficiencyUncertaintyTrigger)
LOG(fatal) << "Problem getting hEfficiencyUncertaintyTrigger!";
LOG(info) << "Efficiencies now loaded for " << mRunNumber;
Expand Down Expand Up @@ -524,9 +537,9 @@
return false;
// dcacascdaughters
float ptDepCut = systCuts.dcaCacsDauPar0;
if (casc.pt() > 1 && casc.pt() < 4)

Check failure on line 540 in PWGLF/Tasks/Strangeness/hStrangeCorrelation.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
ptDepCut = systCuts.dcaCacsDauPar1;
else if (casc.pt() > 4)

Check failure on line 542 in PWGLF/Tasks/Strangeness/hStrangeCorrelation.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
ptDepCut = systCuts.dcaCacsDauPar2;
if (casc.dcacascdaughters() > ptDepCut)
return false;
Expand Down Expand Up @@ -559,7 +572,7 @@
double phaseProton = (-0.3 * B * assoc[2]) / (2 * assoc[1]);
double phaseTrack = (-0.3 * B * trigg[2]) / (2 * trigg[1]);

for (double r = 0.8; r <= 2.5; r += 0.05) {

Check failure on line 575 in PWGLF/Tasks/Strangeness/hStrangeCorrelation.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
dPhiStar = dPhi + std::asin(phaseProton * r) - std::asin(phaseTrack * r);
dPhiStarMean += (dPhiStar / 34);
}
Expand Down Expand Up @@ -722,7 +735,7 @@
if (doDeltaPhiStarCheck) {
double deltaPhiStar = calculateAverageDeltaPhiStar(triggForDeltaPhiStar, assocForDeltaPhiStar, bField);
double deltaPhiStarPion = calculateAverageDeltaPhiStar(triggForDeltaPhiStar, assocForDeltaPhiStarPion, bField);
if ((Index == 0 && triggSign > 0) || (Index == 1 && triggSign > 0) || (Index == 2 && triggSign < 0)) {

Check failure on line 738 in PWGLF/Tasks/Strangeness/hStrangeCorrelation.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
histos.fill(HIST("sameEvent/LeftBg/") + HIST(kV0names[Index]) + HIST("DeltaPhiStar"), deltaPhiStar, trigg.eta() - etaProton, 0.5);
if (Index == 0) {
histos.fill(HIST("sameEvent/LeftBg/") + HIST(kV0names[Index]) + HIST("DeltaPhiStar"), deltaPhiStarPion, trigg.eta() - etaPion, -0.5);
Expand All @@ -737,18 +750,18 @@
}
if (assocCandidate.compatible(Index, systCuts.dEdxCompatibility) && (!doMCassociation || assocCandidate.mcTrue(Index)) && (!doAssocPhysicalPrimary || assocCandidate.mcPhysicalPrimary()) && !mixing && -massWindowConfigurations.maxPeakNSigma < assocCandidate.invMassNSigma(Index) && assocCandidate.invMassNSigma(Index) < +massWindowConfigurations.maxPeakNSigma) {
fillCorrelationHistogram(histos.get<THn>(HIST("sameEvent/Signal/") + HIST(kV0names[Index])), binFillThn, etaWeight, efficiency * efficiencyTrigg, totalEffUncert, purityTrigg, purityTriggErr);
if (std::abs(deltaphi) < 0.8 && doITSClustersQA) {

Check failure on line 753 in PWGLF/Tasks/Strangeness/hStrangeCorrelation.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
histos.fill(HIST("hITSClusters") + HIST(kV0names[Index]) + HIST("NegativeDaughterToward"), ptassoc, negtrack.itsNCls(), assoc.v0radius());
histos.fill(HIST("hITSClusters") + HIST(kV0names[Index]) + HIST("PositiveDaughterToward"), ptassoc, postrack.itsNCls(), assoc.v0radius());
}
if (std::abs(deltaphi) > 1 && std::abs(deltaphi) < 2 && doITSClustersQA) {

Check failure on line 757 in PWGLF/Tasks/Strangeness/hStrangeCorrelation.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
histos.fill(HIST("hITSClusters") + HIST(kV0names[Index]) + HIST("NegativeDaughterTransverse"), ptassoc, negtrack.itsNCls(), assoc.v0radius());
histos.fill(HIST("hITSClusters") + HIST(kV0names[Index]) + HIST("PositiveDaughterTransverse"), ptassoc, postrack.itsNCls(), assoc.v0radius());
}
if (doDeltaPhiStarCheck) {
double deltaPhiStar = calculateAverageDeltaPhiStar(triggForDeltaPhiStar, assocForDeltaPhiStar, bField);
double deltaPhiStarPion = calculateAverageDeltaPhiStar(triggForDeltaPhiStar, assocForDeltaPhiStarPion, bField);
if ((Index == 0 && triggSign > 0) || (Index == 1 && triggSign > 0) || (Index == 2 && triggSign < 0)) {

Check failure on line 764 in PWGLF/Tasks/Strangeness/hStrangeCorrelation.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
histos.fill(HIST("sameEvent/Signal/") + HIST(kV0names[Index]) + HIST("DeltaPhiStar"), deltaPhiStar, trigg.eta() - etaProton, 0.5);
if (Index == 0) {
histos.fill(HIST("sameEvent/Signal/") + HIST(kV0names[Index]) + HIST("DeltaPhiStar"), deltaPhiStarPion, trigg.eta() - etaPion, -0.5);
Expand All @@ -766,7 +779,7 @@
if (doDeltaPhiStarCheck) {
double deltaPhiStar = calculateAverageDeltaPhiStar(triggForDeltaPhiStar, assocForDeltaPhiStar, bField);
double deltaPhiStarPion = calculateAverageDeltaPhiStar(triggForDeltaPhiStar, assocForDeltaPhiStarPion, bField);
if ((Index == 0 && triggSign > 0) || (Index == 1 && triggSign > 0) || (Index == 2 && triggSign < 0)) {

Check failure on line 782 in PWGLF/Tasks/Strangeness/hStrangeCorrelation.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
histos.fill(HIST("sameEvent/RightBg/") + HIST(kV0names[Index]) + HIST("DeltaPhiStar"), deltaPhiStar, trigg.eta() - etaProton, 0.5);
if (Index == 0) {
histos.fill(HIST("sameEvent/RightBg/") + HIST(kV0names[Index]) + HIST("DeltaPhiStar"), deltaPhiStarPion, trigg.eta() - etaPion, -0.5);
Expand Down Expand Up @@ -806,13 +819,28 @@
float purityTriggErr = 0.0f;
if (!mixing) {
if (efficiencyFlags.applyEfficiencyForTrigger) {
efficiencyTrigg = hEfficiencyTrigger->Interpolate(trigg.pt(), trigg.eta());
if (efficiencyFlags.applyPurityTrigger)
purityTrigg = hPurityHadron->Interpolate(trigg.pt());
if (efficiencyFlags.applyEffAsFunctionOfMult) {
efficiencyTrigg = hEfficiencyTriggerMult->Interpolate(trigg.pt(), trigg.eta(), mult);
} else {
efficiencyTrigg = hEfficiencyTrigger->Interpolate(trigg.pt(), trigg.eta());
}
if (efficiencyFlags.applyPurityTrigger) {
if (efficiencyFlags.applyEffAsFunctionOfMult)
purityTrigg = hPurityHadronMult->Interpolate(trigg.pt(), mult);
else
purityTrigg = hPurityHadron->Interpolate(trigg.pt());
}
if (efficiencyFlags.applyEfficiencyPropagation) {
efficiencyTriggError = hEfficiencyUncertaintyTrigger->Interpolate(trigg.pt(), trigg.eta());
if (efficiencyFlags.applyPurityTrigger)
purityTriggErr = hPurityUncertaintyHadron->Interpolate(trigg.pt());
if (efficiencyFlags.applyEffAsFunctionOfMult)
efficiencyTriggError = hEfficiencyUncertaintyTriggerMult->Interpolate(trigg.pt(), trigg.eta(), mult);
else
efficiencyTriggError = hEfficiencyUncertaintyTrigger->Interpolate(trigg.pt(), trigg.eta());
if (efficiencyFlags.applyPurityTrigger) {
if (efficiencyFlags.applyEffAsFunctionOfMult)
purityTriggErr = hPurityUncertaintyHadronMult->Interpolate(trigg.pt(), mult);
else
purityTriggErr = hPurityUncertaintyHadron->Interpolate(trigg.pt());
}
}
if (efficiencyTrigg == 0) { // check for zero efficiency, do not apply if the case
efficiencyTrigg = 1;
Expand Down Expand Up @@ -984,13 +1012,27 @@
if (!mixing) {

if (efficiencyFlags.applyEfficiencyForTrigger) {
efficiencyTrigger = hEfficiencyTrigger->Interpolate(trigg.pt(), trigg.eta());
if (efficiencyFlags.applyPurityTrigger)
purityTrigger = hPurityHadron->Interpolate(trigg.pt());
if (efficiencyFlags.applyEffAsFunctionOfMult)
efficiencyTrigger = hEfficiencyTriggerMult->Interpolate(trigg.pt(), trigg.eta(), mult);
else
efficiencyTrigger = hEfficiencyTrigger->Interpolate(trigg.pt(), trigg.eta());
if (efficiencyFlags.applyPurityTrigger) {
if (efficiencyFlags.applyEffAsFunctionOfMult)
purityTrigger = hPurityHadronMult->Interpolate(trigg.pt(), mult);
else
purityTrigger = hPurityHadron->Interpolate(trigg.pt());
}
if (efficiencyFlags.applyEfficiencyPropagation) {
efficiencyTriggerError = hEfficiencyUncertaintyTrigger->Interpolate(trigg.pt(), trigg.eta());
if (efficiencyFlags.applyPurityTrigger)
purityTriggerError = hPurityUncertaintyHadron->Interpolate(trigg.pt());
if (efficiencyFlags.applyEffAsFunctionOfMult)
efficiencyTriggerError = hEfficiencyUncertaintyTriggerMult->Interpolate(trigg.pt(), trigg.eta(), mult);
else
efficiencyTriggerError = hEfficiencyUncertaintyTrigger->Interpolate(trigg.pt(), trigg.eta());
if (efficiencyFlags.applyPurityTrigger) {
if (efficiencyFlags.applyEffAsFunctionOfMult)
purityTriggerError = hPurityUncertaintyHadronMult->Interpolate(trigg.pt(), mult);
else
purityTriggerError = hPurityUncertaintyHadron->Interpolate(trigg.pt());
}
}
if (efficiencyTrigger == 0) { // check for zero efficiency, do not apply if the case
efficiencyTrigger = 1;
Expand Down Expand Up @@ -1057,13 +1099,27 @@
if (efficiencyFlags.applyEfficiencyPropagation)
efficiencyUncertainty = hEfficiencyUncertaintyPion->Interpolate(ptassoc, assoc.eta());
} else {
efficiency = hEfficiencyHadron->Interpolate(ptassoc, assoc.eta());
if (efficiencyFlags.applyPurityHadron)
purity = hPurityHadron->Interpolate(ptassoc);
if (efficiencyFlags.applyEffAsFunctionOfMult)
efficiency = hEfficiencyHadronMult->Interpolate(ptassoc, assoc.eta(), mult);
else
efficiency = hEfficiencyHadron->Interpolate(ptassoc, assoc.eta());
if (efficiencyFlags.applyPurityHadron) {
if (efficiencyFlags.applyEffAsFunctionOfMult)
purity = hPurityHadronMult->Interpolate(ptassoc, mult);
else
purity = hPurityHadron->Interpolate(ptassoc);
}
if (efficiencyFlags.applyEfficiencyPropagation) {
efficiencyUncertainty = hEfficiencyUncertaintyHadron->Interpolate(ptassoc, assoc.eta());
if (efficiencyFlags.applyPurityHadron)
purityUncertainty = hPurityUncertaintyHadron->Interpolate(ptassoc);
if (efficiencyFlags.applyEffAsFunctionOfMult)
efficiencyUncertainty = hEfficiencyUncertaintyHadronMult->Interpolate(ptassoc, assoc.eta(), mult);
else
efficiencyUncertainty = hEfficiencyUncertaintyHadron->Interpolate(ptassoc, assoc.eta());
if (efficiencyFlags.applyPurityHadron) {
if (efficiencyFlags.applyEffAsFunctionOfMult)
purityUncertainty = hPurityUncertaintyHadronMult->Interpolate(ptassoc, mult);
else
purityUncertainty = hPurityUncertaintyHadron->Interpolate(ptassoc);
}
}
}
}
Expand Down Expand Up @@ -1409,9 +1465,9 @@

// MC generated plots
if (doprocessMCGenerated) {
histos.add("Generated/hTrigger", "", kTH2F, {axesConfigurations.axisPtQA, axesConfigurations.axisEta});
histos.add("Generated/hTrigger", "", kTH3F, {axesConfigurations.axisPtQA, axesConfigurations.axisEta, axesConfigurations.axisMult});
for (int i = 0; i < 9; i++) {
histos.add(fmt::format("Generated/h{}", kParticlenames[i]).c_str(), "", kTH2F, {axesConfigurations.axisPtQA, axesConfigurations.axisEta});
histos.add(fmt::format("Generated/h{}", kParticlenames[i]).c_str(), "", kTH3F, {axesConfigurations.axisPtQA, axesConfigurations.axisEta, axesConfigurations.axisMult});
}
histos.addClone("Generated/", "GeneratedWithPV/");

Expand Down Expand Up @@ -1675,28 +1731,28 @@
histos.fill(HIST("hTriggerPrimaryEtaVsPt"), track.pt(), track.eta(), collision.centFT0M());
histos.fill(HIST("hTrackEtaVsPtVsPhi"), track.pt(), track.eta(), track.phi(), weight);
}
for (auto const& assocTrack : assocHadrons) {
auto assoc = assocTrack.track_as<TracksComplete>();
if (!isValidAssocHadron(assoc))
continue;
float efficiency = 1.0f;
float purity = 1.0f;
if (efficiencyFlags.applyEfficiencyCorrection) {
efficiency = hEfficiencyHadron->Interpolate(assoc.pt(), assoc.eta());
if (efficiencyFlags.applyPurityHadron)
purity = hPurityHadron->Interpolate(assoc.pt());
}
if (efficiency == 0) { // check for zero efficiency, do not apply if the case
efficiency = 1;
}
float weight = efficiencyFlags.applyEfficiencyCorrection ? purity / efficiency : 1.0f;
histos.fill(HIST("hAssocHadronsAllSelectedEtaVsPt"), assoc.pt(), assoc.eta(), collision.centFT0M());
histos.fill(HIST("hAssocPtResolution"), assoc.pt(), assocTrack.mcOriginalPt());
if (doAssocPhysicalPrimary && !assocTrack.mcPhysicalPrimary())
continue;
histos.fill(HIST("hAssocPrimaryEtaVsPt"), assoc.pt(), assoc.eta(), collision.centFT0M());
histos.fill(HIST("hAsssocTrackEtaVsPtVsPhi"), assoc.pt(), assoc.eta(), assoc.phi(), weight);
}
for (auto const& assocTrack : assocHadrons) {
auto assoc = assocTrack.track_as<TracksComplete>();
if (!isValidAssocHadron(assoc))
continue;
float efficiency = 1.0f;
float purity = 1.0f;
if (efficiencyFlags.applyEfficiencyCorrection) {
efficiency = hEfficiencyHadron->Interpolate(assoc.pt(), assoc.eta());
if (efficiencyFlags.applyPurityHadron)
purity = hPurityHadron->Interpolate(assoc.pt());
}
if (efficiency == 0) { // check for zero efficiency, do not apply if the case
efficiency = 1;
}
float weight = efficiencyFlags.applyEfficiencyCorrection ? purity / efficiency : 1.0f;
histos.fill(HIST("hAssocHadronsAllSelectedEtaVsPt"), assoc.pt(), assoc.eta(), collision.centFT0M(), weight);
histos.fill(HIST("hAssocPtResolution"), assoc.pt(), assocTrack.mcOriginalPt());
if (doAssocPhysicalPrimary && !assocTrack.mcPhysicalPrimary())
continue;
histos.fill(HIST("hAssocPrimaryEtaVsPt"), assoc.pt(), assoc.eta(), collision.centFT0M());
histos.fill(HIST("hAsssocTrackEtaVsPtVsPhi"), assoc.pt(), assoc.eta(), assoc.phi(), weight);
}

// ________________________________________________
Expand Down Expand Up @@ -2172,10 +2228,10 @@
constexpr int Index = i.value;
if (i == 0 || i == 7) {
if (std::abs(mcParticle.pdgCode()) == kPdgCodes[i])
histos.fill(HIST("Generated/h") + HIST(kParticlenames[Index]), mcParticle.pt(), mcParticle.eta());
histos.fill(HIST("Generated/h") + HIST(kParticlenames[Index]), mcParticle.pt(), mcParticle.eta(), 1);
} else {
if (mcParticle.pdgCode() == kPdgCodes[i])
histos.fill(HIST("Generated/h") + HIST(kParticlenames[Index]), mcParticle.pt(), mcParticle.eta());
histos.fill(HIST("Generated/h") + HIST(kParticlenames[Index]), mcParticle.pt(), mcParticle.eta(), 1);
}
});
}
Expand Down Expand Up @@ -2265,7 +2321,7 @@
double geta = mcParticle.eta();
double gpt = mcParticle.pt();
if (std::abs(mcParticle.pdgCode()) == PDG_t::kPiPlus || std::abs(mcParticle.pdgCode()) == PDG_t::kKPlus || std::abs(mcParticle.pdgCode()) == PDG_t::kProton || std::abs(mcParticle.pdgCode()) == PDG_t::kElectron || std::abs(mcParticle.pdgCode()) == PDG_t::kMuonMinus)
histos.fill(HIST("GeneratedWithPV/hTrigger"), gpt, geta);
histos.fill(HIST("GeneratedWithPV/hTrigger"), gpt, geta, bestCollisionFT0Mpercentile);
if (mcParticle.pdgCode() == PDG_t::kLambda0 && !doAssocPhysicalPrimaryInGen && !mcParticle.isPhysicalPrimary()) {
if (std::abs(geta) > etaSel) {
continue;
Expand Down Expand Up @@ -2311,14 +2367,14 @@
constexpr int Index = i.value;
if (i == 0 || i == 7) {
if (std::abs(mcParticle.pdgCode()) == kPdgCodes[i]) {
histos.fill(HIST("GeneratedWithPV/h") + HIST(kParticlenames[Index]), gpt, geta);
histos.fill(HIST("GeneratedWithPV/h") + HIST(kParticlenames[Index]), gpt, geta, bestCollisionFT0Mpercentile);
if (std::abs(mcParticle.y()) < ySel)
histos.fill(HIST("GeneratedWithPV/h") + HIST(kParticlenames[Index]) + HIST("_MidYVsMult"), gpt, bestCollisionFT0Mpercentile);
}

} else {
if (mcParticle.pdgCode() == kPdgCodes[i]) {
histos.fill(HIST("GeneratedWithPV/h") + HIST(kParticlenames[Index]), gpt, geta);
histos.fill(HIST("GeneratedWithPV/h") + HIST(kParticlenames[Index]), gpt, geta, bestCollisionFT0Mpercentile);
if (std::abs(mcParticle.y()) < ySel)
histos.fill(HIST("GeneratedWithPV/h") + HIST(kParticlenames[Index]) + HIST("_MidYVsMult"), gpt, bestCollisionFT0Mpercentile);
}
Expand Down Expand Up @@ -2432,7 +2488,9 @@
if (!doTriggPhysicalPrimary || mcParticle.isPhysicalPrimary()) {
triggerIndices.emplace_back(iteratorNum);
histos.fill(HIST("ClosureTest/hTrigger"), gpt, geta, bestCollisionFT0Mpercentile);
if (doCorrelationHadron) {
}
if (doCorrelationHadron) {
if (!doAssocPhysicalPrimary || mcParticle.isPhysicalPrimary()) {
assocHadronIndices.emplace_back(iteratorNum);
histos.fill(HIST("ClosureTest/hHadron"), gpt, geta, gphi);
}
Expand Down
Loading