ATLAS Offline Software
Loading...
Searching...
No Matches
HanMetadata.py
Go to the documentation of this file.
1# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
2
3#import ROOT
4
6 mddir = f.Get('HanMetadata_')
7 if not mddir:
8 return []
9 else:
10 return [x.GetName() for x in mddir.GetListOfKeys()]
11
12def getMetadata(f, key):
13 rv = {}
14 mddir = f.Get('HanMetadata_')
15 if not mddir:
16 return rv
17 else:
18 keydir = mddir.Get(key)
19 if not keydir:
20 return rv
21 else:
22 for subkey in keydir.GetListOfKeys():
23 subkeydirlist = keydir.Get(subkey.GetName()).GetListOfKeys()
24 if len(subkeydirlist) < 1:
25 continue
26 rv[subkey.GetName()] = subkeydirlist[0].GetName()
27 return rv
28
29def addMetadata(f, key, mapping):
30 import ROOT
31 mddir = f.Get('HanMetadata_')
32 if not mddir:
33 mddir = f.mkdir('HanMetadata_')
34 keydir = mddir.Get(key)
35 if not keydir:
36 keydir = mddir.mkdir(key)
37 for subkey in mapping:
38 if keydir.Get(subkey):
39 keydir.rmdir(subkey)
40 subkeydir = keydir.mkdir(subkey)
41 val = mapping[subkey]
42 valstr = ROOT.TObjString(val)
43 subkeydir.WriteTObject(valstr, val)
44 f.Flush()
addMetadata(f, key, mapping)