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
285 changes: 143 additions & 142 deletions PWGLF/Tasks/Strangeness/strange-yield-pbpb.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,6 @@

using cascMCCoresFull = soa::Join<aod::CascMCCores, aod::CascMCCollRefs>;


using straCollisonFull = soa::Join<aod::StraCollisions, aod::StraCents, aod::StraEvSels, aod::StraStamps>::iterator;
using straCollisonFullMC = soa::Join<aod::StraCollisions, aod::StraCents, aod::StraEvSels, aod::StraStamps, aod::StraCollLabels>::iterator;

Expand Down Expand Up @@ -649,7 +648,7 @@
histos.fill(HIST(particlenames[partID]) + HIST("/hV0CosPA"), pT, cand.v0cosPA(coll.posX(), coll.posY(), coll.posZ()));
histos.fill(HIST(particlenames[partID]) + HIST("/hV0Radius"), pT, cand.v0radius());
histos.fill(HIST(particlenames[partID]) + HIST("/hDCAV0Daughters"), pT, cand.dcaV0daughters());
histos.fill(HIST(particlenames[partID]) + HIST("/hDCAV0ToPV"), pT, fabs(cand.dcav0topv(coll.posX(), coll.posY(), coll.posZ())));

Check warning on line 651 in PWGLF/Tasks/Strangeness/strange-yield-pbpb.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[std-prefix]

Use std:: prefix for names from the std namespace.
histos.fill(HIST(particlenames[partID]) + HIST("/hMassLambdaDau"), pT, cand.mLambda());
histos.fill(HIST(particlenames[partID]) + HIST("/hNctau"), pT, ctau);
}
Expand Down Expand Up @@ -1017,50 +1016,50 @@
};

const std::array<selectionCheck, 13> checks = {{
{true, true, 0.0}, // All collisions
{requireIsTriggerTVX, collision.selection_bit(aod::evsel::kIsTriggerTVX), 1.0}, // Triggered by FT0M
{true, fabs(collision.posZ()) <= 10.f, 2.0}, // Vertex-Z selected
{rejectITSROFBorder, collision.selection_bit(o2::aod::evsel::kNoITSROFrameBorder), 3.0}, // Not at ITS ROF border
{rejectTFBorder, collision.selection_bit(o2::aod::evsel::kNoTimeFrameBorder), 4.0}, // Not at TF border
{requireIsVertexITSTPC, collision.selection_bit(o2::aod::evsel::kIsVertexITSTPC), 5.0}, // At least one ITS-TPC track
{requireIsGoodZvtxFT0VsPV, collision.selection_bit(o2::aod::evsel::kIsGoodZvtxFT0vsPV), 6.0}, // PV position consistency
{requireIsVertexTOFmatched, collision.selection_bit(o2::aod::evsel::kIsVertexTOFmatched), 7.0}, // PV with TOF match
{requireIsVertexTRDmatched, collision.selection_bit(o2::aod::evsel::kIsVertexTRDmatched), 8.0}, // PV with TRD match
{rejectSameBunchPileup, collision.selection_bit(o2::aod::evsel::kNoSameBunchPileup), 9.0}, // No same-bunch pileup
{requireNoCollInTimeRangeStd, collision.selection_bit(o2::aod::evsel::kNoCollInTimeRangeStandard), 10.0}, // No collision within +-10 µs
{requireNoCollInTimeRangeNarrow, collision.selection_bit(o2::aod::evsel::kNoCollInTimeRangeNarrow), 11.0}, // No collision within +-4 µs
{minOccupancy > 0, collision.trackOccupancyInTimeRange() >= minOccupancy, 12.0}, // Above min occupancy
{true, true, 0.0}, // All collisions
{requireIsTriggerTVX, collision.selection_bit(aod::evsel::kIsTriggerTVX), 1.0}, // Triggered by FT0M
{true, fabs(collision.posZ()) <= 10.f, 2.0}, // Vertex-Z selected

Check warning on line 1021 in PWGLF/Tasks/Strangeness/strange-yield-pbpb.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[std-prefix]

Use std:: prefix for names from the std namespace.
{rejectITSROFBorder, collision.selection_bit(o2::aod::evsel::kNoITSROFrameBorder), 3.0}, // Not at ITS ROF border
{rejectTFBorder, collision.selection_bit(o2::aod::evsel::kNoTimeFrameBorder), 4.0}, // Not at TF border
{requireIsVertexITSTPC, collision.selection_bit(o2::aod::evsel::kIsVertexITSTPC), 5.0}, // At least one ITS-TPC track
{requireIsGoodZvtxFT0VsPV, collision.selection_bit(o2::aod::evsel::kIsGoodZvtxFT0vsPV), 6.0}, // PV position consistency
{requireIsVertexTOFmatched, collision.selection_bit(o2::aod::evsel::kIsVertexTOFmatched), 7.0}, // PV with TOF match
{requireIsVertexTRDmatched, collision.selection_bit(o2::aod::evsel::kIsVertexTRDmatched), 8.0}, // PV with TRD match
{rejectSameBunchPileup, collision.selection_bit(o2::aod::evsel::kNoSameBunchPileup), 9.0}, // No same-bunch pileup
{requireNoCollInTimeRangeStd, collision.selection_bit(o2::aod::evsel::kNoCollInTimeRangeStandard), 10.0}, // No collision within +-10 µs
{requireNoCollInTimeRangeNarrow, collision.selection_bit(o2::aod::evsel::kNoCollInTimeRangeNarrow), 11.0}, // No collision within +-4 µs
{minOccupancy > 0, collision.trackOccupancyInTimeRange() >= minOccupancy, 12.0}, // Above min occupancy
}};

