42 """ Method to extract keys from root file and return dict """
48 f = ROOT.TFile(file_name,
'READ')
50 root = f.GetDirectory(
"DQMData")
51 if root ==
None:
return (run_number, result)
54 for key
in root.GetListOfKeys():
55 if re.match(
"^Run [0-9]+$", key.ReadObj().GetName())
and key.IsFolder():
56 run_number = int(re.sub(
"^Run ",
"", key.ReadObj().GetName()))
60 if run ==
None:
return (run_number, result)
62 for sub
in run.GetListOfKeys():
64 sub_name = sub.ReadObj().GetName()
65 if sub_name
not in SUBSYSTEMS:
continue
69 sub_key = SUBSYSTEMS[sub_name]
72 if not re.match(filters[0], sub_key):
75 if sub_key
not in result:
78 evInfo = sub.ReadObj().GetDirectory(
"Run summary/EventInfo")
79 if evInfo ==
None:
continue
81 for folder_name
in FOLDERS.keys():
83 folder = evInfo.GetDirectory(folder_name)
84 if folder ==
None:
continue
86 folder_id = folder_name
88 folder_id = FOLDERS[folder_name][0]
91 if not re.match(filters[1], folder_id):
94 if folder_id
not in result[sub_key]:
95 result[sub_key][folder_id] = {}
99 value_filter = filters[2]
101 writeValues(folder, result[sub_key][folder_id],
None, value_filter)
102 writeValues(evInfo, result[sub_key][folder_id], {FOLDERS[folder_name][1]:
'Summary'}, value_filter)
106 return (run_number, result)