Skip to content

Commit 8ec2cd3

Browse files
committed
GPU TPC: Fix index for hit interpolation in rows with multiple clusters
1 parent 06fd70d commit 8ec2cd3

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
@@ -225,13 +225,13 @@ GPUd() bool GPUTPCGMTrackParam::Fit(GPUTPCGMMerger* GPUrestrict() merger, int32_
225225
}
226226
}
227227

228+
auto& inter = interpolation.hit[iWay & 1 ? ihit : ihitMergeFirst];
228229
float uncorrectedY = -1e6f;
229230
if (param.rec.tpc.rebuildTrackInFit && iWay == nWays - 2) {
230231
const GPUTPCTracker& GPUrestrict() tracker = *(merger -> GetConstantMem()->tpcTrackers + cluster.sector);
231232
const GPUTPCRow& GPUrestrict() row = tracker.Row(cluster.row);
232233
GPUglobalref() const cahit2* hits = tracker.HitData(row);
233234
GPUglobalref() const calink* firsthit = tracker.FirstHitInBin(row);
234-
const auto& inter = interpolation.hit[ihit];
235235
if (row.NHits() && inter.errorY >= (GPUCA_PAR_MERGER_INTERPOLATION_ERROR_TYPE_A)0) {
236236
const float zOffset = merger->GetConstantMem()->calibObjects.fastTransformHelper->getCorrMap()->convVertexTimeToZOffset(cluster.sector, mTOffset, param.continuousMaxTimeBin);
237237
const float y0 = row.Grid().YMin();
@@ -364,10 +364,10 @@ GPUd() bool GPUTPCGMTrackParam::Fit(GPUTPCGMMerger* GPUrestrict() merger, int32_
364364
prop.GetErr2(err2Y, err2Z, param, zz, cluster.row, clusterState, cluster.sector, time, invAvgCharge, invCharge);
365365

366366
if (rejectChi2 >= GPUTPCGMPropagator::rejectInterFill) {
367-
if (rejectChi2 == GPUTPCGMPropagator::rejectInterReject && interpolation.hit[ihit].errorY < (GPUCA_PAR_MERGER_INTERPOLATION_ERROR_TYPE_A)0) {
367+
if (rejectChi2 == GPUTPCGMPropagator::rejectInterReject && inter.errorY < (GPUCA_PAR_MERGER_INTERPOLATION_ERROR_TYPE_A)0) {
368368
rejectChi2 = GPUTPCGMPropagator::rejectDirect;
369369
} else {
370-
retValInt = prop.InterpolateReject(param, yy, zz, clusterState, rejectChi2, &interpolation.hit[ihit], err2Y, err2Z, deltaZ);
370+
retValInt = prop.InterpolateReject(param, yy, zz, clusterState, rejectChi2, &inter, err2Y, err2Z, deltaZ);
371371
}
372372
}
373373

@@ -377,7 +377,7 @@ GPUd() bool GPUTPCGMTrackParam::Fit(GPUTPCGMMerger* GPUrestrict() merger, int32_
377377
retValUpd = prop.Update(yy, zz, cluster.row, param, clusterState, rejectChi2, refit, err2Y, err2Z);
378378
}
379379
GPUCA_DEBUG_STREAMER_CHECK(if (o2::utils::DebugStreamer::checkStream(o2::utils::StreamFlags::streamUpdateTrack, iTrk)) {
380-
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);
380+
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);
381381
});
382382
}
383383
// clang-format off

0 commit comments

Comments
 (0)