From 09a3d2ac491cb04bfb572b47600e508dd7f9ea17 Mon Sep 17 00:00:00 2001 From: Tamas Gal Date: Thu, 30 Mar 2023 23:35:28 +0200 Subject: [PATCH] Improves streamer logic for multiple jaggednes (#231) * Improves streamer logic * Support for doubly/triply jagged int/double * Bump version * Fix jaggedness for BASE --- Project.toml | 2 +- src/root.jl | 42 ++++++++++++++++-- src/utils.jl | 31 ++++++------- test/runtests.jl | 30 +++++++++++++ .../triply_jagged_via_custom_class.root | Bin 0 -> 67369 bytes 5 files changed, 86 insertions(+), 19 deletions(-) create mode 100644 test/samples/triply_jagged_via_custom_class.root diff --git a/Project.toml b/Project.toml index 5769720f..eb51ffde 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "UnROOT" uuid = "3cd96dde-e98d-4713-81e9-a4a1b0235ce9" authors = ["Tamas Gal", "Jerry Ling", "Johannes Schumann", "Nick Amin"] -version = "0.10.0" +version = "0.10.1" [deps] AbstractTrees = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" diff --git a/src/root.jl b/src/root.jl index 8f14a24c..7ca3fdd9 100644 --- a/src/root.jl +++ b/src/root.jl @@ -130,7 +130,23 @@ function streamerfor(f::ROOTFile, name::AbstractString) return e end end - error("No streamer found for $name.") + missing +end + +streamerfor(f::ROOTFile, branch::TBranch) = missing +function streamerfor(f::ROOTFile, branch::TBranchElement) + fID = branch.fID + # According to ChatGPt: When fID is equal to -1, it means that the + # TBranch object has not been registered yet in the TTree's list of + # branches. This can happen, for example, when a TBranch object has been + # created, but has not been added to a TTree with the TTree::Branch() + # method. + # + # TODO: For now, we force it to be 0 in this case, until someone complains. + if fID == -1 + fID = 0 + end + streamerfor(f, branch.fClassName).streamer.fElements.elements[fID + 1] # one-based indexing in Julia end @@ -226,8 +242,12 @@ function interped_data(rawdata, rawoffsets, ::Type{T}, ::Type{J}) where {T, J<:J # we want the fundamental type as `reinterpret` will create vector if J === Nojagg return ntoh.(reinterpret(T, rawdata)) - elseif J === Offsetjaggjagg # the branch is doubly jagged - jagg_offset = 10 + elseif J === Offsetjaggjagg || J === Offset6jaggjagg # the branch is doubly jagged + if J === Offset6jaggjagg + jagg_offset = 6 + else + jagg_offset = 10 + end subT = eltype(eltype(T)) out = VectorOfVectors(T(), Int32[1]) @views for i in 1:(length(rawoffsets)-1) @@ -346,6 +366,22 @@ function auto_T_JaggT(f::ROOTFile, branch; customstructs::Dict{String, Type}) return _custom, Nojagg catch end + + # check if we have an actual streamer + streamer = streamerfor(f, branch) + if !ismissing(streamer) + # TODO unify this with the "switch" block below and expand for more types! + if _jaggtype == Offsetjagg + streamer.fTypeName == "vector" && return Vector{Float64}, _jaggtype + streamer.fTypeName == "vector" && return Vector{Int32}, _jaggtype + elseif _jaggtype == Offsetjaggjagg || _jaggtype == Offset6jaggjagg + streamer.fTypeName == "vector" && return Vector{Vector{Float64}}, _jaggtype + streamer.fTypeName == "vector" && return Vector{Vector{Int32}}, _jaggtype + end + + end + + # some standard cases m = match(r"vector<(.*)>", classname) if m!==nothing elname = m[1] diff --git a/src/utils.jl b/src/utils.jl index 71225063..7fde645f 100644 --- a/src/utils.jl +++ b/src/utils.jl @@ -55,32 +55,33 @@ struct Nojagg <:JaggType end struct Nooffsetjagg<:JaggType end struct Offsetjagg <:JaggType end struct Offsetjaggjagg <:JaggType end +# this is a preliminary workaround for 6 byte offset jaggedness +struct Offset6jaggjagg <:JaggType end function JaggType(f, branch, leaf) # https://github.com/scikit-hep/uproot3/blob/54f5151fb7c686c3a161fbe44b9f299e482f346b/uproot3/interp/auto.py#L144 - try - fID = branch.fID - # According to ChatGPt: When fID is equal to -1, it means that the - # TBranch object has not been registered yet in the TTree's list of - # branches. This can happen, for example, when a TBranch object has been - # created, but has not been added to a TTree with the TTree::Branch() - # method. - # - # TODO: For now, we force it to be 0 in this case, until someone complains. - if fID == -1 - fID = 0 + streamer = streamerfor(f, branch) + if !ismissing(streamer) + if typeof(streamer) <: TStreamerBasicType + (match(r"\[.*\]", leaf.fTitle) !== nothing) && return Nooffsetjagg + return Nojagg + end + if typeof(streamer) <: TStreamerBase + leaf isa TLeafElement && leaf.fLenType==0 && return Offsetjagg + return Nojagg + end + if streamer.fSTLtype == Const.kSTLvector + (match(r"\[.*\]", leaf.fTitle) !== nothing) && return Offset6jaggjagg + return Offsetjagg end - streamer = streamerfor(f, branch.fClassName).streamer.fElements.elements[fID + 1] # one-based indexing in Julia - (streamer.fSTLtype == Const.kSTLvector) && return Offsetjagg - catch end + # TODO this might be redundant but for now it works (match(r"\[.*\]", leaf.fTitle) !== nothing) && return Nooffsetjagg leaf isa TLeafElement && leaf.fLenType==0 && return Offsetjagg !hasproperty(branch, :fClassName) && return Nojagg - return Nojagg end diff --git a/test/runtests.jl b/test/runtests.jl index ab2aae6b..78d971f3 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -374,6 +374,36 @@ end ] end +@testset "Doubly jagged via custom class" begin + f = UnROOT.samplefile("triply_jagged_via_custom_class.root") + b = LazyBranch(f, "E/Evt/w") + @test 3 == length(b) + @test [3.3329158e6, 3.6047424e22, 3.1181261e8] ≈ b[1] + @test [3.3329158e6, 2.4039883e23, 4.5337845e6] ≈ b[2] + @test [3.3329158e6, 4.9458148e24, 42805.383] ≈ b[3] + close(f) +end + +@testset "Triply jagged stuff via custom class" begin + f = UnROOT.samplefile("triply_jagged_via_custom_class.root") + b = LazyBranch(f, "E/Evt/trks/trks.rec_stages") + @test 3 == length(b) + @test 38 == length(b[3]) + @test 5 == length(b[3][1]) + @test [1, 2, 3, 4, 5] == b[2][1] + b = LazyBranch(f, "E/Evt/trks/trks.fitinf") + @test 3 == length(b) + @test 38 == length(b[3]) + @test 17 == length(b[3][1]) + @test b[3][1] ≈ [ + 0.02175229704756278, 0.013640169301181978, -27.59387722710992, 45.0, + 90072.00780343144, 52.67760965729974, 3.9927948910593525, 10.0, + 0.3693832125931179, 0.3693832125931179, 72.02530060292972, 0.0, 0.0, + 13461.937901498717, -Inf, 1518.0, 56.0, + ] + close(f) +end + @testset "NanoAOD" begin rootfile = ROOTFile(joinpath(SAMPLES_DIR, "NanoAODv5_sample.root")) event = UnROOT.array(rootfile, "Events/event") diff --git a/test/samples/triply_jagged_via_custom_class.root b/test/samples/triply_jagged_via_custom_class.root new file mode 100644 index 0000000000000000000000000000000000000000..6e1986bd53fca673d610531416449f39b1a232d9 GIT binary patch literal 67369 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
RH9<}oQ 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%0AW&5Co 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 literal 0 HcmV?d00001