114 Returns the tuple of MetaDataHelperLists and ComponentAccumulator.
115 The former combines the lists needed to setup given metadata category
116 for the output stream configuration and metadata service.
117 The latter contains the CA needed for a given metadata category.
119 tools = MetaDataHelperLists()
121 log = logging.getLogger(
"SetupMetaDataForStreamCfg")
123 if category == MetadataCategory.FileMetaData:
124 tools.mdToolNames.append(
"xAODMaker::FileMetaDataTool")
126 "xAOD::FileMetaData#FileMetaData",
127 "xAOD::FileMetaDataAuxInfo#FileMetaDataAux.",
129 tools.helperTools.append(
130 CompFactory.xAODMaker.FileMetaDataCreatorTool(
131 f
"{outputStreamName(streamName)}_FileMetaDataCreatorTool",
132 OutputKey=
"FileMetaData",
136 elif category == MetadataCategory.EventStreamInfo:
137 esiTool = CompFactory.MakeEventStreamInfo(
138 f
"{outputStreamName(streamName)}_MakeEventStreamInfo",
141 EventInfoKey=f
"{flags.Overlay.BkgPrefix}EventInfo"
142 if flags.Common.ProductionStep
143 in [ProductionStep.PileUpPresampling, ProductionStep.PileUpPretracking]
147 f
"EventStreamInfo#{outputStreamName(streamName)}",
149 tools.helperTools.append(esiTool)
152 if kwargs.get(
"mergeJob",
False):
154 CompFactory.CopyEventStreamInfo(
155 f
"{outputStreamName(streamName)}_CopyEventStreamInfo"
159 elif category == MetadataCategory.EventFormat:
160 efTool = CompFactory.xAODMaker.EventFormatStreamHelperTool(
161 f
"{outputStreamName(streamName)}_EventFormatStreamHelperTool",
162 Key=f
"EventFormat{outputStreamName(streamName)}",
166 f
"xAOD::EventFormat#EventFormat{outputStreamName(streamName)}",
168 tools.helperTools.append(efTool)
169 tools.mdToolNames.append(
"xAODMaker::EventFormatMetaDataTool")
170 elif category == MetadataCategory.CutFlowMetaData:
171 if "CutBookkeepers" in flags.Input.MetadataItems:
172 from EventBookkeeperTools.EventBookkeeperToolsConfig
import (
176 tools.mdToolNames.append(
"BookkeeperTool")
179 elif category == MetadataCategory.TriggerMenuMetaData:
180 if any(
"TriggerMenu" in item
for item
in flags.Input.MetadataItems):
182 tools.mdTools = _tools.mdTools
183 tools.mdItems = _tools.mdItems
185 elif category == MetadataCategory.TruthMetaData:
186 if "TruthMetaData" in flags.Input.MetadataItems:
188 "xAOD::TruthMetaDataContainer#TruthMetaData",
189 "xAOD::TruthMetaDataAuxContainer#TruthMetaDataAux.",
191 tools.mdTools.append(
192 CompFactory.xAODMaker.TruthMetaDataTool(
"TruthMetaDataTool")
194 elif category == MetadataCategory.ByteStreamMetaData:
195 if "ByteStreamMetadata" in flags.Input.MetadataItems:
196 tools.mdItems += [
"ByteStreamMetadataContainer#*"]
197 elif category == MetadataCategory.LumiBlockMetaData:
199 lb
in flags.Input.MetadataItems
200 for lb
in [
"SuspectLumiBlocks",
"IncompleteLumiBlocks",
"LumiBlocks"]
202 tools.mdToolNames.append(
"LumiBlockMetaDataTool")
204 "xAOD::LumiBlockRangeContainer#*",
205 "xAOD::LumiBlockRangeAuxContainer#*",
207 elif category == MetadataCategory.IOVMetaData:
208 if "IOVMetaDataContainer" in flags.Input.MetadataItems.values():
209 tools.mdItems += [
"IOVMetaDataContainer#*"]
212 log.warning(f
"Requested metadata category: {category} could not be configured")