From 343a77016beb1d1be5ab9e108ff3ac9d90fe8336 Mon Sep 17 00:00:00 2001
From: David Hammer <dhammer@mailbox.org>
Date: Tue, 18 Feb 2025 12:35:19 +0100
Subject: [PATCH] Actually use the threshold

---
 src/calng/correction_addons/peakfinder9.py | 3 ++-
 src/calng/kernels/peakfinder9_gpu.cu       | 3 +++
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/calng/correction_addons/peakfinder9.py b/src/calng/correction_addons/peakfinder9.py
index d7035375..bcb0d552 100644
--- a/src/calng/correction_addons/peakfinder9.py
+++ b/src/calng/correction_addons/peakfinder9.py
@@ -64,7 +64,8 @@ class Peakfinder9(BaseCorrectionAddon):
             .description(
                 "Current pixel is rejected as start of peak if it does not exceed mean "
                 "by at least mean by this amount times sigma. Both mean and sigma are "
-                "based on window border pixels."
+                "based on window border pixels. This value should be larger than or "
+                "equal to minSnrPeakPixels or things may break."
             )
             .tags("managed")
             .assignmentOptional()
diff --git a/src/calng/kernels/peakfinder9_gpu.cu b/src/calng/kernels/peakfinder9_gpu.cu
index 159e9584..29a53843 100644
--- a/src/calng/kernels/peakfinder9_gpu.cu
+++ b/src/calng/kernels/peakfinder9_gpu.cu
@@ -180,6 +180,9 @@ extern "C" __global__ void pf9(const unsigned short num_frames,
 		if (peak_total_mass <= mean + min_snr_whole_peak * sigma) {
 			return;
 		}
+		if (num_peak_pixels < min_peak_pixels || num_peak_pixels > max_peak_pixels) {
+		    return;
+        }
 		if (peak_total_mass == 0) {
 			peak_weighted_ss = static_cast<float>(ss_index);
 			peak_weighted_fs = static_cast<float>(fs_index);
-- 
GitLab