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

CLeanup

parent f0956057
No related branches found
No related tags found
1 merge request!27Refactor offline I/O
from collections import namedtuple from collections import namedtuple
import uproot import uproot
import numpy as np import numpy as np
import awkward as ak
import warnings import warnings
from .definitions import mc_header from .definitions import mc_header
...@@ -9,10 +8,11 @@ MAIN_TREE_NAME = "E" ...@@ -9,10 +8,11 @@ MAIN_TREE_NAME = "E"
# 110 MB based on the size of the largest basket found so far in km3net # 110 MB based on the size of the largest basket found so far in km3net
BASKET_CACHE_SIZE = 110 * 1024**2 BASKET_CACHE_SIZE = 110 * 1024**2
BASKET_CACHE = uproot.cache.ThreadSafeArrayCache(BASKET_CACHE_SIZE) BASKET_CACHE = uproot.cache.ThreadSafeArrayCache(BASKET_CACHE_SIZE)
EXCLUDE_KEYS = set(["AAObject", "t", "fBits", "fUniqueID"])
BranchMapper = namedtuple( BranchMapper = namedtuple(
"BranchMapper", "BranchMapper",
['name', 'key', 'extra', 'exclude', 'update', 'attrparser', 'flat']) ['name', 'key', 'extra', 'exclude', 'update', 'attrparser'])
def _nested_mapper(key): def _nested_mapper(key):
...@@ -20,8 +20,6 @@ def _nested_mapper(key): ...@@ -20,8 +20,6 @@ def _nested_mapper(key):
return '_'.join(key.split('.')[1:]) return '_'.join(key.split('.')[1:])
EXCLUDE_KEYS = set(["AAObject", "t", "fBits", "fUniqueID"])
EVENTS_MAP = BranchMapper("events", "Evt", { EVENTS_MAP = BranchMapper("events", "Evt", {
't_sec': 't.fSec', 't_sec': 't.fSec',
't_ns': 't.fNanoSec' 't_ns': 't.fNanoSec'
...@@ -30,18 +28,42 @@ EVENTS_MAP = BranchMapper("events", "Evt", { ...@@ -30,18 +28,42 @@ EVENTS_MAP = BranchMapper("events", "Evt", {
'n_mc_hits': 'mc_hits', 'n_mc_hits': 'mc_hits',
'n_tracks': 'trks', 'n_tracks': 'trks',
'n_mc_tracks': 'mc_trks' 'n_mc_tracks': 'mc_trks'
}, lambda a: a, True) }, lambda a: a)
SUBBRANCH_MAPS = [ SUBBRANCH_MAPS = [
BranchMapper("tracks", "trks", {}, ['trks.usr_data', 'trks.usr'], {}, BranchMapper(name="tracks",
_nested_mapper, False), key="trks",
BranchMapper("mc_tracks", "mc_trks", {}, extra={},
['mc_trks.usr_data', 'mc_trks.usr'], {}, _nested_mapper, exclude=['trks.usr_data', 'trks.usr'],
False), update={},
BranchMapper("hits", "hits", {}, ['hits.usr'], {}, _nested_mapper, False), attrparser=_nested_mapper),
BranchMapper("mc_hits", "mc_hits", {}, BranchMapper(name="mc_tracks",
['mc_hits.usr', 'mc_hits.dom_id', 'mc_hits.channel_id'], {}, key="mc_trks",
_nested_mapper, False), extra={},
exclude=[
'mc_trks.usr_data', 'mc_trks.usr', 'mc_trks.rec_stages',
'mc_trks.fitinf'
],
update={},
attrparser=_nested_mapper),
BranchMapper(name="hits",
key="hits",
extra={},
exclude=[
'hits.usr', 'hits.pmt_id', 'hits.origin', 'hits.a',
'hits.pure_a'
],
update={},
attrparser=_nested_mapper),
BranchMapper(name="mc_hits",
key="mc_hits",
extra={},
exclude=[
'mc_hits.usr', 'mc_hits.dom_id', 'mc_hits.channel_id',
'mc_hits.tdc', 'mc_hits.tot', 'mc_hits.trig'
],
update={},
attrparser=_nested_mapper),
] ]
...@@ -463,7 +485,7 @@ class OfflineReader: ...@@ -463,7 +485,7 @@ class OfflineReader:
class Usr: class Usr:
"""Helper class to access AAObject usr stuff""" """Helper class to access AAObject `usr`` stuff"""
def __init__(self, name, tree, index=None): def __init__(self, name, tree, index=None):
# Here, we assume that every event has the same names in the same order # Here, we assume that every event has the same names in the same order
# to massively increase the performance. This needs triple check if it's # to massively increase the performance. This needs triple check if it's
...@@ -522,7 +544,7 @@ def _to_num(value): ...@@ -522,7 +544,7 @@ def _to_num(value):
class Header: class Header:
"""The online header""" """The header"""
def __init__(self, header): def __init__(self, header):
self._data = {} self._data = {}
for attribute, fields in mc_header.items(): for attribute, fields in mc_header.items():
...@@ -552,7 +574,6 @@ class Branch: ...@@ -552,7 +574,6 @@ class Branch:
tree, tree,
mapper, mapper,
index=None, index=None,
subbranches=None,
subbranchmaps=None, subbranchmaps=None,
keymap=None): keymap=None):
self._tree = tree self._tree = tree
...@@ -567,8 +588,6 @@ class Branch: ...@@ -567,8 +588,6 @@ class Branch:
else: else:
self._keymap = keymap self._keymap = keymap
if subbranches is not None:
self._subbranches = subbranches
if subbranchmaps is not None: if subbranchmaps is not None:
for mapper in subbranchmaps: for mapper in subbranchmaps:
subbranch = Branch(self._tree, subbranch = Branch(self._tree,
......
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