diff --git a/Event/EventOverlay/EventOverlayJobTransforms/python/OverlayPoolReadMetaData.py b/Event/EventOverlay/EventOverlayJobTransforms/python/OverlayPoolReadMetaData.py index 6074548c606681c08898ebeafe8794e598cd7927..1f85bffd76eb017726336a1f4ae91f65042982c6 100644 --- a/Event/EventOverlay/EventOverlayJobTransforms/python/OverlayPoolReadMetaData.py +++ b/Event/EventOverlay/EventOverlayJobTransforms/python/OverlayPoolReadMetaData.py @@ -396,14 +396,23 @@ def tagInfoMetaDataCheck(sigtaginfodict,pileuptaginfodict): result = True """Check the metadata for pre-mixed pileup RDO File""" pileupkeys = pileuptaginfodict.keys() + logOverlayPoolReadMetadata.debug("Signal /TagInfo ", sigtaginfodict) + logOverlayPoolReadMetadata.debug("Pileup /TagInfo ", pileuptaginfodict) sigkeys = sigtaginfodict.keys() pileupType = "PreMixed" + sigOnlyDict = dict() sigOnlyKeySet = set(sigkeys).difference(set(pileupkeys)) - logOverlayPoolReadMetadata.info("The following keys only appear in Signal /TagInfo MetaData:") - print sigOnlyKeySet + logOverlayPoolReadMetadata.debug("The following keys only appear in Signal /TagInfo MetaData:") + logOverlayPoolReadMetadata.debug(sigOnlyKeySet) + for key in sigOnlyKeySet: + sigOnlyDict[key] = sigtaginfodict[key] + logOverlayPoolReadMetadata.debug("key: ", key, "value: ", sigtaginfodict[key]) + pass + from OverlayCommonAlgs.OverlayFlags import overlayFlags + overlayFlags.extraTagInfoPairs = sigOnlyDict keysToCompareSet = set(sigkeys).intersection(set(pileupkeys)) - logOverlayPoolReadMetadata.info("The following keys appear in Signal and PreMixed /TagInfo MetaData:") - print keysToCompareSet + logOverlayPoolReadMetadata.debug("The following keys appear in Signal and PreMixed /TagInfo MetaData:") + logOverlayPoolReadMetadata.debug(keysToCompareSet) return result def readInputFileMetadata(): diff --git a/Event/EventOverlay/EventOverlayJobTransforms/share/skeleton.OverlayPool_tf.py b/Event/EventOverlay/EventOverlayJobTransforms/share/skeleton.OverlayPool_tf.py index a03e83d9bb01a909307e5ab6297ef384ba31d4ea..b33dc8003e4208cf5f510a7498162b65d536f2c5 100644 --- a/Event/EventOverlay/EventOverlayJobTransforms/share/skeleton.OverlayPool_tf.py +++ b/Event/EventOverlay/EventOverlayJobTransforms/share/skeleton.OverlayPool_tf.py @@ -206,5 +206,15 @@ if hasattr(runArgs, "postExec") and runArgs.postExec != 'NONE': for cmd in runArgs.postExec: exec(cmd) +from AthenaCommon.AppMgr import ServiceMgr + +#Patch /TagInfo metadata container +from OverlayCommonAlgs.OverlayFlags import overlayFlags +for key in overlayFlags.extraTagInfoPairs.get_Value().keys(): + ServiceMgr.TagInfoMgr.ExtraTagValuePairs += [str(key), str(overlayFlags.extraTagInfoPairs.get_Value()[key])] +if hasattr(runArgs, 'AMITag'): + if runArgs.AMITag != "NONE": + ServiceMgr.TagInfoMgr.ExtraTagValuePairs += ["AMITag", runArgs.AMITag] + #print "OverlayPool_tf.py: at the end. job=\n", job print "\nOverlayPool_tf.py: at the end. ServiceMgr=\n", ServiceMgr diff --git a/Event/EventOverlay/OverlayCommonAlgs/python/OverlayFlags.py b/Event/EventOverlay/OverlayCommonAlgs/python/OverlayFlags.py index b884efddfa7157ee1d82e54534fe77c844c006b7..96158c32cbefcd392e6b3b4d907137ea06cf2e9a 100644 --- a/Event/EventOverlay/OverlayCommonAlgs/python/OverlayFlags.py +++ b/Event/EventOverlay/OverlayCommonAlgs/python/OverlayFlags.py @@ -57,6 +57,13 @@ class outputStore(JobProperty): allowedTypes=['str'] StoredValue = 'StoreGateSvc' +class extraTagInfoPairs(JobProperty): + """ workaround to correctly populate the /TagInfo metadata container + """ + statusOn=False + allowedTypes=['dict'] + StoredValue=dict() + ## Definition and registration of the simulation flag container class Overlay_Flags(JobPropertyContainer):