From a601645122a25abc90c561b6618cec1bc703cb34 Mon Sep 17 00:00:00 2001 From: Lanqing Yuan Date: Thu, 13 Oct 2022 23:28:41 -0500 Subject: [PATCH 1/3] fixed delta peak timestamp problem --- strax/processing/peak_merging.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/strax/processing/peak_merging.py b/strax/processing/peak_merging.py index 709b9ab5d..878d07e0c 100644 --- a/strax/processing/peak_merging.py +++ b/strax/processing/peak_merging.py @@ -161,5 +161,5 @@ def add_lone_hits(peaks, lone_hits, to_pe): p['area_per_channel'][lh_i['channel']] += lh_area # Add lone hit as delta pulse to waveform: - index = (p['time'] - lh_i['time'])//p['dt'] + index = (lh_i['time'] - p['time'])//p['dt'] p['data'][index] += lh_area From d6f9a689f8a7e8ddc288531fea5b7fb11ef98631 Mon Sep 17 00:00:00 2001 From: Joran Angevaare Date: Mon, 17 Oct 2022 16:59:53 +0200 Subject: [PATCH 2/3] fix the test to find the issue --- strax/processing/peak_merging.py | 3 +++ tests/test_peak_merging.py | 16 +++++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/strax/processing/peak_merging.py b/strax/processing/peak_merging.py index 878d07e0c..841d91f2d 100644 --- a/strax/processing/peak_merging.py +++ b/strax/processing/peak_merging.py @@ -162,4 +162,7 @@ def add_lone_hits(peaks, lone_hits, to_pe): # Add lone hit as delta pulse to waveform: index = (lh_i['time'] - p['time'])//p['dt'] + # index = (p['time'] - lh_i['time']) // p['dt'] + if index < 0 or index > len(p['data']): + raise ValueError('Hit outside of full containment!') p['data'][index] += lh_area diff --git a/tests/test_peak_merging.py b/tests/test_peak_merging.py index 2c2eed935..32e82eee7 100644 --- a/tests/test_peak_merging.py +++ b/tests/test_peak_merging.py @@ -51,12 +51,18 @@ def test_replace_merged(intervals, merge_instructions): @hypothesis.given(fake_hits, - hypothesis.strategies.integers(min_value=0, max_value=100)) + hypothesis.strategies.integers(min_value=0, max_value=int(1e18)), + hypothesis.strategies.integers(min_value=0, max_value=100), + hypothesis.strategies.integers(min_value=1, max_value=2), + ) @hypothesis.settings(deadline=None) -def test_add_lone_hits(hits, peak_length): +def test_add_lone_hits(hits, time_offset, peak_length, dt): peak = np.zeros(1, dtype=strax.peak_dtype()) + peak['time'] = time_offset + hits['time'] += time_offset peak['length'] = peak_length - peak['dt'] = 1 + hits['area'] = 1 + peak['dt'] = dt to_pe = np.ones(10000) strax.add_lone_hits(peak, hits, to_pe) @@ -70,7 +76,7 @@ def test_add_lone_hits(hits, peak_length): dummy_peak = np.zeros(peak_length) for h in split_hits: - dummy_peak[h['time']] += h['area'] + dummy_peak[(h['time']-time_offset)//dt] += h['area'] peak = peak[0] assert peak['area'] == np.sum(split_hits['area']) - assert np.all(peak['data'][:peak['length']] == dummy_peak) + assert np.all(peak['data'][:peak_length] == dummy_peak) From 3a29b1daba1f180ff25baf741b183b51f2adb817 Mon Sep 17 00:00:00 2001 From: "Joran R. Angevaare" Date: Mon, 17 Oct 2022 17:01:19 +0200 Subject: [PATCH 3/3] Update peak_merging.py --- strax/processing/peak_merging.py | 1 - 1 file changed, 1 deletion(-) diff --git a/strax/processing/peak_merging.py b/strax/processing/peak_merging.py index 841d91f2d..2516ce93f 100644 --- a/strax/processing/peak_merging.py +++ b/strax/processing/peak_merging.py @@ -162,7 +162,6 @@ def add_lone_hits(peaks, lone_hits, to_pe): # Add lone hit as delta pulse to waveform: index = (lh_i['time'] - p['time'])//p['dt'] - # index = (p['time'] - lh_i['time']) // p['dt'] if index < 0 or index > len(p['data']): raise ValueError('Hit outside of full containment!') p['data'][index] += lh_area