From 05c53c24f7256b238928a71331337d5cfccc89a9 Mon Sep 17 00:00:00 2001 From: ahmedk <karim.ahmed@xfel.eu> Date: Fri, 17 Sep 2021 11:42:30 +0200 Subject: [PATCH] modify validate_selected_pulses --- src/cal_tools/agipdlib.py | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/src/cal_tools/agipdlib.py b/src/cal_tools/agipdlib.py index 81c68ff00..49a427186 100644 --- a/src/cal_tools/agipdlib.py +++ b/src/cal_tools/agipdlib.py @@ -252,7 +252,8 @@ class AgipdCorrections: self.gain_mode = gain_mode self.comp_threads = comp_threads - self._validate_selected_pulses(max_pulses, max_cells) + self.start, self.last, self.step = self._validate_selected_pulses( + max_pulses, max_cells) # Correction parameters self.baseline_corr_noise_threshold = -1000 @@ -872,6 +873,8 @@ class AgipdCorrections: :param max_pulses: a list of at most 3 elements defining the range of pulses to calibrate. :param max_cells: operating memory cells. + + :return adjusted_range: An adjusted range of pulse indices to correct. """ # Validate selected pulses range: @@ -886,29 +889,23 @@ class AgipdCorrections: "maximum pulse." ) - value_error = False + adjusted_range = None if len(pulses_range) == 1: - self.start = 0 - self.last = pulses_range[0] - self.step = 1 + adjusted_range = (0, pulses_range[0], 1) elif len(pulses_range) == 2: - self.start = pulses_range[0] - self.last = pulses_range[1] - self.step = 1 - if pulses_range[0] > pulses_range[1]: - value_error = True + adjusted_range = (pulses_range[0], pulses_range[1], 1) elif len(pulses_range) == 3: - self.start = pulses_range[0] - self.last = pulses_range[1] - self.step = pulses_range[2] - if pulses_range[0] > pulses_range[1]: - value_error = True + adjusted_range = tuple(pulses_range) else: - value_error = True + raise ValueError( + "ERROR: Wrong length for the list of pulses indices range. " + "Please check the given range for \"max_pulses\":" + f"{max_pulses}. \"max_pulses\" needs to be a list of " + "3 elements, [start, last, step]") - if value_error: + if adjusted_range[0] > adjusted_range[1]: raise ValueError( - "ERROR: Wrong given range of pulse indices to correct. " + "ERROR: Pulse range start is greater than range end. " "Please check the given range for \"max_pulses\":" f"{max_pulses}. \"max_pulses\" needs to be a list of " "3 elements, [start, last, step]") @@ -922,6 +919,8 @@ class AgipdCorrections: "A range of pulse indices is selected to correct:" f" {pulses_range}") + return adjusted_range + def choose_selected_pulses(self, allpulses: np.array, can_calibrate: np.array) -> np.array: """ -- GitLab