Skip to content

Commit 9a1890a

Browse files
authored
[PWGHF] taskCharmPolarisation: Stop using the iterator at collisions for PbPb collision process (#11946)
1 parent 73eb57e commit 9a1890a

File tree

1 file changed

+40
-35
lines changed

1 file changed

+40
-35
lines changed

PWGHF/D2H/Tasks/taskCharmPolarisation.cxx

Lines changed: 40 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1474,7 +1474,8 @@ struct HfTaskCharmPolarisation {
14741474

14751475
/// Get the Q vector
14761476
/// \param collision is the collision with the Q vector information
1477-
std::vector<float> getQVec(CollsWithQVecs::iterator const& collision)
1477+
template <typename Coll>
1478+
std::vector<float> getQVec(Coll const& collision)
14781479
{
14791480
float xQVec = -999.;
14801481
float yQVec = -999.;
@@ -2303,59 +2304,63 @@ struct HfTaskCharmPolarisation {
23032304
}
23042305
PROCESS_SWITCH(HfTaskCharmPolarisation, processDstarMcWithMl, "Process Dstar candidates in MC with ML", false);
23052306

2306-
void processDstarInPbPb(CollsWithQVecs::iterator const& collision,
2307+
void processDstarInPbPb(CollsWithQVecs const& collisions,
23072308
FilteredCandDstarWSelFlag const& dstarCandidates,
23082309
TracksWithExtra const& tracks)
23092310
{
2310-
float centrality = {-1.f};
2311-
centrality = o2::hf_centrality::getCentralityColl(collision, centEstimator);
2312-
if (centrality < centralityMin || centrality > centralityMax) {
2313-
return; // skip this collision if outside of the centrality range
2314-
}
2315-
registry.fill(HIST("hCentrality"), centrality);
2311+
for (const auto& collision : collisions) {
2312+
float centrality = {-1.f};
2313+
centrality = o2::hf_centrality::getCentralityColl(collision, centEstimator);
2314+
if (centrality < centralityMin || centrality > centralityMax) {
2315+
return; // skip this collision if outside of the centrality range
2316+
}
2317+
registry.fill(HIST("hCentrality"), centrality);
23162318

2317-
auto thisCollId = collision.globalIndex();
2318-
int numPvContributors = collision.numContrib();
2319-
auto groupedDstarCandidates = dstarCandidates.sliceBy(dstarPerCollision, thisCollId);
2320-
int nCands{0}, nCandsInSignalRegion{0};
2319+
auto thisCollId = collision.globalIndex();
2320+
int numPvContributors = collision.numContrib();
2321+
auto groupedDstarCandidates = dstarCandidates.sliceBy(dstarPerCollision, thisCollId);
2322+
int nCands{0}, nCandsInSignalRegion{0};
23212323

2322-
std::vector<float> qVecs = getQVec(collision);
2324+
std::vector<float> qVecs = getQVec(collision);
23232325

2324-
for (const auto& dstarCandidate : groupedDstarCandidates) {
2325-
nCands++;
2326-
if (runPolarisationAnalysis<charm_polarisation::DecayChannel::DstarToDzeroPi, false, false, false, true>(dstarCandidate, 0, numPvContributors, -1 /*MC particles*/, tracks, &qVecs)) {
2327-
nCandsInSignalRegion++;
2326+
for (const auto& dstarCandidate : groupedDstarCandidates) {
2327+
nCands++;
2328+
if (runPolarisationAnalysis<charm_polarisation::DecayChannel::DstarToDzeroPi, false, false, false, true>(dstarCandidate, 0, numPvContributors, -1 /*MC particles*/, tracks, &qVecs)) {
2329+
nCandsInSignalRegion++;
2330+
}
23282331
}
2332+
fillMultHistos(numPvContributors, nCands, nCandsInSignalRegion);
23292333
}
2330-
fillMultHistos(numPvContributors, nCands, nCandsInSignalRegion);
23312334
}
23322335
PROCESS_SWITCH(HfTaskCharmPolarisation, processDstarInPbPb, "Process Dstar candidates in PbPb collisions", false);
23332336

2334-
void processDstarWithMlInPbPb(CollsWithQVecs::iterator const& collision,
2337+
void processDstarWithMlInPbPb(CollsWithQVecs const& collisions,
23352338
FilteredCandDstarWSelFlagAndMl const& dstarCandidates,
23362339
TracksWithExtra const& tracks)
23372340
{
2338-
float centrality = {-1.f};
2339-
centrality = o2::hf_centrality::getCentralityColl(collision, centEstimator);
2340-
if (centrality < centralityMin || centrality > centralityMax) {
2341-
return; // skip this collision if outside of the centrality range
2342-
}
2343-
registry.fill(HIST("hCentrality"), centrality);
2341+
for (const auto& collision : collisions) {
2342+
float centrality = {-1.f};
2343+
centrality = o2::hf_centrality::getCentralityColl(collision, centEstimator);
2344+
if (centrality < centralityMin || centrality > centralityMax) {
2345+
return; // skip this collision if outside of the centrality range
2346+
}
2347+
registry.fill(HIST("hCentrality"), centrality);
23442348

2345-
auto thisCollId = collision.globalIndex();
2346-
int numPvContributors = collision.numContrib();
2347-
auto groupedDstarCandidates = dstarCandidates.sliceBy(dstarWithMlPerCollision, thisCollId);
2348-
int nCands{0}, nCandsInSignalRegion{0};
2349+
auto thisCollId = collision.globalIndex();
2350+
int numPvContributors = collision.numContrib();
2351+
auto groupedDstarCandidates = dstarCandidates.sliceBy(dstarWithMlPerCollision, thisCollId);
2352+
int nCands{0}, nCandsInSignalRegion{0};
23492353

2350-
std::vector<float> qVecs = getQVec(collision);
2354+
std::vector<float> qVecs = getQVec(collision);
23512355

2352-
for (const auto& dstarCandidate : groupedDstarCandidates) {
2353-
nCands++;
2354-
if (runPolarisationAnalysis<charm_polarisation::DecayChannel::DstarToDzeroPi, true, false, false, true>(dstarCandidate, 0, numPvContributors, -1 /*MC particles*/, tracks, &qVecs)) {
2355-
nCandsInSignalRegion++;
2356+
for (const auto& dstarCandidate : groupedDstarCandidates) {
2357+
nCands++;
2358+
if (runPolarisationAnalysis<charm_polarisation::DecayChannel::DstarToDzeroPi, true, false, false, true>(dstarCandidate, 0, numPvContributors, -1 /*MC particles*/, tracks, &qVecs)) {
2359+
nCandsInSignalRegion++;
2360+
}
23562361
}
2362+
fillMultHistos(numPvContributors, nCands, nCandsInSignalRegion);
23572363
}
2358-
fillMultHistos(numPvContributors, nCands, nCandsInSignalRegion);
23592364
}
23602365
PROCESS_SWITCH(HfTaskCharmPolarisation, processDstarWithMlInPbPb, "Process Dstar candidates with ML in PbPb collisions", false);
23612366

0 commit comments

Comments
 (0)