diff --git a/Event/EventOverlay/EventOverlayJobTransforms/python/overlayTransformUtils.py b/Event/EventOverlay/EventOverlayJobTransforms/python/overlayTransformUtils.py index cbd6df21caedf54fda617aac63611845497f47d7..c451564d61ae8490a13141b1eeb7e4a3b5e8785c 100644 --- a/Event/EventOverlay/EventOverlayJobTransforms/python/overlayTransformUtils.py +++ b/Event/EventOverlay/EventOverlayJobTransforms/python/overlayTransformUtils.py @@ -193,10 +193,16 @@ def addOverlayHITARMakerSubstep(executorSet): executorSet.add(BSJobSplitterExecutor(name = 'HITARMaker', skeletonFile = 'EventOverlayJobTransforms/skeleton.HITARMaker_tf.py', substep='HITARMaker', inData = ['TXT_EVENTID'], outData = ['TAR_CONFIG'])) -def addOverlay_PoolSubstep(executorSet): - executorSet.add(athenaExecutor(name = 'OverlayPool', skeletonFile = 'EventOverlayJobTransforms/skeleton.OverlayPool_tf.py', - substep = 'overlayPOOL', tryDropAndReload = False, perfMonFile = 'ntuple.pmon.gz', - inData = ['HITS', 'RDO_BKG'], outData = ['RDO', 'RDO_SGNL'])) +def addOverlay_PoolSubstep(executorSet, inRecoChain = False): + executor = athenaExecutor(name = 'OverlayPool', skeletonFile = 'EventOverlayJobTransforms/skeleton.OverlayPool_tf.py', + substep = 'overlayPOOL', tryDropAndReload = False, perfMonFile = 'ntuple.pmon.gz', + inData = [('HITS', 'RDO_BKG')], outData = ['RDO', 'RDO_SGNL']) + + if inRecoChain: + executor.inData = [] + executor.outData = [] + + executorSet.add(executor) def addOverlay_BSSubstep(executorSet): executorSet.add(athenaExecutor(name = 'OverlayBS', skeletonFile = 'EventOverlayJobTransforms/skeleton.OverlayBS_tf.py', @@ -213,9 +219,9 @@ def appendOverlayBSFilterSubstep(trf): addOverlayBSFilterSubstep(executor) trf.appendToExecutorSet(executor) -def appendOverlay_PoolSubstep(trf): +def appendOverlay_PoolSubstep(trf, inRecoChain = False): executor = set() - addOverlay_PoolSubstep(executor) + addOverlay_PoolSubstep(executor, inRecoChain) trf.appendToExecutorSet(executor) def appendOverlay_BSSubstep(trf): diff --git a/Reconstruction/RecJobTransforms/scripts/Reco_tf.py b/Reconstruction/RecJobTransforms/scripts/Reco_tf.py index 3173f7a311d8b98abf0f17bdc4092f1f5d89e28a..5a4f61b881d4a123647c269fa061f80d768dba9a 100755 --- a/Reconstruction/RecJobTransforms/scripts/Reco_tf.py +++ b/Reconstruction/RecJobTransforms/scripts/Reco_tf.py @@ -80,6 +80,16 @@ def getTransform(RAWtoALL=False): except ImportError, e: msg.warning('Failed to import digitisation arguments ({0}). Digitisation substep will not be available.'.format(e)) + # Again, protect core functionality from too tight a dependence on EventOverlay + try: + from EventOverlayJobTransforms.overlayTrfArgs import addOverlayTrfArgs, addOverlayPoolTrfArgs + from EventOverlayJobTransforms.overlayTransformUtils import appendOverlay_PoolSubstep + addOverlayTrfArgs(trf.parser) + addOverlayPoolTrfArgs(trf.parser) + appendOverlay_PoolSubstep(trf, True) + except ImportError, e: + msg.warning('Failed to import overlay arguments ({0}). Event overlay substep will not be available.'.format(e)) + # Again, protect core functionality from too tight a dependence on PATJobTransforms try: from PATJobTransforms.PATTransformUtils import addPhysValidationFiles, addValidationArguments, appendPhysValidationSubstep diff --git a/Tools/PyJobTransforms/python/trfArgClasses.py b/Tools/PyJobTransforms/python/trfArgClasses.py index 82ae17b9c1bd01542d8d8f676a2a7055149f3ade..0794dfb1da08cd0738e7c5c4b965e5b999341ece 100644 --- a/Tools/PyJobTransforms/python/trfArgClasses.py +++ b/Tools/PyJobTransforms/python/trfArgClasses.py @@ -2057,11 +2057,14 @@ class argSubstepSteering(argSubstep): # usecases of steering. # "no" - a convenience null option for production managers, does nothing # "doRDO_TRIG" - run split trigger for Reco_tf and friends + # "doOverlay" - run event overlay on premixed RDOs instead of standard HITtoRDO digitization # "afterburn" - run the B decay afterburner for event generation # "doRAWtoALL" - produce all DESDs and AODs directly from bytestream steeringAlises = { 'no': {}, 'doRDO_TRIG': {'RAWtoESD': [('in', '-', 'RDO'), ('in', '+', 'RDO_TRIG'), ('in', '-', 'BS')]}, + 'doOverlay': {'HITtoRDO': [('in', '-', 'HITS'), ('out', '-', 'RDO'), ('out', '-', 'RDO_FILT')], + 'OverlayPool': [('in', '+', ('HITS', 'RDO_BKG')), ('out', '+', 'RDO')]}, 'afterburn': {'generate': [('out', '-', 'EVNT')]}, 'doRAWtoALL': {'RAWtoALL': [('in', '+', 'BS'), ('in', '+', 'RDO'), ('in', '+', 'RDO_FTK'), ('in', '+', 'DRAW_ZMUMU'), ('in', '+', 'DRAW_ZEE'), ('in', '+', 'DRAW_EMU'), ('in', '+', 'DRAW_RPVLL'),