@@ -122,9 +122,9 @@ void TrackerDPL::run(ProcessingContext& pc)
122122
123123 std::vector<o2::its::TrackITSExt> tracks;
124124 auto & allClusIdx = pc.outputs ().make <std::vector<int >>(Output{" ITS" , " TRACKCLSID" , 0 , Lifetime::Timeframe});
125- o2::dataformats::MCTruthContainer <o2::MCCompLabel> trackLabels;
125+ std::vector <o2::MCCompLabel> trackLabels;
126126 auto & allTracks = pc.outputs ().make <std::vector<o2::its::TrackITS>>(Output{" ITS" , " TRACKS" , 0 , Lifetime::Timeframe});
127- o2::dataformats::MCTruthContainer <o2::MCCompLabel> allTrackLabels;
127+ std::vector <o2::MCCompLabel> allTrackLabels;
128128
129129 auto & vertROFvec = pc.outputs ().make <std::vector<o2::itsmft::ROFRecord>>(Output{" ITS" , " VERTICESROF" , 0 , Lifetime::Timeframe});
130130 auto & vertices = pc.outputs ().make <std::vector<Vertex>>(Output{" ITS" , " VERTICES" , 0 , Lifetime::Timeframe});
@@ -211,13 +211,13 @@ void TrackerDPL::run(ProcessingContext& pc)
211211 tracks.swap (mTracker ->getTracks ());
212212 LOG (INFO ) << " Found tracks: " << tracks.size ();
213213 int number = tracks.size ();
214- trackLabels = mTracker ->getTrackLabels (); // / FIXME: assignment ctor is not optimal.
214+ trackLabels. swap ( mTracker ->getTrackLabels () ); // / FIXME: assignment ctor is not optimal.
215215 int shiftIdx = -rof.getFirstEntry (); // cluster entry!!!
216216 rof.setFirstEntry (first);
217217 rof.setNEntries (number);
218218 copyTracks (tracks, allTracks, allClusIdx, shiftIdx);
219- allTrackLabels. mergeAtBack ( trackLabels);
220-
219+ std::copy (trackLabels. begin (), trackLabels. end (), std::back_inserter (allTrackLabels) );
220+ trackLabels. clear ();
221221 vtxROF.setNEntries (vtxVecLoc.size ());
222222 for (const auto & vtx : vtxVecLoc) {
223223 vertices.push_back (vtx);
@@ -232,7 +232,7 @@ void TrackerDPL::run(ProcessingContext& pc)
232232 mTracker ->clustersToTracks (event);
233233 tracks.swap (mTracker ->getTracks ());
234234 copyTracks (tracks, allTracks, allClusIdx);
235- allTrackLabels = mTracker ->getTrackLabels (); // / FIXME: assignment ctor is not optimal.
235+ allTrackLabels. swap ( mTracker ->getTrackLabels () ); // / FIXME: assignment ctor is not optimal.
236236 }
237237
238238 LOG (INFO ) << " ITSTracker pushed " << allTracks.size () << " tracks" ;
0 commit comments