@@ -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