Skip to content

Commit 4f26004

Browse files
committed
ITS: Vertexer return early and only one arena
Signed-off-by: Felix Schlepper <felix.schlepper@cern.ch>
1 parent 52d7d58 commit 4f26004

File tree

1 file changed

+19
-14
lines changed

1 file changed

+19
-14
lines changed

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

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -214,13 +214,16 @@ void VertexerTraits::computeTracklets(const int iteration)
214214
mTimeFrame->getNTrackletsROF(pivotRofId, 1) = std::accumulate(mTimeFrame->getNTrackletsCluster(pivotRofId, 1).begin(), mTimeFrame->getNTrackletsCluster(pivotRofId, 1).end(), 0);
215215
}
216216
});
217-
});
218217

219-
mTimeFrame->computeTrackletsPerROFScans();
220-
mTimeFrame->getTracklets()[0].resize(mTimeFrame->getTotalTrackletsTF(0));
221-
mTimeFrame->getTracklets()[1].resize(mTimeFrame->getTotalTrackletsTF(1));
218+
mTimeFrame->computeTrackletsPerROFScans();
219+
if (auto tot0 = mTimeFrame->getTotalTrackletsTF(0), tot1 = mTimeFrame->getTotalTrackletsTF(1);
220+
tot0 == 0 || tot1 == 0) {
221+
return;
222+
} else {
223+
mTimeFrame->getTracklets()[0].resize(tot0);
224+
mTimeFrame->getTracklets()[1].resize(tot1);
225+
}
222226

223-
mTaskArena->execute([&] {
224227
tbb::parallel_for(
225228
tbb::blocked_range<short>(0, (short)mTimeFrame->getNrof()),
226229
[&](const tbb::blocked_range<short>& Rofs) {
@@ -266,18 +269,20 @@ void VertexerTraits::computeTracklets(const int iteration)
266269
if (mTimeFrame->hasMCinformation()) {
267270
for (const auto& trk : mTimeFrame->getTracklets()[0]) {
268271
o2::MCCompLabel label;
269-
int sortedId0{mTimeFrame->getSortedIndex(trk.rof[0], 0, trk.firstClusterIndex)};
270-
int sortedId1{mTimeFrame->getSortedIndex(trk.rof[1], 1, trk.secondClusterIndex)};
271-
for (const auto& lab0 : mTimeFrame->getClusterLabels(0, mTimeFrame->getClusters()[0][sortedId0].clusterId)) {
272-
for (const auto& lab1 : mTimeFrame->getClusterLabels(1, mTimeFrame->getClusters()[1][sortedId1].clusterId)) {
273-
if (lab0 == lab1 && lab0.isValid()) {
274-
label = lab0;
272+
if (!trk.isEmpty()) {
273+
int sortedId0{mTimeFrame->getSortedIndex(trk.rof[0], 0, trk.firstClusterIndex)};
274+
int sortedId1{mTimeFrame->getSortedIndex(trk.rof[1], 1, trk.secondClusterIndex)};
275+
for (const auto& lab0 : mTimeFrame->getClusterLabels(0, mTimeFrame->getClusters()[0][sortedId0].clusterId)) {
276+
for (const auto& lab1 : mTimeFrame->getClusterLabels(1, mTimeFrame->getClusters()[1][sortedId1].clusterId)) {
277+
if (lab0 == lab1 && lab0.isValid()) {
278+
label = lab0;
279+
break;
280+
}
281+
}
282+
if (label.isValid()) {
275283
break;
276284
}
277285
}
278-
if (label.isValid()) {
279-
break;
280-
}
281286
}
282287
mTimeFrame->getTrackletsLabel(0).emplace_back(label);
283288
}

0 commit comments

Comments
 (0)