Skip to content

Commit b1edead

Browse files
committed
GPU: Additional debug dumps
1 parent 2a2d02e commit b1edead

3 files changed

Lines changed: 41 additions & 0 deletions

File tree

GPU/GPUTracking/Global/GPUChainTrackingMerger.cxx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,9 @@ int32_t GPUChainTracking::RunTPCTrackingMerger(bool synchronizeOutput)
243243
}
244244
}
245245
runKernel<GPUTPCGMMergerHitWeights, GPUTPCGMMergerHitWeights::resolve2>(doGPU ? GetGrid(Merger.NMergedTracks(), 0) : GetGridAuto(0), 0);
246+
DoDebugAndDump(RecoStep::TPCMerging, GPUChainTrackingDebugFlags::TPCMergingRefit, Merger, &GPUTPCGMMerger::DumpInterpolatedHits, *mDebugFile);
246247
runKernel<GPUTPCGMMergerHitWeights, GPUTPCGMMergerHitWeights::resolveShared>(doGPU ? GetGrid(Merger.NMergedTracks(), 0) : GetGridAuto(0), 0);
248+
DoDebugAndDump(RecoStep::TPCMerging, GPUChainTrackingDebugFlags::TPCMergingRefit, Merger, &GPUTPCGMMerger::DumpRebuiltTracks, *mDebugFile);
247249
runKernel<GPUTPCGMMergerTrackFit>(doGPU ? GetGrid(Merger.NMergedTracks(), 0) : GetGridAuto(0), mergerSortTracks ? 1 : 0, 1);
248250
}
249251
runKernel<GPUTPCGMMergerFollowLoopers>(GetGridAuto(0));

GPU/GPUTracking/Merger/GPUTPCGMMerger.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,8 @@ class GPUTPCGMMerger : public GPUProcessor
222222
void DumpRefit(std::ostream& out) const;
223223
void DumpFinal(std::ostream& out) const;
224224
void DumpLoopers(std::ostream& out) const;
225+
void DumpInterpolatedHits(std::ostream& out) const;
226+
void DumpRebuiltTracks(std::ostream& out) const;
225227
void DumpTrackParam(std::ostream& out) const;
226228
void DumpTrackClusters(std::ostream& out, bool non0StateOnly = false, bool noNDF0 = false) const;
227229

GPU/GPUTracking/Merger/GPUTPCGMMergerDump.cxx

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,15 @@ void GPUTPCGMMerger::DumpTrackParam(std::ostream& out) const
150150
out << std::setprecision(ss);
151151
}
152152

153+
void GPUTPCGMMerger::DumpRebuiltTracks(std::ostream& out) const
154+
{
155+
out << "\nTPC Merger Rebuilt Tracks\n";
156+
out << " Cluster Attachment\n";
157+
DumpTrackClusters(out, false, true);
158+
out << " Track Params\n";
159+
DumpTrackParam(out);
160+
}
161+
153162
void GPUTPCGMMerger::DumpMergeCE(std::ostream& out) const
154163
{
155164
DumpTrackLinks(out, true, " for CE merging");
@@ -255,6 +264,34 @@ void GPUTPCGMMerger::DumpFinal(std::ostream& out) const
255264
out << "\n";
256265
}
257266

267+
void GPUTPCGMMerger::DumpInterpolatedHits(std::ostream& out) const
268+
{
269+
out << "\nTPC Merger Interpolated Hits\n";
270+
for (uint32_t i = 0; i < mMemory->nMergedTracks; i++) {
271+
const auto& trk = mMergedTracks[i];
272+
if (trk.OK() && trk.GetParam().GetNDF() >= 0 && trk.NClusters()) {
273+
out << "Track " << i << ":";
274+
for (uint32_t j = 0; j < GPUTPCGeometry::NROWS; j++) {
275+
auto* candidates = &mClusterCandidates[(i * GPUTPCGeometry::NROWS + j) * Param().rec.tpc.rebuildTrackInFitClusterCandidates];
276+
if (candidates[0].id) {
277+
out << " Row " << j << ": ";
278+
if (candidates[0].best) {
279+
out << " Best " << candidates[0].best << " - ";
280+
}
281+
for (uint32_t k = 0; k < Param().rec.tpc.rebuildTrackInFitClusterCandidates; k++) {
282+
if (candidates[k].id) {
283+
out << k << ": id " << candidates[k].id << " err " << candidates[k].error << " weight " << candidates[k].weight << " - ";
284+
}
285+
}
286+
out << "; ";
287+
}
288+
}
289+
out << "\n";
290+
}
291+
}
292+
out << "\n";
293+
}
294+
258295
template <int32_t mergeType>
259296
inline void GPUTPCGMMerger::MergedTrackStreamerInternal(const GPUTPCGMBorderTrack& b1, const GPUTPCGMBorderTrack& b2, const char* name, int32_t sector1, int32_t sector2, uint8_t mergeMode, float weight, float frac) const
260297
{

0 commit comments

Comments
 (0)