From 6663deb6fe2ed2a47a94e051af76cfba8e7a3d57 Mon Sep 17 00:00:00 2001 From: Johannes Schumann <johannes.schumann@fau.de> Date: Thu, 8 Aug 2024 16:21:35 +0200 Subject: [PATCH] Add additional check for timestamp --- src/tools/helpers.jl | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/tools/helpers.jl b/src/tools/helpers.jl index d8149848..4fdef7f9 100644 --- a/src/tools/helpers.jl +++ b/src/tools/helpers.jl @@ -11,7 +11,19 @@ Base.lastindex(itr::MCEventMatcher) = length(itr) function Base.getindex(itr::MCEventMatcher, idx::Integer) event = itr.f.online.events[idx] mc_idx = event.header.trigger_counter + 1 - mc_event = itr.f.offline[mc_idx] + mc_ids = getproperty.(itr.f.offline, :id) + mc_events = itr.f.offline[mc_ids .== mc_idx] + if length(mc_events) == 1 + mc_event = mc_events[begin] + else + offline_seconds = getproperty.(getproperty.(mc_events, :mc_event_time), :s) + online_seconds = itr.f.online.events.headers[idx].t.s + time_selection = mc_events[offline_seconds .== online_seconds] + if length(time_selection) != 1 + throw("Online and offline event entry cannot be uniquely merged together.") + end + mc_event = time_selection[begin] + end (event, mc_event) end function Base.iterate(itr::MCEventMatcher, state=1) -- GitLab