99 from AthenaCommon.Logging
import logging
100 log = logging.getLogger(
"GeneratorsInfo")
101 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
103 generatorsData = flags.Input.GeneratorsInfo
104 log.info(f
"Generators data: {generatorsData}")
106 missingVersion =
False
107 for k, v
in generatorsData.items():
108 if v
is None and k
not in ignoredGenerators:
109 missingVersion =
True
114 if flags.Input.MCChannelNumber
and flags.Input.MCChannelNumber
in releaseDataSampleGeneratorOverridesDict:
115 overrides = releaseDataSampleGeneratorOverridesDict[flags.Input.MCChannelNumber]
116 log.warning(
"Found generator overrides for sample with DSID %d", flags.Input.MCChannelNumber)
118 if not missingVersion
and not overrides:
119 return ComponentAccumulator()
121 log.info(
"At least one MC generator is missing version information. Attempting to fix...")
123 from PyUtils.AMITagHelperConfig
import inputAMITags
124 tags = inputAMITags(flags, fixBroken=
True, silent=
True)
126 if tags
and tags[0].startswith(
"e"):
131 if "any" in overrides:
132 overrides = overrides[
"any"]
134 overrides = overrides.get(tag, {})
138 log.warning(f
"Overriding generators to {'+'.join(overrides.keys())}.")
140 for generator, version
in overrides.items():
141 if version
is not None:
142 log.warning(f
"Overriding version for {generator} to {version}.")
143 generatorsData[generator] = version
147 from EventInfoMgt.TagInfoMgrConfig
import TagInfoMgrCfg
152 if flags.Input.MCChannelNumber
and flags.Input.MCChannelNumber
in releaseDataSampleTagOverridesDict:
153 log.warning(f
"Overriding e-tag for sample {flags.Input.MCChannelNumber} to {releaseDataSampleTagOverridesDict[flags.Input.MCChannelNumber]}.")
154 tag = releaseDataSampleTagOverridesDict[flags.Input.MCChannelNumber]
158 if tag
not in releaseDataDict:
159 log.warning(f
"Could not find release data for tag {tag}.")
160 return ComponentAccumulator()
163 releaseData = releaseDataDict[tag]
164 for k, v
in generatorsData.items():
165 if v
is None and k
not in ignoredGenerators
and k
in releaseData:
166 log.info(f
"Setting version for {k} to {releaseData[k]}.")
167 generatorsData[k] = releaseData[k]
171 from EventInfoMgt.TagInfoMgrConfig
import TagInfoMgrCfg