From 8225a06ff93ce4f4a99103b6688141368c127b77 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Moritz=20H=C3=BCtten?= <mhuetten@mpp.mpg.de>
Date: Thu, 9 Jul 2020 11:55:18 +0200
Subject: [PATCH] get also bitflips close to pedestals

---
 ctapipe_io_magic/__init__.py | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/ctapipe_io_magic/__init__.py b/ctapipe_io_magic/__init__.py
index eeeb590..90fe4ef 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
-- 
GitLab