From 9da3dc16ca220523b1ebc45bdab0ebf8f400d08e Mon Sep 17 00:00:00 2001 From: Marcelo Vogel <mavogel@cern.ch> Date: Sat, 5 May 2018 08:12:17 +0200 Subject: [PATCH] Fix for Merge_tf.py in AthDerivation The python modules in SimuJobTransforms are not available in AthDerivation, and Merge_tf crashes while attempting to import them for its HITSMerge substep. This branch makes the import of these modules conditional to their availability in the release Former-commit-id: 4557e6035658e3db7f09ef700a837936a91f7a03 --- Tools/PyJobTransforms/scripts/Merge_tf.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/Tools/PyJobTransforms/scripts/Merge_tf.py b/Tools/PyJobTransforms/scripts/Merge_tf.py index d341503281c2..3ea748ae8882 100755 --- a/Tools/PyJobTransforms/scripts/Merge_tf.py +++ b/Tools/PyJobTransforms/scripts/Merge_tf.py @@ -21,8 +21,6 @@ from PyJobTransforms.trfDecorators import stdTrfExceptionHandler, sigUsrStackTra from RecJobTransforms.recTransformUtils import addCommonRecTrfArgs from PyJobTransforms.trfExe import DQMergeExecutor from PyJobTransforms.trfExe import tagMergeExecutor -from SimuJobTransforms.simTrfArgs import addForwardDetTrfArgs -from SimuJobTransforms.SimTransformUtils import addHITSMergeArguments from PyJobTransforms.trfExe import bsMergeExecutor from PyJobTransforms.trfExe import NTUPMergeExecutor from PyJobTransforms.trfArgs import addD3PDArguments, addExtraDPDTypes @@ -59,8 +57,6 @@ def getTransform(): inData = ['RDO'], outData = ['RDO_MRG'])) executorSet.add(bsMergeExecutor(name = 'RAWFileMerge', exe = 'file_merging', inData = set(['BS']), outData = set(['BS_MRG']))) executorSet.add(athenaExecutor(name = 'EVNTMerge', skeletonFile = 'PyJobTransforms/skeleton.EVNTMerge.py',inData = ['EVNT'], outData = ['EVNT_MRG'])) - executorSet.add(athenaExecutor(name = 'HITSMerge', substep="hitsmerge", skeletonFile = 'SimuJobTransforms/skeleton.HITSMerge.py', - tryDropAndReload = False, inData = ['HITS'], outData = ['HITS_MRG'])) addDAODMergerSubsteps(executorSet) addNTUPMergeSubsteps(executorSet) @@ -72,12 +68,24 @@ def getTransform(): addCommonRecTrfArgs(trf.parser) addMyArgs(trf.parser) - addHITSMergeArguments(trf.parser) addDAODArguments(trf.parser) addPhysValidationMergeFiles(trf.parser) addD3PDArguments(trf.parser, transform=trf, addD3PDMRGtypes=True) addExtraDPDTypes(trf.parser, transform=trf, NTUPMergerArgs = True) + # Add HITSMerge only if SimuJobTransforms is available + try: + from SimuJobTransforms.simTrfArgs import addForwardDetTrfArgs + from SimuJobTransforms.SimTransformUtils import addHITSMergeArguments + addHITSMergeArguments(trf.parser) + simStepSet = set() + simStepSet.add(athenaExecutor(name = 'HITSMerge', substep="hitsmerge", skeletonFile = 'SimuJobTransforms/skeleton.HITSMerge.py', + tryDropAndReload = False, inData = ['HITS'], outData = ['HITS_MRG'])) + trf.appendToExecutorSet(list(simStepSet)[0]) + except ImportError, e: + msg.warning('Failed to import simulation arguments ({0}). HITSMerge will not be available.'.format(e)) + + return trf -- GitLab