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

Cleanup

parent df3e03e6
No related branches found
No related tags found
2 merge requests!24Refactor offline,!22WIP: Slicing and refactoring offline
Pipeline #9327 passed
......@@ -88,7 +88,7 @@ class cached_property:
class OfflineReader:
"""reader for offline ROOT files"""
def __init__(self, file_path=None, fobj=None, data=None, index=None):
def __init__(self, file_path=None):
""" OfflineReader class is an offline ROOT file wrapper
Parameters
......@@ -98,49 +98,15 @@ class OfflineReader:
path-like object that points to the file.
"""
self._index = index
if file_path is not None:
self._fobj = uproot.open(file_path)
self._tree = self._fobj[MAIN_TREE_NAME]
self._data = self._tree.lazyarrays(basketcache=BASKET_CACHE)
else:
self._fobj = fobj
self._tree = self._fobj[MAIN_TREE_NAME]
self._data = data
self._fobj = uproot.open(file_path)
self._tree = self._fobj[MAIN_TREE_NAME]
@cached_property
def events(self):
return Branch(self._tree,
mapper=EVENTS_MAP,
index=self._index,
subbranchmaps=SUBBRANCH_MAPS)
@classmethod
def from_index(cls, source, index):
"""Create an instance with a subtree of a given index
Parameters
----------
source: ROOTDirectory
The source file object.
index: index or slice
The index or slice to create the subtree.
"""
instance = cls(fobj=source._fobj,
data=source._data[index],
index=index)
return instance
def __getitem__(self, index):
return OfflineReader.from_index(source=self, index=index)
def __len__(self):
tree = self._fobj[MAIN_TREE_NAME]
if self._index is None:
return len(tree)
else:
return len(tree.lazyarrays(basketcache=BASKET_CACHE)[self.index])
@cached_property
def header(self):
if 'Head' in self._fobj:
......
......@@ -14,13 +14,10 @@ class TestOfflineReader(unittest.TestCase):
def setUp(self):
self.r = OFFLINE_FILE
self.nu = OFFLINE_NUMUCC
self.Nevents = 10
self.n_events = 10
def test_number_events(self):
Nevents = len(self.r)
# check that there are 10 events
self.assertEqual(Nevents, self.Nevents)
assert self.n_events == len(self.r.events)
def test_find_empty(self):
fitinf = self.nu.events.tracks.fitinf
......
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