Skip to content

Commit 0228265

Browse files
committed
GPU TPC: Fix index for hit interpolation in rows with multiple clusters
1 parent e661eb8 commit 0228265

1 file changed

Lines changed: 4 additions & 4 deletions

File tree

GPU/GPUTracking/Merger/GPUTPCGMTrackParam.cxx

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

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

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

@@ -370,7 +370,7 @@ GPUd() bool GPUTPCGMTrackParam::Fit(GPUTPCGMMerger* GPUrestrict() merger, int32_
370370
retValUpd = prop.Update(yy, zz, cluster.row, param, clusterState, rejectChi2, refit, err2Y, err2Z);
371371
}
372372
GPUCA_DEBUG_STREAMER_CHECK(if (o2::utils::DebugStreamer::checkStream(o2::utils::StreamFlags::streamUpdateTrack, iTrk)) {
373-
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);
373+
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);
374374
});
375375
}
376376
// clang-format off

0 commit comments

Comments
 (0)