@@ -210,6 +210,7 @@ struct NonPromptCascadeTask {
210210 float mBz = 0 .f;
211211 o2::vertexing::DCAFitterN<2 > mDCAFitter ;
212212 std::array<int , 2 > mProcessCounter = {0 , 0 }; // {Tracked, All}
213+ std::map<uint64_t , uint32_t > mToiMap ;
213214
214215 void initCCDB (aod::BCsWithTimestamps::iterator const & bc)
215216 {
@@ -299,9 +300,10 @@ struct NonPromptCascadeTask {
299300 return true ;
300301 }
301302
302- void zorroAccounting (const auto & collisions, auto & toiMap )
303+ void zorroAccounting (const auto & collisions)
303304 {
304305 if (cfgSkimmedProcessing && mProcessCounter [0 ] != mProcessCounter [1 ]) {
306+ mToiMap .clear ();
305307 int runNumber{-1 };
306308 for (const auto & coll : collisions) {
307309 auto bc = coll.template bc_as <aod::BCsWithTimestamps>();
@@ -320,7 +322,7 @@ struct NonPromptCascadeTask {
320322 for (size_t i{0 }; i < toivect.size (); i++) {
321323 toiMask += toivect[i] << i;
322324 }
323- toiMap [bc.globalBC ()] = toiMask;
325+ mToiMap [bc.globalBC ()] = toiMask;
324326 }
325327 }
326328 }
@@ -338,7 +340,7 @@ struct NonPromptCascadeTask {
338340 };
339341
340342 template <typename TrackType, typename CollisionType>
341- void fillCandidatesVector (CollisionType const &, TrackType const & tracks, auto const & cascades, auto & candidates, std::map< uint64_t , uint32_t > toiMap = {} )
343+ void fillCandidatesVector (CollisionType const &, TrackType const & tracks, auto const & cascades, auto & candidates)
342344 {
343345
344346 const auto & getCascade = [](auto const & candidate) {
@@ -543,8 +545,8 @@ struct NonPromptCascadeTask {
543545 o2::base::Propagator::Instance ()->propagateToDCA (primaryVertex, ntCascadeTrack, mBz , 2 .f , matCorr, &motherDCA);
544546 }
545547 uint32_t toiMask = 0x0 ;
546- if (toiMap .count (bc.globalBC ())) {
547- toiMask = toiMap [bc.globalBC ()];
548+ if (mToiMap .count (bc.globalBC ())) {
549+ toiMask = mToiMap [bc.globalBC ()];
548550 }
549551 candidates.emplace_back (NPCascCandidate{mcParticleID, trackedCascGlobalIndex, itsTrackGlobalIndex, candidate.collisionId (), matchingChi2, deltaPtITSCascade, deltaPtCascade, cascITSclsSize, hasReassociatedClusters, hasFakeReassociation, isGoodMatch, isGoodCascade, pdgCodeMom, itsTrackPDG, fromHF[0 ], fromHF[1 ],
550552 collision.numContrib (), cascPVContribs, collision.collisionTimeRes (), primaryVertex.getX (), primaryVertex.getY (), primaryVertex.getZ (),
@@ -694,9 +696,8 @@ struct NonPromptCascadeTask {
694696 {
695697 mProcessCounter [0 ]++;
696698 fillMultHistos (collisions);
697- std::map<uint64_t , uint32_t > toiMap;
698- zorroAccounting (collisions, toiMap);
699- fillCandidatesVector<TracksExtData>(collisions, tracks, trackedCascades, gCandidates , toiMap);
699+ zorroAccounting (collisions);
700+ fillCandidatesVector<TracksExtData>(collisions, tracks, trackedCascades, gCandidates );
700701 fillDataTable<aod::AssignedTrackedCascades>(gCandidates );
701702 }
702703 PROCESS_SWITCH (NonPromptCascadeTask, processTrackedCascadesData, " process cascades from strangeness tracking: Data analysis" , false );
@@ -706,9 +707,8 @@ struct NonPromptCascadeTask {
706707 aod::BCsWithTimestamps const &)
707708 {
708709 mProcessCounter [1 ]++;
709- std::map<uint64_t , uint32_t > toiMap;
710- zorroAccounting (collisions, toiMap);
711- fillCandidatesVector<TracksExtData>(collisions, tracks, cascades, gCandidatesNT , toiMap);
710+ zorroAccounting (collisions);
711+ fillCandidatesVector<TracksExtData>(collisions, tracks, cascades, gCandidatesNT );
712712 fillDataTable<aod::Cascades>(gCandidatesNT );
713713 }
714714 PROCESS_SWITCH (NonPromptCascadeTask, processCascadesData, " process cascades: Data analysis" , false );
0 commit comments