diff --git a/ctapipe_io_magic/__init__.py b/ctapipe_io_magic/__init__.py index eeeb5903f43b4dbbed1db83e42c1098bb58f5800..90fe4efbd745e7232d6dc4b7dc12e11ffdc28853 100644 --- a/ctapipe_io_magic/__init__.py +++ b/ctapipe_io_magic/__init__.py @@ -1039,13 +1039,17 @@ class MarsRun: # check for bit flips in the stereo event ID: dx = np.diff(stereo_event_number.astype(np.int)) - dx_flip_ids_before = np.where(dx <= 0)[0] + dx_flip_ids_before = np.where(dx < 0)[0] dx_flip_ids_after = dx_flip_ids_before + 1 - # sort out (possible) pedestals, we do not care: - pedestal_ids = np.where(trigger_pattern == pedestal_trigger_pattern)[0] - dx_flip_ids_after = np.array(list(set(dx_flip_ids_after) - set(pedestal_ids))) - # for MC, sort out stereo_event_number = 0: - if is_mc: + dx_flipzero_ids_first = np.where(dx == 0)[0] + dx_flipzero_ids_second = dx_flipzero_ids_first + 1 + if not is_mc: + pedestal_ids = np.where(trigger_pattern == pedestal_trigger_pattern)[0] + # sort out pedestals events from zero-difference steps: + dx_flipzero_ids_second = np.array(list(set(dx_flipzero_ids_second) - set(pedestal_ids))) + dx_flip_ids_after = np.array(np.union1d(dx_flip_ids_after, dx_flipzero_ids_second), dtype=np.int) + else: + # for MC, sort out stereo_event_number = 0: orphan_ids = np.where(stereo_event_number == 0)[0] dx_flip_ids_after = np.array(list(set(dx_flip_ids_after) - set(orphan_ids))) dx_flip_ids_before = dx_flip_ids_after - 1