Skip to content
Snippets Groups Projects
Commit 6663deb6 authored by Johannes Schumann's avatar Johannes Schumann
Browse files

Add additional check for timestamp

parent 85ff89d3
No related branches found
No related tags found
1 merge request!37Online/Offline merge safety
...@@ -11,7 +11,19 @@ Base.lastindex(itr::MCEventMatcher) = length(itr) ...@@ -11,7 +11,19 @@ Base.lastindex(itr::MCEventMatcher) = length(itr)
function Base.getindex(itr::MCEventMatcher, idx::Integer) function Base.getindex(itr::MCEventMatcher, idx::Integer)
event = itr.f.online.events[idx] event = itr.f.online.events[idx]
mc_idx = event.header.trigger_counter + 1 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) (event, mc_event)
end end
function Base.iterate(itr::MCEventMatcher, state=1) function Base.iterate(itr::MCEventMatcher, state=1)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment