Skip to content

Commit ad4352b

Browse files
committed
ITS: for deltaROF consider neighbouring vertices
Signed-off-by: Felix Schlepper <felix.schlepper@cern.ch>
1 parent 6cd3538 commit ad4352b

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -397,7 +397,8 @@ inline gsl::span<const Vertex> TimeFrame<nLayers>::getPrimaryVertices(int romin,
397397
if (mPrimaryVertices.empty()) {
398398
return {};
399399
}
400-
return {&mPrimaryVertices[mROFramesPV[romin]], static_cast<gsl::span<const Vertex>::size_type>(mROFramesPV[romax + 1] - mROFramesPV[romin])};
400+
const int stop_idx = romax >= mNrof - 1 ? mNrof : romax + 1;
401+
return {&mPrimaryVertices[mROFramesPV[romin]], static_cast<gsl::span<const Vertex>::size_type>(mROFramesPV[stop_idx] - mROFramesPV[romin])};
401402
}
402403

403404
template <int nLayers>

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

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,14 @@ void TrackerTraits<nLayers>::computeLayerTracklets(const int iteration, int iROF
7474

7575
mTaskArena->execute([&] {
7676
for (int rof0{startROF}; rof0 < endROF; ++rof0) {
77-
gsl::span<const Vertex> primaryVertices = mTrkParams[iteration].UseDiamond ? diamondSpan : mTimeFrame->getPrimaryVertices(rof0);
78-
const int startVtx{iVertex >= 0 ? iVertex : 0};
79-
const int endVtx{iVertex >= 0 ? o2::gpu::CAMath::Min(iVertex + 1, static_cast<int>(primaryVertices.size())) : static_cast<int>(primaryVertices.size())};
8077
int minRof = o2::gpu::CAMath::Max(startROF, rof0 - mTrkParams[iteration].DeltaROF);
8178
int maxRof = o2::gpu::CAMath::Min(endROF - 1, rof0 + mTrkParams[iteration].DeltaROF);
79+
gsl::span<const Vertex> primaryVertices = mTrkParams[iteration].UseDiamond ? diamondSpan : mTimeFrame->getPrimaryVertices(minRof, maxRof);
80+
if (primaryVertices.empty()) {
81+
continue;
82+
}
83+
const int startVtx{iVertex >= 0 ? iVertex : 0};
84+
const int endVtx{iVertex >= 0 ? o2::gpu::CAMath::Min(iVertex + 1, static_cast<int>(primaryVertices.size())) : static_cast<int>(primaryVertices.size())};
8285

8386
tbb::parallel_for(
8487
tbb::blocked_range<int>(0, mTrkParams[iteration].TrackletsPerRoad()),
@@ -127,6 +130,9 @@ void TrackerTraits<nLayers>::computeLayerTracklets(const int iteration, int iROF
127130
}
128131

129132
for (int rof1{minRof}; rof1 <= maxRof; ++rof1) {
133+
if (!mTimeFrame->mMultiplicityCutMask[rof1]) {
134+
continue;
135+
}
130136
auto layer1 = mTimeFrame->getClustersOnLayer(rof1, iLayer + 1);
131137
if (layer1.empty()) {
132138
continue;

0 commit comments

Comments
 (0)