Skip to content

Commit 3131e83

Browse files
committed
Use vector as ITS tracks MCLabels instead of MCTruthContainer
1 parent 0a5c849 commit 3131e83

8 files changed

Lines changed: 15 additions & 21 deletions

File tree

Detectors/ITSMFT/ITS/reconstruction/include/ITSReconstruction/CookedTracker.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,7 @@ class CookedTracker
100100
const Cluster* getCluster(Int_t index) const;
101101

102102
void setGeometry(o2::its::GeometryTGeo* geom);
103-
void setMCTruthContainers(const o2::dataformats::MCTruthContainer<o2::MCCompLabel>* clsLabels,
104-
o2::dataformats::MCTruthContainer<o2::MCCompLabel>* trkLabels)
103+
void setMCTruthContainers(const o2::dataformats::MCTruthContainer<o2::MCCompLabel>* clsLabels, std::vector<o2::MCCompLabel>* trkLabels)
105104
{
106105
mClsLabels = clsLabels;
107106
mTrkLabels = trkLabels;
@@ -136,7 +135,7 @@ class CookedTracker
136135
bool mContinuousMode = true; ///< triggered or cont. mode
137136
const o2::its::GeometryTGeo* mGeom = nullptr; /// interface to geometry
138137
const o2::dataformats::MCTruthContainer<o2::MCCompLabel>* mClsLabels = nullptr; /// Cluster MC labels
139-
o2::dataformats::MCTruthContainer<o2::MCCompLabel>* mTrkLabels = nullptr; /// Track MC labels
138+
std::vector<o2::MCCompLabel>* mTrkLabels = nullptr; /// Track MC labels
140139
std::uint32_t mFirstInFrame = 0; ///< Index of the 1st cluster of a frame (within the loaded vector of clusters)
141140

142141
Int_t mNumOfThreads; ///< Number of tracking threads

Detectors/ITSMFT/ITS/reconstruction/src/CookedTracker.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -571,7 +571,7 @@ std::tuple<int, int> CookedTracker::processLoadedClusters(TrackInserter& inserte
571571
}
572572
// the inserter returns the size of the track vector, the index of the last
573573
// inserted track is thus n - 1
574-
mTrkLabels->addElement(nAllTracks - 1, label);
574+
mTrkLabels->emplace_back(label);
575575
}
576576
}
577577
}

Detectors/ITSMFT/ITS/tracking/include/ITStracking/Tracker.h

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ class Tracker
6262
float getBz() const;
6363

6464
std::vector<TrackITSExt>& getTracks();
65-
dataformats::MCTruthContainer<MCCompLabel>& getTrackLabels();
65+
auto& getTrackLabels() { return mTrackLabels; }
6666

6767
void clustersToTracks(const ROframe&, std::ostream& = std::cout);
6868

@@ -99,7 +99,7 @@ class Tracker
9999
float mBz = 5.f;
100100
std::uint32_t mROFrame = 0;
101101
std::vector<TrackITSExt> mTracks;
102-
dataformats::MCTruthContainer<MCCompLabel> mTrackLabels;
102+
std::vector<MCCompLabel> mTrackLabels;
103103
o2::gpu::GPUChainITS* mRecoChain = nullptr;
104104
};
105105

@@ -130,11 +130,6 @@ inline std::vector<TrackITSExt>& Tracker::getTracks()
130130
return mTracks;
131131
}
132132

133-
inline dataformats::MCTruthContainer<MCCompLabel>& Tracker::getTrackLabels()
134-
{
135-
return mTrackLabels;
136-
}
137-
138133
template <typename... T>
139134
float Tracker::evaluateTask(void (Tracker::*task)(T...), const char* taskName, std::ostream& ostream,
140135
T&&... args)

Detectors/ITSMFT/ITS/tracking/src/Tracker.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -566,7 +566,7 @@ void Tracker::computeTracksMClabels(const ROframe& event)
566566
if (isFakeTrack) {
567567
maxOccurrencesValue.setFakeFlag();
568568
}
569-
mTrackLabels.addElement(mTrackLabels.getIndexedSize(), maxOccurrencesValue);
569+
mTrackLabels.emplace_back(maxOccurrencesValue);
570570
}
571571
}
572572

Detectors/ITSMFT/ITS/workflow/include/ITSWorkflow/TrackReaderSpec.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ class TrackReader : public o2::framework::Task
4848
std::vector<o2::its::TrackITS> mTracks, *mTracksInp = &mTracks;
4949
std::vector<Vertex> mVertices, *mVerticesInp = &mVertices;
5050
std::vector<int> mClusInd, *mClusIndInp = &mClusInd;
51-
o2::dataformats::MCTruthContainer<o2::MCCompLabel> mMCTruth, *mMCTruthInp = &mMCTruth;
51+
std::vector<o2::MCCompLabel> mMCTruth, *mMCTruthInp = &mMCTruth;
5252

5353
o2::header::DataOrigin mOrigin = o2::header::gDataOriginITS;
5454

Detectors/ITSMFT/ITS/workflow/src/CookedTrackerSpec.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ void CookedTrackerDPL::run(ProcessingContext& pc)
112112

113113
LOG(INFO) << "ITSCookedTracker pulled " << compClusters.size() << " clusters, in " << rofs.size() << " RO frames";
114114

115-
o2::dataformats::MCTruthContainer<o2::MCCompLabel> trackLabels;
115+
std::vector<o2::MCCompLabel> trackLabels;
116116
if (mUseMC) {
117117
mTracker.setMCTruthContainers(labels.get(), &trackLabels);
118118
}

Detectors/ITSMFT/ITS/workflow/src/TrackWriterSpec.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ using Vertex = o2::dataformats::Vertex<o2::dataformats::TimeStamp<int>>;
3030

3131
template <typename T>
3232
using BranchDefinition = MakeRootTreeWriterSpec::BranchDefinition<T>;
33-
using LabelsType = o2::dataformats::MCTruthContainer<o2::MCCompLabel>;
33+
using LabelsType = std::vector<o2::MCCompLabel>;
3434
using ROFRecLblT = std::vector<o2::itsmft::MC2ROFRecord>;
3535
using namespace o2::header;
3636

Detectors/ITSMFT/ITS/workflow/src/TrackerSpec.cxx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)