ATLAS Offline Software
ParameterWriterConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2 
3 """Configuration for writing parameters as in-file metadata"""
4 
5 
6 def writeParametersToMetaData(flags, folderName, parameters, beginRun, endRun):
7  """
8  Configure IOVDbMetaDataTool to write parameters as in-file metadata.
9 
10  Args:
11  flags: Configuration flags
12  folderName: Folder path (e.g., '/Simulation/Parameters')
13  parameters: Dictionary of key-value pairs to store as strings
14  beginRun: Begin run number for IOV
15  endRun: End run number for IOV
16 
17  Returns:
18  ComponentAccumulator with configured IOVDbSvc and IOVDbMetaDataTool
19  """
20  from IOVDbSvc.IOVDbSvcConfig import IOVDbSvcCfg
21 
22  acc = IOVDbSvcCfg(flags, FoldersToMetaData=[folderName])
23 
24  # Get the IOVDbMetaDataTool and configure its Payloads property
25  metaDataTool = acc.getPublicTool("IOVDbMetaDataTool")
26 
27  # Build the payload dict in "folder:key" -> "value" format
28  payloadDict = {
29  f"{folderName}:beginRun": str(beginRun),
30  f"{folderName}:endRun": str(endRun)
31  }
32  for key, value in parameters.items():
33  payloadDict[f"{folderName}:{key}"] = value
34 
35  # Set the Payloads property (map of string->string)
36  metaDataTool.Payloads = payloadDict
37 
38  # Add TagInfo entry for consistency with sqlite mode
39  from EventInfoMgt.TagInfoMgrConfig import TagInfoMgrCfg
40  tagAcc = TagInfoMgrCfg(flags)
41  tagInfoMgr = tagAcc.getService("TagInfoMgr")
42  currentPairs = dict(tagInfoMgr.ExtraTagValuePairs) if tagInfoMgr.ExtraTagValuePairs else {}
43  currentPairs[folderName] = "HEAD"
44  tagInfoMgr.ExtraTagValuePairs = currentPairs
45  acc.merge(tagAcc)
46 
47  return acc
python.TagInfoMgrConfig.TagInfoMgrCfg
def TagInfoMgrCfg(flags, tagValuePairs={})
Definition: TagInfoMgrConfig.py:6
python.IOVDbSvcConfig.IOVDbSvcCfg
def IOVDbSvcCfg(flags, **kwargs)
Definition: IOVDbSvcConfig.py:28
python.ParameterWriterConfig.writeParametersToMetaData
def writeParametersToMetaData(flags, folderName, parameters, beginRun, endRun)
Definition: ParameterWriterConfig.py:6
str
Definition: BTagTrackIpAccessor.cxx:11