Skip to content
Snippets Groups Projects
Verified Commit 4e488997 authored by Tamas Gal's avatar Tamas Gal :speech_balloon:
Browse files

RBRIterator -> MCEventMatcher

parent 627070cf
No related branches found
No related tags found
2 merge requests!25MC event matcher,!24RBR iterator
......@@ -56,7 +56,7 @@ export most_frequent, categorize, nthbitset
export cherenkov, CherenkovPhoton, azimuth, zenith, theta, phi
export RBRIterator
export MCEventMatcher
export CHClient, CHTag, subscribe, @ip_str
......
"""
A basic container type to assist run-by-run iteration.
A basic container type to assist the matching of MC events in the offline tree
with the events in the online tree.
"""
# TODO: add tests (need a proper testfile in km3net-testdata)
struct RBRIterator
struct MCEventMatcher
f::ROOTFile
end
Base.length(itr::RBRIterator) = length(itr.f.online.events)
Base.lastindex(itr::RBRIterator) = length(itr)
function Base.getindex(itr::RBRIterator, idx::Integer)
Base.length(itr::MCEventMatcher) = length(itr.f.online.events)
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]
(event, mc_event)
end
function Base.iterate(itr::RBRIterator, state=1)
function Base.iterate(itr::MCEventMatcher, state=1)
state > length(itr) && return nothing
(itr[state], state + 1)
end
......@@ -311,11 +311,11 @@ end
@testset "helpers" begin
f = ROOTFile(datapath("mupage", "mcv8.1.mupage_tuned_100G.sirene.jterbr00013288.10.root"))
for (event, mc_event) in RBRIterator(f)
for (event, mc_event) in MCEventMatcher(f)
continue
end
rbr = RBRIterator(f)
rbr = MCEventMatcher(f)
event, mc_event = rbr[1]
@assert 756 == length(event.snapshot_hits)
@assert 28 == length(event.triggered_hits)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment