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

Add iteration for online events

parent ab1ed633
No related branches found
No related tags found
1 merge request!2API cleanup for online files reading
......@@ -104,12 +104,16 @@ struct OnlineFile
)
end
end
Base.close(c::OnlineFile) = close(f._fobj)
Base.getindex(c::EventContainer, idx::Integer) = DAQEvent(c.headers[idx], c.snapshot_hits[idx], c.triggered_hits[idx])
Base.getindex(c::EventContainer, r::UnitRange) = [c[idx] for idx r]
Base.getindex(c::EventContainer, mask::BitArray) = [c[idx] for (idx, selected) enumerate(mask) if selected]
Base.length(c::EventContainer) = length(f.headers)
Base.close(c::OnlineFile) = close(f._fobj)
Base.length(c::EventContainer) = length(c.headers)
Base.eltype(c::EventContainer) = DAQEvent
function Base.iterate(c::EventContainer, state=1)
state > length(c) ? nothing : (DAQEvent(c.headers[state], c.snapshot_hits[state], c.triggered_hits[state]), state+1)
end
function read_headers(f::OnlineFile)
data, offsets = UnROOT.array(f.fobj, "KM3NET_EVENT/KM3NET_EVENT/KM3NETDAQ::JDAQEventHeader"; raw=true)
......
......@@ -71,25 +71,21 @@ const IO_EVT_LEGACY = datapath("daq", "IO_EVT_legacy.dat")
@test headers[1].overlays == 6
@test headers[2].overlays == 21
@test headers[3].overlays == 0
end
events = []
for event in f.events
push!(events, event)
end
@test 3 == length(events)
@test length(f.events.snapshot_hits[1]) == length(events[1].snapshot_hits)
@test length(f.events.triggered_hits[1]) == length(events[1].triggered_hits)
@test f.events.headers[3].frame_index == events[3].header.frame_index
events = []
for event in f.events[1:2]
push!(events, event)
end
@testset "DAQ readout" begin
f = open(IO_EVT_LEGACY)
daqevent = read(f, KM3io.DAQEvent; legacy=true)
@test 7 == daqevent.header.detector_id
@test 139 == daqevent.header.run
@test 5443 == daqevent.header.frame_index
@test 1449571426 == daqevent.header.UTC_seconds
@test 18750000 == daqevent.header.UTC_16nanosecondcycles
@test 184 == daqevent.header.trigger_counter
@test 0x0000000000000012 == daqevent.header.trigger_mask
@test 13 == daqevent.header.overlays
@test 13 == length(daqevent.triggered_hits)
@test 28 == length(daqevent.snapshot_hits)
@test is3dshower(daqevent)
@test !ismxshower(daqevent)
@test is3dmuon(daqevent)
@test !isnb(daqevent)
close(f)
@test 2 == length(events)
end
......@@ -2,6 +2,7 @@ using Test
@testset "KM3io.jl" begin
include("root.jl")
include("daq.jl")
include("tools.jl")
include("hardware.jl")
include("acoustics.jl")
......
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