32 eiNames = [
'EventInfoAuxDyn.eventNumber',
35 'xAOD::EventAuxInfo_v3_EventInfoAux.',
36 'xAOD::EventAuxInfo_v2_EventInfoAux.',
37 'xAOD::EventAuxInfo_v1_EventInfoAux.',
38 'xAOD::EventAuxInfo_v3_Bkg_EventInfoAux.',
39 'xAOD::EventAuxInfo_v2_Bkg_EventInfoAux.',
40 'xAOD::EventAuxInfo_v1_Bkg_EventInfoAux.',
42 'ByteStreamEventInfo',
43 'EventInfo_p4_McEventInfo',
44 'EventInfo_p4_ByteStreamEventInfo']
45 runName =
'EventInfoAuxDyn.runNumber'
54 msg.error(
'Cannot find event info, aborting.')
56 msg.info(
"Using branch: %s", einame)
58 tree.SetBranchStatus (
'*', 0)
59 tree.SetBranchStatus (einame, 1)
60 if 'AuxDyn' in einame:
61 tree.SetBranchStatus (runName, 1)
64 for idx
in range(tree.GetEntriesFast()):
66 if einame.endswith(
'Aux.'):
67 ei = getattr(tree, einame)
68 eventList.append((ei.runNumber, ei.eventNumber))
69 elif einame.endswith(
'Info'):
70 eid = getattr(tree, einame).m_event_ID
71 eventList.append((eid.m_run_number, eid.m_event_number))
72 elif 'AuxDyn' in einame:
73 eventList.append(( getattr(tree, runName), getattr(tree, einame)))
75 tree.SetBranchStatus (
'*', 1)
81def getEventList(file, tree_name="CollectionTree", entries='', verbose=False):
82 """Get list of event+run numbers for given entries in a file/tree"""
84 import PyUtils.Logging
as L
85 msg = L.logging.getLogger(
'list-events')
87 msg.setLevel(L.logging.VERBOSE)
89 msg.setLevel(L.logging.WARNING)
91 msg.info(
'file: [%s]', file)
92 msg.info(
'tree: [%s]', tree_name)
93 msg.info(
'entries: %s', entries)
95 def get_event_range(entry):
98 if isinstance(entry, str):
102 vals = entry.split(
':')
103 smin = int(vals[0])
if len(vals) > 0
and vals[0].isdigit()
else 0
104 smax = int(vals[1])
if len(vals) > 1
and vals[1].isdigit()
else None
106 elif entry.isdigit():
108 smax = int(entry)
if int(entry) > 0
else None
110 elif isinstance(entry, int):
112 smax = entry
if entry > 0
else None
115 msg.warning(f
"Unknown entries argument {entry}, will list all events...")
118 import PyUtils.RootUtils
as ru
121 dumper = ru.RootFileDumper(file, tree_name)
122 except AttributeError
as e:
127 if entries
in (-1,
'',
'-1'):
128 smax = dumper.tree.GetEntries()
130 smin, smax = get_event_range(entries)
131 msg.debug(f
"Getting Event numbers for entries [{smin},{smax}]")