Skip to content

Commit 272b78e

Browse files
committed
GPU: Fix Debug Dump of deterministic mode without dEdx (was segfaulting in sync mode)
1 parent a28ef94 commit 272b78e

File tree

7 files changed

+13
-13
lines changed

7 files changed

+13
-13
lines changed

GPU/GPUTracking/Base/GPUParam.cxx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -135,9 +135,9 @@ void GPUParam::UpdateSettings(const GPUSettingsGRP* g, const GPUSettingsProcessi
135135
UpdateRun3ClusterErrors(p->param.tpcErrorParamY, p->param.tpcErrorParamZ);
136136
}
137137
if (w) {
138-
par.dodEdx = dodEdxDownscaled = w->steps.isSet(GPUDataTypes::RecoStep::TPCdEdx);
139-
if (par.dodEdx && p && p->tpcDownscaledEdx != 0) {
140-
dodEdxDownscaled = (rand() % 100) < p->tpcDownscaledEdx;
138+
par.dodEdx = dodEdxEnabled = w->steps.isSet(GPUDataTypes::RecoStep::TPCdEdx);
139+
if (dodEdxEnabled && p && p->tpcDownscaledEdx != 0) {
140+
dodEdxEnabled = (rand() % 100) < p->tpcDownscaledEdx;
141141
}
142142
}
143143
if (d) {

GPU/GPUTracking/Base/GPUParam.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ struct GPUParam_t {
5454
float bzCLight;
5555
float qptB5Scaler;
5656

57-
int8_t dodEdxDownscaled;
57+
int8_t dodEdxEnabled;
5858
int32_t continuousMaxTimeBin;
5959
int32_t tpcCutTimeBin;
6060

GPU/GPUTracking/Global/GPUChainTrackingMerger.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ int32_t GPUChainTracking::RunTPCTrackingMerger(bool synchronizeOutput)
256256
}
257257
GPUMemCpy(RecoStep::TPCMerging, Merger.OutputTracks(), MergerShadowAll.OutputTracks(), Merger.NOutputTracks() * sizeof(*Merger.OutputTracks()), outputStream, 0, nullptr, waitEvent);
258258
waitEvent = nullptr;
259-
if (param().dodEdxDownscaled) {
259+
if (param().dodEdxEnabled) {
260260
GPUMemCpy(RecoStep::TPCMerging, Merger.OutputTracksdEdx(), MergerShadowAll.OutputTracksdEdx(), Merger.NOutputTracks() * sizeof(*Merger.OutputTracksdEdx()), outputStream, 0);
261261
}
262262
GPUMemCpy(RecoStep::TPCMerging, Merger.Clusters(), MergerShadowAll.Clusters(), Merger.NOutputTrackClusters() * sizeof(*Merger.Clusters()), outputStream, 0);

GPU/GPUTracking/Merger/GPUTPCGMMerger.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,7 @@ void* GPUTPCGMMerger::SetPointersRefitScratch(void* mem)
299299
void* GPUTPCGMMerger::SetPointersOutput(void* mem)
300300
{
301301
computePointerWithAlignment(mem, mOutputTracks, mNMaxTracks);
302-
if (mRec->GetParam().dodEdxDownscaled) {
302+
if (mRec->GetParam().dodEdxEnabled) {
303303
computePointerWithAlignment(mem, mOutputTracksdEdx, mNMaxTracks);
304304
computePointerWithAlignment(mem, mOutputTracksdEdxAlt, mNMaxTracks);
305305
}

GPU/GPUTracking/Merger/GPUTPCGMMergerDump.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ void GPUTPCGMMerger::DumpRefit(std::ostream& out) const
203203
const auto& p = trk.GetParam();
204204
const auto& po = trk.OuterParam();
205205
out << " Track " << i << ": OK " << trk.OK() << " Alpha " << trk.GetAlpha() << " X " << p.GetX() << " offset " << p.GetTZOffset() << " Y " << p.GetY() << " Z " << p.GetZ() << " SPhi " << p.GetSinPhi() << " Tgl " << p.GetDzDs() << " QPt " << p.GetQPt() << " NCl " << trk.NClusters() << " / " << trk.NClustersFitted() << " Cov " << p.GetErr2Y() << "/" << p.GetErr2Z()
206-
<< " dEdx " << (trk.OK() ? mOutputTracksdEdx[i].dEdxTotTPC : -1.f) << "/" << (trk.OK() ? mOutputTracksdEdx[i].dEdxMaxTPC : -1.f)
206+
<< " dEdx " << (trk.OK() && Param().dodEdxEnabled ? mOutputTracksdEdx[i].dEdxTotTPC : -1.f) << "/" << (trk.OK() && Param().dodEdxEnabled ? mOutputTracksdEdx[i].dEdxMaxTPC : -1.f)
207207
<< " Outer " << po.P[0] << "/" << po.P[1] << "/" << po.P[2] << "/" << po.P[3] << "/" << po.P[4] << "\n";
208208
}
209209
out << std::setprecision(ss);

GPU/GPUTracking/Merger/GPUTPCGMO2Output.cxx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ GPUdii() void GPUTPCGMO2Output::Thread<GPUTPCGMO2Output::prepare>(int32_t nBlock
4444

4545
constexpr uint8_t flagsReject = getFlagsReject();
4646
const uint32_t flagsRequired = getFlagsRequired(merger.Param().rec);
47-
bool cutOnTrackdEdx = merger.Param().par.dodEdx && merger.Param().dodEdxDownscaled && merger.Param().rec.tpc.minTrackdEdxMax2Tot > 0.f;
47+
bool cutOnTrackdEdx = merger.Param().par.dodEdx && merger.Param().dodEdxEnabled && merger.Param().rec.tpc.minTrackdEdxMax2Tot > 0.f;
4848

4949
GPUTPCGMMerger::tmpSort* GPUrestrict() trackSort = merger.TrackSortO2();
5050
uint2* GPUrestrict() tmpData = merger.ClusRefTmp();
@@ -130,7 +130,7 @@ GPUdii() void GPUTPCGMO2Output::Thread<GPUTPCGMO2Output::output>(int32_t nBlocks
130130

131131
oTrack.setChi2(tracks[i].GetParam().GetChi2());
132132
auto& outerPar = tracks[i].OuterParam();
133-
if (merger.Param().par.dodEdx && merger.Param().dodEdxDownscaled) {
133+
if (merger.Param().par.dodEdx && merger.Param().dodEdxEnabled) {
134134
oTrack.setdEdx(tracksdEdx[i]);
135135
oTrack.setdEdxAlt(tracksdEdxAlt[i]);
136136
}
@@ -148,7 +148,7 @@ GPUdii() void GPUTPCGMO2Output::Thread<GPUTPCGMO2Output::output>(int32_t nBlocks
148148
outerPar.C[6], outerPar.C[7], outerPar.C[8], outerPar.C[9], outerPar.C[10], outerPar.C[11],
149149
outerPar.C[12], outerPar.C[13], outerPar.C[14]}));
150150

151-
if (merger.Param().par.dodEdx && merger.Param().dodEdxDownscaled && merger.Param().rec.tpc.enablePID) {
151+
if (merger.Param().par.dodEdx && merger.Param().dodEdxEnabled && merger.Param().rec.tpc.enablePID) {
152152
PIDResponse pidResponse{};
153153
auto pid = pidResponse.getMostProbablePID(oTrack, merger.Param().rec.tpc.PID_EKrangeMin, merger.Param().rec.tpc.PID_EKrangeMax, merger.Param().rec.tpc.PID_EPrangeMin, merger.Param().rec.tpc.PID_EPrangeMax, merger.Param().rec.tpc.PID_EDrangeMin, merger.Param().rec.tpc.PID_EDrangeMax, merger.Param().rec.tpc.PID_ETrangeMin, merger.Param().rec.tpc.PID_ETrangeMax, merger.Param().rec.tpc.PID_useNsigma, merger.Param().rec.tpc.PID_sigma);
154154
auto pidRemap = merger.Param().rec.tpc.PID_remap[pid];

GPU/GPUTracking/Merger/GPUTPCGMTrackParam.cxx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ GPUd() bool GPUTPCGMTrackParam::Fit(GPUTPCGMMerger* GPUrestrict() merger, int32_
216216
continue;
217217
}
218218
} else if (allowModification && lastRow != 255 && CAMath::Abs(cluster.row - lastRow) > 1) {
219-
bool dodEdx = param.par.dodEdx && param.dodEdxDownscaled && param.rec.tpc.adddEdxSubThresholdClusters && iWay == nWays - 1 && CAMath::Abs(cluster.row - lastRow) == 2 && cluster.leg == clusters[maxN - 1].leg;
219+
bool dodEdx = param.par.dodEdx && param.dodEdxEnabled && param.rec.tpc.adddEdxSubThresholdClusters && iWay == nWays - 1 && CAMath::Abs(cluster.row - lastRow) == 2 && cluster.leg == clusters[maxN - 1].leg;
220220
dodEdx = AttachClustersPropagate(merger, cluster.sector, lastRow, cluster.row, iTrk, cluster.leg == clusters[maxN - 1].leg, prop, inFlyDirection, GPUCA_MAX_SIN_PHI, dodEdx);
221221
if (dodEdx) {
222222
dEdx.fillSubThreshold(lastRow - wayDirection);
@@ -367,7 +367,7 @@ GPUd() bool GPUTPCGMTrackParam::Fit(GPUTPCGMMerger* GPUrestrict() merger, int32_
367367
CADEBUG(printf("Reinit linearization\n"));
368368
prop.SetTrack(this, prop.GetAlpha());
369369
}
370-
if (param.par.dodEdx && param.dodEdxDownscaled && iWay == nWays - 1 && cluster.leg == clusters[maxN - 1].leg) { // TODO: Costimize flag to remove, and option to remove double-clusters
370+
if (param.par.dodEdx && param.dodEdxEnabled && iWay == nWays - 1 && cluster.leg == clusters[maxN - 1].leg) { // TODO: Costimize flag to remove, and option to remove double-clusters
371371
bool acc = (clusterState & param.rec.tpc.dEdxClusterRejectionFlagMask) == 0, accAlt = (clusterState & param.rec.tpc.dEdxClusterRejectionFlagMaskAlt) == 0;
372372
if (acc || accAlt) {
373373
float qtot = 0, qmax = 0, pad = 0, relTime = 0;
@@ -426,7 +426,7 @@ GPUd() bool GPUTPCGMTrackParam::Fit(GPUTPCGMMerger* GPUrestrict() merger, int32_
426426

427427
// TODO: we have looping tracks here with 0 accepted clusters in the primary leg. In that case we should refit the track using only the primary leg.
428428

429-
if (param.par.dodEdx && param.dodEdxDownscaled) {
429+
if (param.par.dodEdx && param.dodEdxEnabled) {
430430
dEdx.computedEdx(merger->OutputTracksdEdx()[iTrk], param);
431431
dEdxAlt.computedEdx(merger->OutputTracksdEdxAlt()[iTrk], param);
432432
}

0 commit comments

Comments
 (0)