Skip to content
Snippets Groups Projects

Resolve "uproot4 integration"

Merged Tamas Gal requested to merge 58-uproot4-integration-2 into master
2 files
+ 36
30
Compare changes
  • Side-by-side
  • Inline
Files
2
+ 8
24
@@ -3,46 +3,30 @@
# Filename: gseagen.py
# Author: Johannes Schumann <jschumann@km3net.de>
import uproot3
import numpy as np
import warnings
from .rootio import Branch, BranchMapper
from .rootio import EventReader
from .tools import cached_property
MAIN_TREE_NAME = "Events"
class GSGReader:
class GSGReader(EventReader):
"""reader for gSeaGen ROOT files"""
def __init__(self, file_path=None, fobj=None):
"""GSGReader class is a gSeaGen ROOT file wrapper
Parameters
----------
file_path : file path or file-like object
The file handler. It can be a str or any python path-like object
that points to the file.
"""
self._fobj = uproot3.open(file_path)
header_key = "Header"
event_path = "Events"
skip_keys = [header_key]
@cached_property
def header(self):
header_key = "Header"
if header_key in self._fobj:
if self.header_key in self._fobj:
header = {}
for k, v in self._fobj[header_key].items():
for k, v in self._fobj[self.header_key].items():
v = v.array()[0]
if isinstance(v, bytes):
try:
v = v.decode("utf-8")
except UnicodeDecodeError:
pass
header[k.decode("utf-8")] = v
header[k] = v
return header
else:
warnings.warn("Your file header has an unsupported format")
@cached_property
def events(self):
return Branch(self._fobj, BranchMapper(name="Events", key="Events"))
Loading