Skip to content

Commit 62be2f4

Browse files
committed
GPU TPC: Fix index for hit interpolation in rows with multiple clusters
1 parent 70e6f51 commit 62be2f4

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

GPU/GPUTracking/Merger/GPUTPCGMTrackParam.cxx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -220,13 +220,13 @@ GPUd() bool GPUTPCGMTrackParam::Fit(GPUTPCGMMerger* GPUrestrict() merger, int32_
220220
}
221221
}
222222

223+
auto& inter = interpolation.hit[iWay & 1 ? ihit : ihitMergeFirst];
223224
float uncorrectedY = -1e6f;
224225
if (param.rec.tpc.rebuildTrackInFit && iWay == nWays - 2) {
225226
const GPUTPCTracker& GPUrestrict() tracker = *(merger -> GetConstantMem()->tpcTrackers + cluster.sector);
226227
const GPUTPCRow& GPUrestrict() row = tracker.Row(cluster.row);
227228
GPUglobalref() const cahit2* hits = tracker.HitData(row);
228229
GPUglobalref() const calink* firsthit = tracker.FirstHitInBin(row);
229-
const auto& inter = interpolation.hit[ihit];
230230
if (row.NHits() && inter.errorY >= (GPUCA_PAR_MERGER_INTERPOLATION_ERROR_TYPE_A)0) {
231231
const float zOffset = merger->GetConstantMem()->calibObjects.fastTransformHelper->getCorrMap()->convVertexTimeToZOffset(cluster.sector, mTOffset, param.continuousMaxTimeBin);
232232
const float y0 = row.Grid().YMin();
@@ -358,10 +358,10 @@ GPUd() bool GPUTPCGMTrackParam::Fit(GPUTPCGMMerger* GPUrestrict() merger, int32_
358358
prop.GetErr2(err2Y, err2Z, param, zz, cluster.row, clusterState, cluster.sector, time, invAvgCharge, invCharge);
359359

360360
if (rejectChi2 >= GPUTPCGMPropagator::rejectInterFill) {
361-
if (rejectChi2 == GPUTPCGMPropagator::rejectInterReject && interpolation.hit[ihit].errorY < (GPUCA_PAR_MERGER_INTERPOLATION_ERROR_TYPE_A)0) {
361+
if (rejectChi2 == GPUTPCGMPropagator::rejectInterReject && inter.errorY < (GPUCA_PAR_MERGER_INTERPOLATION_ERROR_TYPE_A)0) {
362362
rejectChi2 = GPUTPCGMPropagator::rejectDirect;
363363
} else {
364-
retValInt = prop.InterpolateReject(param, yy, zz, clusterState, rejectChi2, &interpolation.hit[ihit], err2Y, err2Z, deltaZ);
364+
retValInt = prop.InterpolateReject(param, yy, zz, clusterState, rejectChi2, &inter, err2Y, err2Z, deltaZ);
365365
}
366366
}
367367

@@ -371,7 +371,7 @@ GPUd() bool GPUTPCGMTrackParam::Fit(GPUTPCGMMerger* GPUrestrict() merger, int32_
371371
retValUpd = prop.Update(yy, zz, cluster.row, param, clusterState, rejectChi2, refit, err2Y, err2Z);
372372
}
373373
GPUCA_DEBUG_STREAMER_CHECK(if (o2::utils::DebugStreamer::checkStream(o2::utils::StreamFlags::streamUpdateTrack, iTrk)) {
374-
merger->DebugStreamerUpdate(iTrk, ihit, xx, yy, zz, cluster, merger->GetConstantMem()->ioPtrs.clustersNative->clustersLinear[cluster.num], *this, prop, interpolation.hit[ihit], rejectChi2, refit, retValUpd, sumInvSqrtCharge / nAvgCharge * sumInvSqrtCharge / nAvgCharge, yy, zz, clusterState, retValInt, err2Y, err2Z);
374+
merger->DebugStreamerUpdate(iTrk, ihit, xx, yy, zz, cluster, merger->GetConstantMem()->ioPtrs.clustersNative->clustersLinear[cluster.num], *this, prop, inter, rejectChi2, refit, retValUpd, sumInvSqrtCharge / nAvgCharge * sumInvSqrtCharge / nAvgCharge, yy, zz, clusterState, retValInt, err2Y, err2Z);
375375
});
376376
}
377377
// clang-format off

0 commit comments

Comments
 (0)