ATLAS Offline Software
Loading...
Searching...
No Matches
python.ParameterWriterConfig Namespace Reference

Functions

 writeParametersToMetaData (flags, folderName, parameters, beginRun, endRun)

Detailed Description

Configuration for writing parameters as in-file metadata

Function Documentation

◆ writeParametersToMetaData()

python.ParameterWriterConfig.writeParametersToMetaData ( flags,
folderName,
parameters,
beginRun,
endRun )
Configure IOVDbMetaDataTool to write parameters as in-file metadata.

Args:
    flags: Configuration flags
    folderName: Folder path (e.g., '/Simulation/Parameters')
    parameters: Dictionary of key-value pairs to store as strings
    beginRun: Begin run number for IOV
    endRun: End run number for IOV

Returns:
    ComponentAccumulator with configured IOVDbSvc and IOVDbMetaDataTool

Definition at line 6 of file ParameterWriterConfig.py.

6def 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