Skip to content
Snippets Groups Projects
Commit 8caed419 authored by Tamas Gal's avatar Tamas Gal :speech_balloon:
Browse files

Merge branch 'mceventmatcher' into 'main'

MC event matcher

See merge request !25
parents eb03033d 4e488997
No related branches found
No related tags found
1 merge request!25MC event matcher
name = "KM3io"
uuid = "2cab5852-6f21-4982-99b0-6a4792870cfb"
authors = ["Tamas Gal", "Johannes Schumann"]
version = "0.16.1"
version = "0.16.2"
[deps]
Dates = "ade2ca70-3891-5945-98fb-dc099432e06a"
......
......@@ -56,6 +56,8 @@ export most_frequent, categorize, nthbitset
export cherenkov, CherenkovPhoton, azimuth, zenith, theta, phi
export MCEventMatcher
export CHClient, CHTag, subscribe, @ip_str
@template (FUNCTIONS, METHODS, MACROS) =
......@@ -100,6 +102,7 @@ include("tools/general.jl")
include("tools/daq.jl")
include("tools/trigger.jl")
include("tools/reconstruction.jl")
include("tools/helpers.jl")
include("physics.jl")
......
"""
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 MCEventMatcher
f::ROOTFile
end
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::MCEventMatcher, state=1)
state > length(itr) && return nothing
(itr[state], state + 1)
end
......@@ -307,3 +307,23 @@ end
close(f)
end
@testset "helpers" begin
f = ROOTFile(datapath("mupage", "mcv8.1.mupage_tuned_100G.sirene.jterbr00013288.10.root"))
for (event, mc_event) in MCEventMatcher(f)
continue
end
rbr = MCEventMatcher(f)
event, mc_event = rbr[1]
@assert 756 == length(event.snapshot_hits)
@assert 28 == length(event.triggered_hits)
@assert 94 == length(mc_event.mc_hits)
@assert 2 == length(mc_event.mc_trks)
event, mc_event = rbr[end]
@assert 707 == length(event.snapshot_hits)
@assert 27== length(event.triggered_hits)
@assert 111 == length(mc_event.mc_hits)
@assert 4 == length(mc_event.mc_trks)
end
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