Skip to content

Commit e278653

Browse files
committed
GPU: Add debug function to run refit directly after track-merger-fit
1 parent d37c907 commit e278653

File tree

3 files changed

+33
-0
lines changed

3 files changed

+33
-0
lines changed

GPU/GPUTracking/Merger/GPUTPCGMMerger.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,7 @@ class GPUTPCGMMerger : public GPUProcessor
198198
void MergedTrackStreamerInternal(const GPUTPCGMBorderTrack& b1, const GPUTPCGMBorderTrack& b2, const char* name, int slice1, int slice2, int mergeMode, float weight, float frac);
199199
void MergedTrackStreamer(const GPUTPCGMBorderTrack& b1, const GPUTPCGMBorderTrack& b2, const char* name, int slice1, int slice2, int mergeMode, float weight, float frac);
200200
const GPUTPCGMBorderTrack& MergedTrackStreamerFindBorderTrack(const GPUTPCGMBorderTrack* tracks, int N, int trackId);
201+
void DebugRefitMergedTrack(const GPUTPCGMMergedTrack& track);
201202
#endif
202203

203204
private:

GPU/GPUTracking/Merger/GPUTPCGMMergerDump.cxx

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#include "GPUTPCGMBorderTrack.h"
3434
#include "GPUReconstruction.h"
3535
#include "GPUDebugStreamer.h"
36+
#include "GPUTrackingRefit.h"
3637

3738
using namespace GPUCA_NAMESPACE::gpu;
3839
using namespace gputpcgmmergertypes;
@@ -233,3 +234,33 @@ const GPUTPCGMBorderTrack& GPUTPCGMMerger::MergedTrackStreamerFindBorderTrack(co
233234
}
234235
throw std::runtime_error("didn't find border track");
235236
}
237+
238+
void GPUTPCGMMerger::DebugRefitMergedTrack(const GPUTPCGMMergedTrack& track)
239+
{
240+
GPUTPCGMMergedTrack trk = track;
241+
GPUTrackingRefit refit;
242+
((GPUConstantMem*)GetConstantMem())->ioPtrs.mergedTrackHitStates = ClusterStateExt();
243+
((GPUConstantMem*)GetConstantMem())->ioPtrs.mergedTrackHits = Clusters();
244+
refit.SetPtrsFromGPUConstantMem(GetConstantMem());
245+
int retval = refit.RefitTrackAsGPU(trk, false, true);
246+
if (retval > 0) {
247+
GPUTPCGMPropagator prop;
248+
prop.SetMaterialTPC();
249+
prop.SetPolynomialField(&Param().polynomialField);
250+
prop.SetMaxSinPhi(GPUCA_MAX_SIN_PHI);
251+
prop.SetPropagateBzOnly(false);
252+
prop.SetMatLUT(Param().rec.useMatLUT ? GetConstantMem()->calibObjects.matLUT : nullptr);
253+
prop.SetTrack(&trk.Param(), trk.GetAlpha());
254+
int err = prop.PropagateToXAlpha(track.GetParam().GetX(), track.GetAlpha(), false);
255+
if (err == 0) {
256+
printf("REFIT RESULT %d, SnpDiff %f\n", retval, trk.GetParam().GetSinPhi() - track.GetParam().GetSinPhi());
257+
if (retval > 20 && fabsf(trk.GetParam().GetSinPhi() - track.GetParam().GetSinPhi()) > 0.01) {
258+
printf("LARGE DIFF\n");
259+
}
260+
} else {
261+
printf("PROPAGATE ERROR\n");
262+
}
263+
} else {
264+
printf("REFIT ERROR\n");
265+
}
266+
}

GPU/GPUTracking/Merger/GPUTPCGMTrackParam.cxx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1152,6 +1152,7 @@ GPUd() void GPUTPCGMTrackParam::RefitTrack(GPUTPCGMMergedTrack& GPUrestrict() tr
11521152
track.SetLastX(xx * cosA - yy * sinA);
11531153
track.SetLastY(xx * sinA + yy * cosA);
11541154
track.SetLastZ(zz);
1155+
// merger->DebugRefitMergedTrack(track);
11551156
}
11561157
}
11571158

0 commit comments

Comments
 (0)