for (const auto& check : checks) {
if (check.selection && !check.condition) {
return false;
}
if (fillQA && check.selection) {
histos.fill(HIST("eventQA/hEventSelection"), check.qaBin);
}
if (check.selection && !check.condition) {
return false;
}
if (fillQA && check.selection) {
histos.fill(HIST("eventQA/hEventSelection"), check.qaBin);
}
}

// Additional checks
if (maxOccupancy > 0 && collision.trackOccupancyInTimeRange() > maxOccupancy) {
return false;
return false;
}
if (fillQA) {
histos.fill(HIST("eventQA/hEventSelection"), 13.0); // Below max occupancy
histos.fill(HIST("eventQA/hEventSelection"), 13.0); // Below max occupancy
}

if (studyUPConly && !collision.isUPC()) {
return false;
return false;
}
if (collision.isUPC() && fillQA) {
histos.fill(HIST("eventQA/hEventSelection"), 14.0); // UPC compatible
histos.fill(HIST("eventQA/hEventSelection"), 14.0); // UPC compatible
}

if (useUPCflag && collision.flags() < 1) {
return false;
return false;
}
if (collision.flags() >= 1 && fillQA) {
histos.fill(HIST("eventQA/hEventSelection"), 15.0); // UPC event
histos.fill(HIST("eventQA/hEventSelection"), 15.0); // UPC event
}

return true;
Expand Down Expand Up @@ -1160,26 +1159,26 @@
bitMap.set(selCascRadius);
if (casc.cascradius() < casccuts.cascradiusMax)
bitMap.set(selCascRadiusMax);
if (doBachelorBaryonCut && (casc.bachBaryonCosPA() < casccuts.bachbaryoncospa) && (fabs(casc.bachBaryonDCAxyToPV()) > casccuts.bachbaryondcaxytopv))

Check warning on line 1162 in PWGLF/Tasks/Strangeness/strange-yield-pbpb.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[std-prefix]

Use std:: prefix for names from the std namespace.
bitMap.set(selBachBaryon);
if (fabs(casc.dcabachtopv()) > casccuts.dcabachtopv)

Check warning on line 1164 in PWGLF/Tasks/Strangeness/strange-yield-pbpb.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[std-prefix]

Use std:: prefix for names from the std namespace.
bitMap.set(selBachToPV);

if (casc.sign() > 0) {
if (fabs(casc.dcanegtopv()) > casccuts.dcabaryontopv)

Check warning on line 1168 in PWGLF/Tasks/Strangeness/strange-yield-pbpb.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[std-prefix]

Use std:: prefix for names from the std namespace.
bitMap.set(selBaryonToPV);
if (fabs(casc.dcapostopv()) > casccuts.dcamesontopv)

Check warning on line 1170 in PWGLF/Tasks/Strangeness/strange-yield-pbpb.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[std-prefix]

Use std:: prefix for names from the std namespace.
bitMap.set(selMesonToPV);
} else { // no sign == 0, in principle
if (fabs(casc.dcapostopv()) > casccuts.dcabaryontopv)

Check warning on line 1173 in PWGLF/Tasks/Strangeness/strange-yield-pbpb.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[std-prefix]

Use std:: prefix for names from the std namespace.
bitMap.set(selBaryonToPV);
if (fabs(casc.dcanegtopv()) > casccuts.dcamesontopv)

Check warning on line 1175 in PWGLF/Tasks/Strangeness/strange-yield-pbpb.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[std-prefix]

Use std:: prefix for names from the std namespace.
bitMap.set(selMesonToPV);
}

