Skip to content

Commit 9edff03

Browse files
test for different bins
1 parent 723a332 commit 9edff03

File tree

2 files changed

+36
-7
lines changed

2 files changed

+36
-7
lines changed

libra_toolbox/neutron_detection/activation_foils/compass.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ def get_live_time_from_root(root_filename: str, channel: int) -> Tuple[float, fl
159159

160160

161161
class Detector:
162-
events: NDArray[Tuple[float, float]] # type: ignore # Array of (time, energy) pairs
162+
events: NDArray[Tuple[float, float]] # type: ignore # Array of (time in ps, energy) pairs
163163
channel_nb: int
164164
live_count_time: float
165165
real_count_time: float
@@ -175,7 +175,9 @@ def __init__(self, channel_nb) -> None:
175175
self.live_count_time = None
176176
self.real_count_time = None
177177

178-
def get_energy_hist(self, bins: Union[int, str]) -> Tuple[np.ndarray, np.ndarray]:
178+
def get_energy_hist(
179+
self, bins: Union[int, str, NDArray[np.float64]]
180+
) -> Tuple[np.ndarray, np.ndarray]:
179181
"""
180182
Get the energy histogram of the detector events.
181183
Args:
@@ -186,21 +188,18 @@ def get_energy_hist(self, bins: Union[int, str]) -> Tuple[np.ndarray, np.ndarray
186188

187189
energy_values = self.events[:, 1].copy()
188190
time_values = self.events[:, 0].copy()
191+
189192
# sort data based on timestamp
190193
inds = np.argsort(time_values)
191194
time_values = time_values[inds]
192195
energy_values = energy_values[inds]
193-
# print(np.nanmax(energy_values[source]))
194196

195197
energy_values = np.nan_to_num(energy_values, nan=0)
196198

197-
if isinstance(bins, int):
199+
if isinstance(bins, (np.ndarray, int)):
198200
real_bins = bins
199201
elif bins == "double":
200202
real_bins = int(np.nanmax(energy_values) / 2)
201-
else:
202-
# NOTE I don't think this is used
203-
real_bins = np.arange(0, np.max(energy_values))
204203

205204
return np.histogram(energy_values, bins=real_bins)
206205

test/neutron_detection/test_compass.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -301,3 +301,33 @@ def test_measurement_object_from_directory(no_root):
301301
assert measurement.detectors[0].events.shape[1] == 2
302302

303303
measurement.detectors[0].get_energy_hist(bins="double")
304+
305+
306+
@pytest.mark.parametrize(
307+
"bins",
308+
[
309+
10,
310+
20,
311+
50,
312+
100,
313+
"double",
314+
np.arange(0, 10, 1),
315+
np.linspace(0, 10, num=100),
316+
],
317+
)
318+
def test_detector_get_energy_hist(bins):
319+
"""
320+
Test the get_energy_hist method of the Detector class.
321+
"""
322+
my_detector = compass.Detector(channel_nb=1)
323+
my_detector.events = np.array(
324+
[
325+
[1, 2],
326+
[3, 4],
327+
[5, 6],
328+
[7, 8],
329+
[9, 10],
330+
]
331+
)
332+
333+
my_detector.get_energy_hist(bins=bins)

0 commit comments

Comments
 (0)