From c4544f3dd584258fb98e692a19887aca299f6c79 Mon Sep 17 00:00:00 2001 From: Maximilian Linhoff Date: Tue, 21 Nov 2023 17:19:46 +0100 Subject: [PATCH] Fill r1 event type also for old data --- src/ctapipe_io_lst/__init__.py | 13 ++++++++++--- src/ctapipe_io_lst/tests/test_lsteventsource.py | 5 +++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/ctapipe_io_lst/__init__.py b/src/ctapipe_io_lst/__init__.py index b77dc64a..94d29a9a 100644 --- a/src/ctapipe_io_lst/__init__.py +++ b/src/ctapipe_io_lst/__init__.py @@ -929,6 +929,9 @@ def fill_trigger_info(self, array_event): if trigger.event_type == EventType.UNKNOWN: self.log.warning(f'Event {array_event.index.event_id} has unknown event type, trigger: {trigger_bits:08b}') + if CTAPIPE_0_20: + array_event.r1.tel[tel_id].event_type = trigger.event_type + def tag_flatfield_events(self, array_event): ''' Use a heuristic based on R1 waveforms to recognize flat field events @@ -1139,15 +1142,19 @@ def check_interleaved_pedestal(self, array_event): event_id = array_event.index.event_id if event_id in self.pedestal_ids: - array_event.trigger.event_type = EventType.SKY_PEDESTAL + event_type = EventType.SKY_PEDESTAL self.log.debug("Event %d is an interleaved pedestal", event_id) - elif array_event.trigger.event_type == EventType.SKY_PEDESTAL: # wrongly tagged pedestal event must be cosmic, since it would # have been changed to flatfield by the flatfield tagging if ff - array_event.trigger.event_type = EventType.SUBARRAY + event_type = EventType.SUBARRAY self.log.debug( "Event %d is tagged as pedestal but not a known pedestal event", event_id, ) + else: + return + array_event.trigger.event_type = event_type + if CTAPIPE_0_20: + array_event.r1.tel[self.tel_id].event_type = event_type diff --git a/src/ctapipe_io_lst/tests/test_lsteventsource.py b/src/ctapipe_io_lst/tests/test_lsteventsource.py index 63ed6292..189c345e 100644 --- a/src/ctapipe_io_lst/tests/test_lsteventsource.py +++ b/src/ctapipe_io_lst/tests/test_lsteventsource.py @@ -12,7 +12,7 @@ from ctapipe.calib.camera.gainselection import ThresholdGainSelector from ctapipe_io_lst.constants import LST1_LOCATION, N_GAINS, N_PIXELS_MODULE, N_SAMPLES, N_PIXELS -from ctapipe_io_lst import TriggerBits, PixelStatus +from ctapipe_io_lst import CTAPIPE_0_20, TriggerBits, PixelStatus test_data = Path(os.getenv('LSTCHAIN_TEST_DATA', 'test_data')).absolute() test_r0_dir = test_data / 'real/R0/20200218' @@ -319,7 +319,8 @@ def test_pedestal_events(tmp_path): else: assert event.trigger.event_type != EventType.SKY_PEDESTAL - + if CTAPIPE_0_20: + assert event.r1.tel[1].event_type == event.trigger.event_type @pytest.mark.parametrize(