if (fabs(casc.mXi() - pdgDB->Mass(3312)) < casccuts.masswin)

Check warning on line 1179 in PWGLF/Tasks/Strangeness/strange-yield-pbpb.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[std-prefix]

Use std:: prefix for names from the std namespace.
bitMap.set(selMassWinXi);
if (fabs(casc.mOmega() - pdgDB->Mass(3334)) < casccuts.masswin)

Check warning on line 1181 in PWGLF/Tasks/Strangeness/strange-yield-pbpb.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[std-prefix]

Use std:: prefix for names from the std namespace.
bitMap.set(selMassWinOmega);
if (fabs(casc.mLambda() - pdgDB->Mass(3122)) < casccuts.lambdamasswin)
bitMap.set(selLambdaMassWin);
Expand Down Expand Up @@ -1227,8 +1226,8 @@
double bachDcaXYLimit = 0.0105f + 0.035f / pow(bachpt, 1.1f);

// TODO: separate xy and z //
if ((std::abs(casc.dcapostopv()) > posDcaXYLimit) &&
(std::abs(casc.dcanegtopv()) > negDcaXYLimit) &&
if ((std::abs(casc.dcapostopv()) > posDcaXYLimit) &&
(std::abs(casc.dcanegtopv()) > negDcaXYLimit) &&
(std::abs(casc.dcabachtopv()) > bachDcaXYLimit)) {
bitMap.set(selDauDCA);
}
Expand Down Expand Up @@ -1386,7 +1385,7 @@
double negDcaXYLimit = 0.0105f + 0.035f / pow(negpt, 1.1f);

// TODO: separate xy and z //
if ((std::abs(v0.dcapostopv()) > posDcaXYLimit) &&
if ((std::abs(v0.dcapostopv()) > posDcaXYLimit) &&
(std::abs(v0.dcanegtopv()) > negDcaXYLimit)) {
bitMap.set(selDauDCA);
}
Expand Down Expand Up @@ -1518,38 +1517,41 @@
}

template <typename TV0>
void computeV0MCAssociation(const TV0& v0, std::bitset<selNum>& bitMap)
void computeV0MCAssociation(const TV0& v0, std::bitset<selNum>& bitMap)
{
const int pdgPos = v0.pdgCodePositive();
const int pdgNeg = v0.pdgCodeNegative();
const int pdgV0 = v0.pdgCode();
const bool isPhysPrim = v0.isPhysicalPrimary();

const bool isPositiveProton = (pdgPos == 2212);
const bool isPositivePion = (pdgPos == 211) || (doTreatPiToMuon && pdgPos == -13);
const bool isNegativeProton = (pdgNeg == -2212);
const bool isNegativePion = (pdgNeg == -211) || (doTreatPiToMuon && pdgNeg == 13);

switch (pdgV0) {
case 310: // K0Short
if (isPositivePion && isNegativePion) {
bitMap.set(selConsiderK0Short);
if (isPhysPrim) bitMap.set(selPhysPrimK0Short);
}
break;
case 3122: // Lambda
if (isPositiveProton && isNegativePion) {
bitMap.set(selConsiderLambda);
if (isPhysPrim) bitMap.set(selPhysPrimLambda);
}
break;
case -3122: // AntiLambda
if (isPositivePion && isNegativeProton) {
bitMap.set(selConsiderAntiLambda);
if (isPhysPrim) bitMap.set(selPhysPrimAntiLambda);
}
break;
}
const int pdgPos = v0.pdgCodePositive();
const int pdgNeg = v0.pdgCodeNegative();
const int pdgV0 = v0.pdgCode();
const bool isPhysPrim = v0.isPhysicalPrimary();

const bool isPositiveProton = (pdgPos == 2212);
const bool isPositivePion = (pdgPos == 211) || (doTreatPiToMuon && pdgPos == -13);
const bool isNegativeProton = (pdgNeg == -2212);
const bool isNegativePion = (pdgNeg == -211) || (doTreatPiToMuon && pdgNeg == 13);

switch (pdgV0) {
case 310: // K0Short
if (isPositivePion && isNegativePion) {
bitMap.set(selConsiderK0Short);
if (isPhysPrim)
bitMap.set(selPhysPrimK0Short);
}
break;
case 3122: // Lambda
if (isPositiveProton && isNegativePion) {
bitMap.set(selConsiderLambda);
if (isPhysPrim)
bitMap.set(selPhysPrimLambda);
}
break;
case -3122: // AntiLambda
if (isPositivePion && isNegativeProton) {
bitMap.set(selConsiderAntiLambda);
if (isPhysPrim)
bitMap.set(selPhysPrimAntiLambda);
}
break;
}
}

template <typename TV0, typename TCollision>
Expand Down Expand Up @@ -1590,83 +1592,82 @@

PresliceUnsorted<straCollisonsFullMC> perMcCollision = aod::v0data::straMCCollisionId;

std::vector<int> getListOfRecoCollIndices(straMCCollisionsFull const& mcCollisions,
std::vector<int> getListOfRecoCollIndices(straMCCollisionsFull const& mcCollisions,
straCollisonsFullMC const& collisions)
{
std::vector<int> listBestCollisionIdx(mcCollisions.size(), -1);

for (auto const& mcCollision : mcCollisions) {
auto groupedCollisions = collisions.sliceBy(perMcCollision, mcCollision.globalIndex());
// Find the collision with the biggest nbr of PV contributors
// Follows what was done here: https://github.com/AliceO2Group/O2Physics/blob/master/Common/TableProducer/mcCollsExtra.cxx#L93
int biggestNContribs = -1;
int bestCollisionIndex = -1;
for (auto const& collision : groupedCollisions) {
if (biggestNContribs < collision.multPVTotalContributors()) {
biggestNContribs = collision.multPVTotalContributors();
bestCollisionIndex = collision.globalIndex();
}
std::vector<int> listBestCollisionIdx(mcCollisions.size(), -1);

for (auto const& mcCollision : mcCollisions) {
auto groupedCollisions = collisions.sliceBy(perMcCollision, mcCollision.globalIndex());
// Find the collision with the biggest nbr of PV contributors
// Follows what was done here: https://github.com/AliceO2Group/O2Physics/blob/master/Common/TableProducer/mcCollsExtra.cxx#L93
int biggestNContribs = -1;
int bestCollisionIndex = -1;
for (auto const& collision : groupedCollisions) {
if (biggestNContribs < collision.multPVTotalContributors()) {
biggestNContribs = collision.multPVTotalContributors();
bestCollisionIndex = collision.globalIndex();
}
listBestCollisionIdx[mcCollision.globalIndex()] = bestCollisionIndex;
}
listBestCollisionIdx[mcCollision.globalIndex()] = bestCollisionIndex;
}

return listBestCollisionIdx;
return listBestCollisionIdx;
}

void fillGenMCHistogramsQA(straMCCollisionsFull const& mcCollisions, straCollisonsFullMC const& collisions)
{
for (auto const& mcCollision : mcCollisions) {
histos.fill(HIST("eventQA/mc/hEventSelectionMC"), 0.0);
histos.fill(HIST("eventQA/mc/hMCNParticlesEta10"), mcCollision.multMCNParticlesEta10(), 0 /* all gen. events*/);

if (TMath::Abs(mcCollision.posZ()) > 10.f)
continue;

histos.fill(HIST("eventQA/mc/hEventSelectionMC"), 1.0);

// Group collisions by MC collision index
auto groupedCollisions = collisions.sliceBy(perMcCollision, mcCollision.globalIndex());

bool atLeastOne = false;
float centrality = -1.f;
int nCollisions = 0;
int biggestNContribs = -1;
int nTracksGlobal = -1;

// Find the max contributors and count accepted collisions
for (auto const& collision : groupedCollisions) {
if (!acceptEvent(collision, false)) {
continue;
}

int selGapSide = collision.isUPC() ? getGapSide(collision) : -1;
if (studyUPConly && (selGapSide < -0.5))
continue;

if (biggestNContribs < collision.multPVTotalContributors()) {
biggestNContribs = collision.multPVTotalContributors();
centrality = collision.centFT0C();
nTracksGlobal = collision.multNTracksGlobal();
}

++nCollisions;
atLeastOne = true;
}

// Fill histograms
histos.fill(HIST("eventQA/mc/hTracksGlobalVsNcoll_beforeEvSel"), nTracksGlobal, groupedCollisions.size());
histos.fill(HIST("eventQA/mc/hTracksGlobalVsNcoll_afterEvSel"), nTracksGlobal, nCollisions);
histos.fill(HIST("eventQA/mc/hTracksGlobalvsMCNParticlesEta10gen"), nTracksGlobal, mcCollision.multMCNParticlesEta10());
histos.fill(HIST("eventQA/mc/hTracksGlobalVsPVzMC"), nTracksGlobal, mcCollision.posZ());
histos.fill(HIST("eventQA/mc/hEventPVzMC"), mcCollision.posZ());

if (atLeastOne) {
histos.fill(HIST("eventQA/mc/hMCNParticlesEta10"), mcCollision.multMCNParticlesEta10(), 1 /* at least 1 rec. event*/);
histos.fill(HIST("eventQA/mc/hGenEventCentrality"), centrality);
}
for (auto const& mcCollision : mcCollisions) {
histos.fill(HIST("eventQA/mc/hEventSelectionMC"), 0.0);
histos.fill(HIST("eventQA/mc/hMCNParticlesEta10"), mcCollision.multMCNParticlesEta10(), 0 /* all gen. events*/);

if (TMath::Abs(mcCollision.posZ()) > 10.f)
continue;

histos.fill(HIST("eventQA/mc/hEventSelectionMC"), 1.0);

// Group collisions by MC collision index
auto groupedCollisions = collisions.sliceBy(perMcCollision, mcCollision.globalIndex());

bool atLeastOne = false;
float centrality = -1.f;
int nCollisions = 0;
int biggestNContribs = -1;
int nTracksGlobal = -1;

// Find the max contributors and count accepted collisions
for (auto const& collision : groupedCollisions) {
if (!acceptEvent(collision, false)) {
continue;
}

int selGapSide = collision.isUPC() ? getGapSide(collision) : -1;
if (studyUPConly && (selGapSide < -0.5))
continue;

if (biggestNContribs < collision.multPVTotalContributors()) {
biggestNContribs = collision.multPVTotalContributors();
centrality = collision.centFT0C();
nTracksGlobal = collision.multNTracksGlobal();
}

++nCollisions;
atLeastOne = true;
}
}

// Fill histograms
histos.fill(HIST("eventQA/mc/hTracksGlobalVsNcoll_beforeEvSel"), nTracksGlobal, groupedCollisions.size());
histos.fill(HIST("eventQA/mc/hTracksGlobalVsNcoll_afterEvSel"), nTracksGlobal, nCollisions);
histos.fill(HIST("eventQA/mc/hTracksGlobalvsMCNParticlesEta10gen"), nTracksGlobal, mcCollision.multMCNParticlesEta10());
histos.fill(HIST("eventQA/mc/hTracksGlobalVsPVzMC"), nTracksGlobal, mcCollision.posZ());
histos.fill(HIST("eventQA/mc/hEventPVzMC"), mcCollision.posZ());

if (atLeastOne) {
histos.fill(HIST("eventQA/mc/hMCNParticlesEta10"), mcCollision.multMCNParticlesEta10(), 1 /* at least 1 rec. event*/);
histos.fill(HIST("eventQA/mc/hGenEventCentrality"), centrality);
}
}
}

void processV0s(straCollisonFull const& collision, v0Candidates const& fullV0s, dauTracks const&)
{
Expand Down Expand Up @@ -1695,9 +1696,9 @@
}

void processV0sMC(straCollisonFullMC const& collision,
v0CandidatesMC const& fullV0s,
v0CandidatesMC const& fullV0s,
dauTracks const&,
aod::MotherMCParts const&,
aod::MotherMCParts const&,
straMCCollisionsFull const&,
v0MCCoresFull const&)
{
Expand All @@ -1716,11 +1717,11 @@
fillHistogramsQA(collision, selGapSide);

if (collision.has_straMCCollision()) {
const auto& mcCollision = collision.straMCCollision_as<straMCCollisionsFull>();
histos.fill(HIST("eventQA/mc/hNTracksGlobalvsMCNParticlesEta10rec"), collision.multNTracksGlobal(), mcCollision.multMCNParticlesEta10());
histos.fill(HIST("eventQA/mc/hNTracksPVeta1vsMCNParticlesEta10rec"), collision.multNTracksPVeta1(), mcCollision.multMCNParticlesEta10());
histos.fill(HIST("eventQA/mc/hNTracksGlobalvstotalMultMCParticles"), collision.multNTracksGlobal(), mcCollision.totalMultMCParticles());
histos.fill(HIST("eventQA/mc/hNTracksPVeta1vstotalMultMCParticles"), collision.multNTracksPVeta1(), mcCollision.totalMultMCParticles());
const auto& mcCollision = collision.straMCCollision_as<straMCCollisionsFull>();
histos.fill(HIST("eventQA/mc/hNTracksGlobalvsMCNParticlesEta10rec"), collision.multNTracksGlobal(), mcCollision.multMCNParticlesEta10());
histos.fill(HIST("eventQA/mc/hNTracksPVeta1vsMCNParticlesEta10rec"), collision.multNTracksPVeta1(), mcCollision.multMCNParticlesEta10());
histos.fill(HIST("eventQA/mc/hNTracksGlobalvstotalMultMCParticles"), collision.multNTracksGlobal(), mcCollision.totalMultMCParticles());
histos.fill(HIST("eventQA/mc/hNTracksPVeta1vstotalMultMCParticles"), collision.multNTracksPVeta1(), mcCollision.totalMultMCParticles());
}

for (auto& v0 : fullV0s) {
Expand All @@ -1744,7 +1745,7 @@
} // end v0 loop
}

void processCascadesMC(straCollisonFullMC const& collision,
void processCascadesMC(straCollisonFullMC const& collision,
cascadeCandidatesMC const& fullCascades,
dauTracks const&,
straMCCollisionsFull const&,
Expand All @@ -1765,17 +1766,17 @@
fillHistogramsQA(collision, selGapSide);

if (collision.has_straMCCollision()) {
const auto& mcCollision = collision.straMCCollision_as<straMCCollisionsFull>();
histos.fill(HIST("eventQA/mc/hNTracksGlobalvsMCNParticlesEta10rec"), collision.multNTracksGlobal(), mcCollision.multMCNParticlesEta10());
histos.fill(HIST("eventQA/mc/hNTracksPVeta1vsMCNParticlesEta10rec"), collision.multNTracksPVeta1(), mcCollision.multMCNParticlesEta10());
histos.fill(HIST("eventQA/mc/hNTracksGlobalvstotalMultMCParticles"), collision.multNTracksGlobal(), mcCollision.totalMultMCParticles());
histos.fill(HIST("eventQA/mc/hNTracksPVeta1vstotalMultMCParticles"), collision.multNTracksPVeta1(), mcCollision.totalMultMCParticles());
const auto& mcCollision = collision.straMCCollision_as<straMCCollisionsFull>();
histos.fill(HIST("eventQA/mc/hNTracksGlobalvsMCNParticlesEta10rec"), collision.multNTracksGlobal(), mcCollision.multMCNParticlesEta10());
histos.fill(HIST("eventQA/mc/hNTracksPVeta1vsMCNParticlesEta10rec"), collision.multNTracksPVeta1(), mcCollision.multMCNParticlesEta10());
histos.fill(HIST("eventQA/mc/hNTracksGlobalvstotalMultMCParticles"), collision.multNTracksGlobal(), mcCollision.totalMultMCParticles());
histos.fill(HIST("eventQA/mc/hNTracksPVeta1vstotalMultMCParticles"), collision.multNTracksPVeta1(), mcCollision.totalMultMCParticles());
}
}

void processGenerated(straMCCollisionsFull const& mcCollisions,
v0MCCoresFull const& V0MCCores,
cascMCCoresFull const& CascMCCores,
void processGenerated(straMCCollisionsFull const& mcCollisions,
v0MCCoresFull const& V0MCCores,
cascMCCoresFull const& CascMCCores,
straCollisonsFullMC const& collisions)
{
fillGenMCHistogramsQA(mcCollisions, collisions);
Expand Down
Loading