11 nodes = (
'/Event',
'/Event/Rec',
'/Event/DAQ')
12 for l
in open(filename).readlines():
13 if l.find(
'StoreTracer') == 0:
14 if l.find(
'Executing Algorithm') != -1:
16 if alg
not in algs.keys():
17 algs[alg] = (order, set(), set())
20 elif l.find(
'Done with Algorithm') != -1:
22 elif l.find(
'[EventDataSvc]') != -1
and curr:
26 if obj.find(
'/Event/') == 0:
28 obj = obj.replace(
'/',
'_')
32 if l.find(
'RETRIEVE') != -1:
33 if obj
not in talg[1]:
35 elif l.find(
'REGOBJ') != -1:
36 if obj
not in talg[2]:
38 if l.find(
"TimingAuditor") != -1:
41 if algo.endswith(
"|"):
43 algo = algo.rstrip(
"|")
44 if algo
in algs.keys():
45 timing[algo] = l.split()[index]
47 for name
in algs.keys():
48 if name.startswith(algo):
49 timing[name] = l.split()[index]
52 for i, (alg, deps)
in enumerate(algs.items()):
53 if alg
in [
"PatPVOffline",
"PrsADCs"]:
55 if deps[1]
or deps[2]:
57 inputs = [item
for item
in deps[1]
if item
not in (
58 "DAQ_ODIN",
"DAQ_RawEvent")
and item
not in deps[2]]
59 outputs = [item
for item
in deps[2]]
60 new_algo = {
"name": alg,
"inputs": inputs,
61 "outputs": outputs,
"runtimes_wall": [float(timing[alg])]}
62 all_algos.append(new_algo)
def load_brunel_scenario(filename)