From 4e7c98dda8d9cc612fd2a84058379c1dc0ef71e5 Mon Sep 17 00:00:00 2001 From: Christian Sonnabend Date: Thu, 21 Aug 2025 22:18:48 +0200 Subject: [PATCH 1/3] Adding sigma=0 cluster handling --- .../GPUTPCNNClusterizerKernels.cxx | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/GPU/GPUTracking/TPCClusterFinder/GPUTPCNNClusterizerKernels.cxx b/GPU/GPUTracking/TPCClusterFinder/GPUTPCNNClusterizerKernels.cxx index dd33a72f79389..143b73263642a 100644 --- a/GPU/GPUTracking/TPCClusterFinder/GPUTPCNNClusterizerKernels.cxx +++ b/GPU/GPUTracking/TPCClusterFinder/GPUTPCNNClusterizerKernels.cxx @@ -360,20 +360,28 @@ GPUdii() void GPUTPCNNClusterizerKernels::Thread(chargeMap[tmp_pos].unpack()) > 0); + notSingleTime |= (d.y != 0) && (static_cast(chargeMap[tmp_pos].unpack()) > 0); + } + if (dtype == 0) { pc.setFull(central_charge * clustererNN.mOutputDataReg1_16[model_output_index + 4].ToFloat(), static_cast(peak.pad()) + clustererNN.mOutputDataReg1_16[model_output_index].ToFloat(), - clustererNN.mOutputDataReg1_16[model_output_index + 2].ToFloat(), + notSinglePad ? clustererNN.mOutputDataReg1_16[model_output_index + 2].ToFloat() : 0, (clusterer.mPmemory->fragment).start + static_cast(peak.time()) + clustererNN.mOutputDataReg1_16[model_output_index + 1].ToFloat(), - clustererNN.mOutputDataReg1_16[model_output_index + 3].ToFloat(), + notSingleTime ? clustererNN.mOutputDataReg1_16[model_output_index + 3].ToFloat() : 0.f, clustererNN.mClusterFlags[2 * glo_idx], clustererNN.mClusterFlags[2 * glo_idx + 1]); } else if (dtype == 1) { pc.setFull(central_charge * clustererNN.mOutputDataReg1_32[model_output_index + 4], static_cast(peak.pad()) + clustererNN.mOutputDataReg1_32[model_output_index], - clustererNN.mOutputDataReg1_32[model_output_index + 2], + notSinglePad ? clustererNN.mOutputDataReg1_32[model_output_index + 2] : 0.f, (clusterer.mPmemory->fragment).start + static_cast(peak.time()) + clustererNN.mOutputDataReg1_32[model_output_index + 1], - clustererNN.mOutputDataReg1_32[model_output_index + 3], + notSingleTime ? clustererNN.mOutputDataReg1_32[model_output_index + 3] : 0.f, clustererNN.mClusterFlags[2 * glo_idx], clustererNN.mClusterFlags[2 * glo_idx + 1]); } From 9afca783c7721746be4b0f9b35e63e4b3b26eeda Mon Sep 17 00:00:00 2001 From: Christian Sonnabend Date: Thu, 21 Aug 2025 22:20:07 +0200 Subject: [PATCH 2/3] fix --- GPU/GPUTracking/TPCClusterFinder/GPUTPCNNClusterizerKernels.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GPU/GPUTracking/TPCClusterFinder/GPUTPCNNClusterizerKernels.cxx b/GPU/GPUTracking/TPCClusterFinder/GPUTPCNNClusterizerKernels.cxx index 143b73263642a..62032f6e2c46d 100644 --- a/GPU/GPUTracking/TPCClusterFinder/GPUTPCNNClusterizerKernels.cxx +++ b/GPU/GPUTracking/TPCClusterFinder/GPUTPCNNClusterizerKernels.cxx @@ -373,7 +373,7 @@ GPUdii() void GPUTPCNNClusterizerKernels::Thread(peak.pad()) + clustererNN.mOutputDataReg1_16[model_output_index].ToFloat(), notSinglePad ? clustererNN.mOutputDataReg1_16[model_output_index + 2].ToFloat() : 0, (clusterer.mPmemory->fragment).start + static_cast(peak.time()) + clustererNN.mOutputDataReg1_16[model_output_index + 1].ToFloat(), - notSingleTime ? clustererNN.mOutputDataReg1_16[model_output_index + 3].ToFloat() : 0.f, + notSingleTime ? clustererNN.mOutputDataReg1_16[model_output_index + 3].ToFloat() : 0, clustererNN.mClusterFlags[2 * glo_idx], clustererNN.mClusterFlags[2 * glo_idx + 1]); } else if (dtype == 1) { From c33bca2863ddd978e2d0cf3062b7177f98488772 Mon Sep 17 00:00:00 2001 From: Christian Sonnabend Date: Thu, 21 Aug 2025 22:20:24 +0200 Subject: [PATCH 3/3] fix --- .../TPCClusterFinder/GPUTPCNNClusterizerKernels.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/GPU/GPUTracking/TPCClusterFinder/GPUTPCNNClusterizerKernels.cxx b/GPU/GPUTracking/TPCClusterFinder/GPUTPCNNClusterizerKernels.cxx index 62032f6e2c46d..1882acd2a45c6 100644 --- a/GPU/GPUTracking/TPCClusterFinder/GPUTPCNNClusterizerKernels.cxx +++ b/GPU/GPUTracking/TPCClusterFinder/GPUTPCNNClusterizerKernels.cxx @@ -371,9 +371,9 @@ GPUdii() void GPUTPCNNClusterizerKernels::Thread(peak.pad()) + clustererNN.mOutputDataReg1_16[model_output_index].ToFloat(), - notSinglePad ? clustererNN.mOutputDataReg1_16[model_output_index + 2].ToFloat() : 0, + notSinglePad ? clustererNN.mOutputDataReg1_16[model_output_index + 2].ToFloat() : 0.f, (clusterer.mPmemory->fragment).start + static_cast(peak.time()) + clustererNN.mOutputDataReg1_16[model_output_index + 1].ToFloat(), - notSingleTime ? clustererNN.mOutputDataReg1_16[model_output_index + 3].ToFloat() : 0, + notSingleTime ? clustererNN.mOutputDataReg1_16[model_output_index + 3].ToFloat() : 0.f, clustererNN.mClusterFlags[2 * glo_idx], clustererNN.mClusterFlags[2 * glo_idx + 1]); } else if (dtype == 1) {