diff --git a/Calorimeter/CaloLocalHadCalib/scripts/CaloLCW_tf.py b/Calorimeter/CaloLocalHadCalib/scripts/CaloLCW_tf.py index 210d51301a3e9fe10b7f01a025d0b3cae4b136ce..2ced980f105001ad40b73c9a50c222d78a1f1f68 100755 --- a/Calorimeter/CaloLocalHadCalib/scripts/CaloLCW_tf.py +++ b/Calorimeter/CaloLocalHadCalib/scripts/CaloLCW_tf.py @@ -1,6 +1,6 @@ #!/usr/bin/env python -# Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration __doc__ = """JobTransform to run Calo LCW computation job""" @@ -14,8 +14,7 @@ import PyJobTransforms.trfArgClasses as trfArgClasses if __name__ == '__main__': executorSet = set() - executorSet.add(athenaExecutor(name = 'CaloLCW', skeletonFile = None, - skeletonCA='CaloLocalHadCalib.CaloLCWSkeleton', + executorSet.add(athenaExecutor(name = 'CaloLCW', skeletonCA='CaloLocalHadCalib.CaloLCWSkeleton', substep = 'e2d', inData = ['ESD',], outData = ['HIST_CLASS','HIST_OOC','HIST_WEIGHTS','NTUP_DM'])) trf = transform(executor = executorSet) diff --git a/HLT/Trigger/TrigTransforms/TrigTransform/scripts/Trig_reco_tf.py b/HLT/Trigger/TrigTransforms/TrigTransform/scripts/Trig_reco_tf.py index 03021e4d862b9a541ad8c6ca24a6aa9402eecfa2..5b2e2986107f3ce20afaa9b1afce6c37bbb7808f 100755 --- a/HLT/Trigger/TrigTransforms/TrigTransform/scripts/Trig_reco_tf.py +++ b/HLT/Trigger/TrigTransforms/TrigTransform/scripts/Trig_reco_tf.py @@ -75,7 +75,7 @@ def getTransform(): # RAWtoALL, DQHistogramMerge are the reconstruction substeps for trigger transform # shortened list from addRecoSubsteps in RecJobTransforms.recTransformUtils - executorSet.add(athenaExecutor(name = 'RAWtoALL', skeletonFile = 'RecJobTransforms/skeleton.RAWtoALL_tf.py', + executorSet.add(athenaExecutor(name = 'RAWtoALL', skeletonCA = 'RecJobTransforms.RAWtoALL_Skeleton', substep = 'r2a', inData = ['BS', 'RDO'], outData = ['ESD', 'AOD', 'HIST_R2A'], @@ -84,10 +84,10 @@ def getTransform(): # Other reco steps - not currently used in trigger reprocessings # if remove can also remove outputNTUP_TRIGFile - executorSet.add(athenaExecutor(name = 'ESDtoDPD', skeletonFile = 'PATJobTransforms/skeleton.ESDtoDPD_tf.py', + executorSet.add(athenaExecutor(name = 'ESDtoDPD', substep = 'e2d', inData = ['ESD'], outData = ['NTUP_TRIG'], perfMonFile = 'ntuple_ESDtoDPD.pmon.gz')) - executorSet.add(athenaExecutor(name = 'AODtoDPD', skeletonFile = 'PATJobTransforms/skeleton.AODtoDPD_tf.py', + executorSet.add(athenaExecutor(name = 'AODtoDPD', substep = 'a2d', inData = ['AOD', 'EVNT'], outData = ['NTUP_TRIG'], perfMonFile = 'ntuple_AODtoDPD.pmon.gz')) diff --git a/LArCalorimeter/LArCafJobs/share/LArCAF_tf.py b/LArCalorimeter/LArCafJobs/share/LArCAF_tf.py index 3332fe1cf01e5091f6d5eb3e850533b7cd862622..4999311fc1f9af075f0cbed00d775bd6940f9f3a 100755 --- a/LArCalorimeter/LArCafJobs/share/LArCAF_tf.py +++ b/LArCalorimeter/LArCafJobs/share/LArCAF_tf.py @@ -1,6 +1,6 @@ #!/usr/bin/env python -# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration __doc__ = """JobTransform to run LAr CAF jobs""" @@ -14,7 +14,7 @@ import PyJobTransforms.trfArgClasses as trfArgClasses if __name__ == '__main__': executorSet = set() - executorSet.add(athenaExecutor(name = 'LArCAFcalib', skeletonFile = None, + executorSet.add(athenaExecutor(name = 'LArCAFcalib', skeletonCA='LArCafJobs.LArShapeDumperSkeleton', substep = 'r2e', inData = ['BS',], outData = ['NTUP_SAMPLESMON','NTUP_HECNOISE'])) diff --git a/LArCalorimeter/LArCafJobs/share/LArCells_tf.py b/LArCalorimeter/LArCafJobs/share/LArCells_tf.py index 126186e6fda8933e22c285c74fb78713c97b18c6..2fa367795a964f2c3fe3b89479a6a49db1c1da24 100755 --- a/LArCalorimeter/LArCafJobs/share/LArCells_tf.py +++ b/LArCalorimeter/LArCafJobs/share/LArCells_tf.py @@ -1,6 +1,6 @@ #!/usr/bin/env python -# Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration __doc__ = """JobTransform to run LArReadCells jobs""" @@ -14,7 +14,7 @@ import PyJobTransforms.trfArgClasses as trfArgClasses if __name__ == '__main__': executorSet = set() - executorSet.add(athenaExecutor(name = 'LArCAFcells', skeletonFile = None, + executorSet.add(athenaExecutor(name = 'LArCAFcells', skeletonCA='LArCafJobs.LArReadCellsSkeleton', substep = 'r2e', inData = ['BS',], outData = ['NTUP_LARCELLS'])) diff --git a/LArCalorimeter/LArCafJobs/share/LArNoiseBursts_tf.py b/LArCalorimeter/LArCafJobs/share/LArNoiseBursts_tf.py index 636b97395248e6ac1e7d5380f94e8e527f512dd9..02e9a296e61ddd75b8390cfd6a331ea2918e7056 100755 --- a/LArCalorimeter/LArCafJobs/share/LArNoiseBursts_tf.py +++ b/LArCalorimeter/LArCafJobs/share/LArNoiseBursts_tf.py @@ -1,6 +1,6 @@ #!/usr/bin/env python -# Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration __doc__ = """JobTransform to run LAr Noise Burst jobs""" @@ -14,7 +14,7 @@ import PyJobTransforms.trfArgClasses as trfArgClasses if __name__ == '__main__': executorSet = set() - executorSet.add(athenaExecutor(name = 'LArNoiseBursts', skeletonFile = None, + executorSet.add(athenaExecutor(name = 'LArNoiseBursts', skeletonCA='LArCafJobs.LArNoiseSkeleton', substep = 'e2a', inData = ['ESD',], outData = ['NTUP_LARNOISE','NTUP_HECNOISE'])) diff --git a/LArCalorimeter/LArCafJobs/share/LArSCDump_tf.py b/LArCalorimeter/LArCafJobs/share/LArSCDump_tf.py index 4226ae330458187ba13c8bbb64b9cd8e55242917..d258087098f5d791d3929d9ee3a69b1fd258bff8 100755 --- a/LArCalorimeter/LArCafJobs/share/LArSCDump_tf.py +++ b/LArCalorimeter/LArCafJobs/share/LArSCDump_tf.py @@ -1,6 +1,6 @@ #!/usr/bin/env python -# Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration __doc__ = """JobTransform to run LAr SuperCells dumping jobs""" @@ -14,7 +14,7 @@ import PyJobTransforms.trfArgClasses as trfArgClasses if __name__ == '__main__': executorSet = set() - executorSet.add(athenaExecutor(name = 'LArSCDump', skeletonFile = None, + executorSet.add(athenaExecutor(name = 'LArSCDump', skeletonCA='LArCafJobs.LArSCDumperSkeleton', substep = 'r2e', inData = ['BS',], outData = ['NTUP_SCMON'])) diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkConfiguration/python/DerivationTransformHelpers.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkConfiguration/python/DerivationTransformHelpers.py index 307ff463342c6695c2cb6403cc20cb743c5e0fa2..60067cbcc5cc63c72e14cdc2c4ce98b6992ca899 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkConfiguration/python/DerivationTransformHelpers.py +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkConfiguration/python/DerivationTransformHelpers.py @@ -1,6 +1,6 @@ """Main derivation transform configuration helpers -Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration +Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration """ from PyJobTransforms.trfArgClasses import argFactory, argList, argNTUPFile, argPOOLFile, argSubstepBool @@ -66,7 +66,6 @@ def addDerivationSubstep(executor_set): # It handles the composite output filenames and inserts them into the transform's dataDictionary. # If this isn't done the file validation will run over the wrong file name. executor = reductionFrameworkExecutor(name='Derivation', - skeletonFile=None, skeletonCA='DerivationFrameworkConfiguration.DerivationSkeleton', substep='DerivationFramework', tryDropAndReload=False, @@ -78,7 +77,6 @@ def addDerivationSubstep(executor_set): def addPhysicsValidationSubstep(executor_set): executor = athenaExecutor(name='PhysicsValidation', - skeletonFile=None, skeletonCA='DerivationFrameworkConfiguration.PhysicsValidationSkeleton', substep='PhysicsValidation', tryDropAndReload=False, diff --git a/PhysicsAnalysis/PATJobTransforms/python/PATTransformUtils.py b/PhysicsAnalysis/PATJobTransforms/python/PATTransformUtils.py index 358f6b55b17630d1b88a7f1a8c66aa49df9ed80e..3045c7f76d800bb8c02ae1777b69a1c5c4b095c8 100644 --- a/PhysicsAnalysis/PATJobTransforms/python/PATTransformUtils.py +++ b/PhysicsAnalysis/PATJobTransforms/python/PATTransformUtils.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration ## @brief Module with PAT transform options and substeps @@ -10,10 +10,10 @@ msg = msg.getChild(__name__) import PyJobTransforms.trfArgClasses as trfArgClasses -from PyJobTransforms.trfExe import athenaExecutor from PyJobTransforms.trfArgs import listKnownD3PDs, getExtraDPDList from PyJobTransforms.trfExe import NTUPMergeExecutor, hybridPOOLMergeExecutor + def addPhysValidationFiles(parser): # Better to somehow auto-import this from PhysicsAnalysis/PhysicsValidation/PhysValMonitoring parser.defineArgGroup('Validation Files', 'Physics validation file options') @@ -30,21 +30,6 @@ def addPhysValidationMergeFiles(parser): parser.add_argument('--outputNTUP_PHYSVAL_MRGFile', type=trfArgClasses.argFactory(trfArgClasses.argNTUPFile, io='output'), help='Output merged physics validation file', group='Validation Files') - -def addValidationArguments(parser): - parser.defineArgGroup('Validation Args', 'Physics validation options') - parser.add_argument('--validationFlags', nargs='+', - type=trfArgClasses.argFactory(trfArgClasses.argList), - help='Physics validation histogram switches', group='Validation Args') - -def addPhysValidationSubstep(executorSet): - executorSet.add(athenaExecutor(name = 'PhysicsValidation', skeletonFile = 'PATJobTransforms/skeleton.PhysicsValidation_tf.py', - inData = ['AOD'], outData = ['NTUP_PHYSVAL'], substep='pval')) - -def appendPhysValidationSubstep(trf): - executor = set() - addPhysValidationSubstep(executor) - trf.appendToExecutorSet(executor) def addNTUPMergeSubsteps(executorSet): # Ye olde NTUPs @@ -89,9 +74,7 @@ def addDAODArguments(parser, mergerTrf=True): def addDAODMergerSubsteps(executorSet): DAODTypes = knownDAODTypes() for DAOD in DAODTypes: - executorSet.add(hybridPOOLMergeExecutor(name = DAOD.lstrip("DAOD_") + 'Merge', skeletonFile = 'RecJobTransforms/skeleton.MergePool_tf.py', - skeletonCA = 'RecJobTransforms.MergePool_Skeleton', inData = [DAOD], outData = [DAOD+'_MRG']) - ) + executorSet.add(hybridPOOLMergeExecutor(name = DAOD.lstrip("DAOD_") + 'Merge', inData = [DAOD], outData = [DAOD+'_MRG'])) def knownDAODTypes(): DAODTypes = [] diff --git a/PhysicsAnalysis/PATJobTransforms/scripts/DAODMerge_tf.py b/PhysicsAnalysis/PATJobTransforms/scripts/DAODMerge_tf.py index fb3aac0db2729bf38796ff73a02b6b5b37e1c130..a30efdfe14926f7a08328693b621ed4bab585b6b 100755 --- a/PhysicsAnalysis/PATJobTransforms/scripts/DAODMerge_tf.py +++ b/PhysicsAnalysis/PATJobTransforms/scripts/DAODMerge_tf.py @@ -1,6 +1,6 @@ #! /usr/bin/env python -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration ## DAODMerge_tf.py - Dervied AOD merger capable of merging different flavours # of DAOD in the one job @@ -9,22 +9,17 @@ import sys import time -import logging - # Setup core logging here from PyJobTransforms.trfLogger import msg msg.info('logging set in %s' % sys.argv[0]) from PyJobTransforms.transform import transform -from PyJobTransforms.trfExe import athenaExecutor, hybridPOOLMergeExecutor from PyJobTransforms.trfArgs import addAthenaArguments, addDetectorArguments from PyJobTransforms.trfDecorators import stdTrfExceptionHandler, sigUsrStackTrace from RecJobTransforms.recTransformUtils import addCommonRecTrfArgs from PATJobTransforms.PATTransformUtils import addDAODArguments, addDAODMergerSubsteps -import PyJobTransforms.trfArgClasses as trfArgClasses - ListOfDefaultPositionalKeys=['--AMIConfig', '--AMITag', '--DBRelease', '--argJSON', '--asetup', '--athena', '--athenaMPMergeTargetSize', '--athenaopts', '--autoConfiguration', '--beamType', '--checkEventCount', '--command', '--conditionsTag', '--dumpJSON', '--dumpPickle', '--env', '--eventAcceptanceEfficiency', '--execOnly', '--geometryVersion', '--ignoreErrors', '--ignoreFiles', '--ignorePatterns', '--imf', '--inputDAOD_HIGGS3D1File', '--inputDAOD_HIGGS4D2File', '--inputDAOD_HIGGS5D1File', '--inputDAOD_HIGGS8D1File', '--inputDAOD_HIGGS8D2File', '--inputDAOD_JETMET1File', '--inputDAOD_JETMET2File', '--inputDAOD_JETMET3File', '--inputDAOD_JETMET4File', '--inputDAOD_JETMET5File', '--inputDAOD_SUSY1File', '--inputDAOD_TAU1File', '--inputDAOD_TAU3File', '--inputDAOD_TEST1File', '--inputDAOD_TEST2File', '--inputDAOD_TEST3File', '--inputDAOD_TEST4File', '--inputDAOD_TEST5File', '--inputDAOD_TOP1File', '--maxEvents', '--orphanKiller', '--outputDAOD_HIGGS3D1_MRGFile', '--outputDAOD_HIGGS4D2_MRGFile', '--outputDAOD_HIGGS5D1_MRGFile', '--outputDAOD_HIGGS8D1_MRGFile', '--outputDAOD_HIGGS8D2_MRGFile', '--outputDAOD_JETMET1_MRGFile', '--outputDAOD_JETMET2_MRGFile', '--outputDAOD_JETMET3_MRGFile', '--outputDAOD_JETMET4_MRGFile', '--outputDAOD_JETMET5_MRGFile', '--outputDAOD_SUSY1_MRGFile', '--outputDAOD_TAU1_MRGFile', '--outputDAOD_TAU3_MRGFile', '--outputDAOD_TEST1_MRGFile', '--outputDAOD_TEST2_MRGFile', '--outputDAOD_TEST3_MRGFile', '--outputDAOD_TEST4_MRGFile', '--outputDAOD_TEST5_MRGFile', '--outputDAOD_TOP1_MRGFile', '--parallelFileValidation', '--postExec', '--postInclude', '--preExec', '--preInclude', '--reportName', '--reportType', '--runNumber', '--showGraph', '--showPath', '--showSteps', '--skipEvents', '--skipFileValidation', '--skipInputFileValidation', '--skipOutputFileValidation', '--steering', '--tcmalloc', '--trigStream'] @stdTrfExceptionHandler diff --git a/Reconstruction/RecJobTransforms/python/recTransformUtils.py b/Reconstruction/RecJobTransforms/python/recTransformUtils.py index a13ca62a1528c6d45c2bd04687e6297729821ffe..1d69df9d537ec3fdff999776a154a874f17bc578 100644 --- a/Reconstruction/RecJobTransforms/python/recTransformUtils.py +++ b/Reconstruction/RecJobTransforms/python/recTransformUtils.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration ## @brief Module with standard reconstruction transform options and substeps @@ -7,7 +7,7 @@ msg = logging.getLogger(__name__) import PyJobTransforms.trfArgClasses as trfArgClasses -from PyJobTransforms.trfExe import athenaExecutor, dummyExecutor, DQMergeExecutor +from PyJobTransforms.trfExe import athenaExecutor, DQMergeExecutor from PyJobTransforms.trfArgs import addPrimaryDPDArguments, addExtraDPDTypes @@ -74,9 +74,6 @@ def addStandardRecoFiles(parser): parser.add_argument('--outputHIST_AODFile', type=trfArgClasses.argFactory(trfArgClasses.argHISTFile, io='output', countable=False), help='Output DQ monitoring file', group='Reco Files') - parser.add_argument('--outputTAGFile', - type=trfArgClasses.argFactory(trfArgClasses.argFile, io='output'), - help='Output TAG file', group='Reco Files') parser.add_argument('--inputEVNTFile', nargs='+', type=trfArgClasses.argFactory(trfArgClasses.argPOOLFile, io='input'), help='Input EVNT file for NTUP_TRUTH making', group='Reco Files') @@ -97,36 +94,27 @@ def addStandardRecoFiles(parser): # @note This is done in a separate function so that other transforms (full chain ones) # can import these steps easily def addRecoSubsteps(executorSet): - executorSet.add(athenaExecutor(name = 'RDOtoBS', skeletonFile = 'RecJobTransforms/skeleton.RDOtoBS_tf.py', + executorSet.add(athenaExecutor(name = 'RDOtoBS', substep = 'r2b', inData = ['RDO'], outData = ['BS'])) - executorSet.add(athenaExecutor(name = 'RDOtoRDOTrigger', skeletonFile = 'RecJobTransforms/skeleton.RDOtoRDOtrigger.py', + executorSet.add(athenaExecutor(name = 'RDOtoRDOTrigger', skeletonFile = 'RecJobTransforms/skeleton.RDOtoRDOtrigger.py', # needs to keep legacy for older releases skeletonCA = 'RecJobTransforms.RDOtoRDO_TRIG_Skeleton', substep = 'r2t', inData = ['RDO'], outData = ['RDO_TRIG'])) - executorSet.add(athenaExecutor(name = 'RAWtoALL', skeletonFile = 'RecJobTransforms/skeleton.RAWtoALL_tf.py', + executorSet.add(athenaExecutor(name = 'RAWtoALL', skeletonCA = 'RecJobTransforms.RAWtoALL_Skeleton', substep = 'r2a', inData = ['BS', 'RDO', 'DRAW_ZMUMU', 'DRAW_ZEE', 'DRAW_EMU', 'DRAW_RPVLL'], outData = ['ESD', 'AOD', 'HIST_R2A', 'TXT_JIVEXMLTGZ'],)) - executorSet.add(athenaExecutor(name = 'RAWtoDAODTLA', skeletonCA = 'RecJobTransforms.RAWtoDAOD_TLA_Skeleton', + executorSet.add(athenaExecutor(name = 'RAWtoDAODTLA', + skeletonCA = 'RecJobTransforms.RAWtoDAOD_TLA_Skeleton', substep = 'r2tla', inData = ['BS'], outData = ['DAOD_TLA'], )) - executorSet.add(athenaExecutor(name = 'RAWtoDAODTLAFTAGPEB', skeletonCA = 'RecJobTransforms.RAWtoDAOD_TLA_Skeleton', + executorSet.add(athenaExecutor(name = 'RAWtoDAODTLAFTAGPEB', + skeletonCA = 'RecJobTransforms.RAWtoDAOD_TLA_Skeleton', substep = 'r2TLAFTAGPEB', inData = ['BS'], outData = ['DAOD_TLAFTAGPEB'], )) - executorSet.add(athenaExecutor(name = 'RAWtoDAODTLAEGAMPEB', skeletonCA = 'RecJobTransforms.RAWtoDAOD_TLA_Skeleton', + executorSet.add(athenaExecutor(name = 'RAWtoDAODTLAEGAMPEB', + skeletonCA = 'RecJobTransforms.RAWtoDAOD_TLA_Skeleton', substep = 'r2TLAEGAMPEB', inData = ['BS'], outData = ['DAOD_TLAEGAMPEB'], )) - executorSet.add(athenaExecutor(name = 'RAWtoESD', skeletonFile = 'RecJobTransforms/skeleton.RAWtoESD_tf.py', - substep = 'r2e', inData = [], outData = [],)) - executorSet.add(athenaExecutor(name = 'ESDtoAOD', skeletonFile = 'RecJobTransforms/skeleton.ESDtoAOD_tf.py', - substep = 'e2a', inData = ['ESD'], outData = ['AOD', 'HIST_AOD_INT'])) executorSet.add(DQMergeExecutor(name = 'DQHistogramMerge', inData = [('HIST_ESD_INT', 'HIST_AOD_INT'), 'HIST_R2A', 'HIST_AOD'], outData = ['HIST'])) - executorSet.add(athenaExecutor(name = 'ESDtoDPD', skeletonFile = 'PATJobTransforms/skeleton.ESDtoDPD_tf.py', - substep = 'e2d', inData = ['ESD'], outData = [])) - executorSet.add(athenaExecutor(name = 'AODtoDPD', skeletonFile = 'PATJobTransforms/skeleton.AODtoDPD_tf.py', - substep = 'a2d', inData = ['AOD', 'EVNT'], outData = [])) - executorSet.add(athenaExecutor(name = 'AODtoAOD', skeletonFile = 'RecJobTransforms/skeleton.AODtoAOD_tf.py', - substep = 'a2a', inData = ['AOD'], outData = ['AOD_RPR'], - perfMonFile = None)) - executorSet.add(dummyExecutor(name = 'AODtoTAG', - inData = ['AOD', 'AOD_RPR'], outData = ['TAG'],)) - executorSet.add(athenaExecutor(name = 'AODtoHIST', skeletonFile = 'RecJobTransforms/skeleton.AODtoHIST_tf.py', skeletonCA = 'RecJobTransforms.AODtoHIST_Skeleton', + executorSet.add(athenaExecutor(name = 'AODtoHIST', + skeletonCA = 'RecJobTransforms.AODtoHIST_Skeleton', substep = 'a2h', inData = ['AOD'], outData = ['HIST_AOD'],)) diff --git a/Reconstruction/RecJobTransforms/scripts/AODMerge_tf.py b/Reconstruction/RecJobTransforms/scripts/AODMerge_tf.py index b917798cbc4f9b2699f3dc3094f8e62a20723581..bd79cf76f1cb1dedfd27bfd2f3ccd23266892e5d 100755 --- a/Reconstruction/RecJobTransforms/scripts/AODMerge_tf.py +++ b/Reconstruction/RecJobTransforms/scripts/AODMerge_tf.py @@ -1,6 +1,6 @@ #! /usr/bin/env python -# Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration ## AODMerge_tf.py - AOD merger with optional TAG and DPD outputs # N.B. Do need clarification as to if AODtoDPD is ever run in parallel with AOD merging @@ -9,21 +9,19 @@ import sys import time -import logging - # Setup core logging here from PyJobTransforms.trfLogger import msg msg.info('logging set in %s' % sys.argv[0]) from PyJobTransforms.transform import transform -from PyJobTransforms.trfExe import athenaExecutor, hybridPOOLMergeExecutor +from PyJobTransforms.trfExe import hybridPOOLMergeExecutor from PyJobTransforms.trfArgs import addAthenaArguments, addDetectorArguments from PyJobTransforms.trfDecorators import stdTrfExceptionHandler, sigUsrStackTrace from RecJobTransforms.recTransformUtils import addCommonRecTrfArgs import PyJobTransforms.trfArgClasses as trfArgClasses -ListOfDefaultPositionalKeys=['--DBRelease', '--amiConfig', '--amiMetadataTag', '--asetup', '--athena', '--athenaopts', '--autoConfiguration', '--beamType', '--checkEventCount', '--command', '--conditionsTag', '--env', '--eventAcceptanceEfficiency', '--execOnly', '--geometryVersion', '--ignoreErrors', '--ignoreFilters', '--ignorePatterns', '--inputAODFile', '--maxEvents', '--noimf', '--notcmalloc', '--outputAOD_MRGFile', '--outputTAGFile', '--postExec', '--postInclude', '--preExec', '--preInclude', '--reportName', '--runNumber', '--showGraph', '--showPath', '--showSteps', '--skipEvents', '--skipFileValidation', '--skipInputFileValidation', '--skipOutputFileValidation'] +ListOfDefaultPositionalKeys=['--DBRelease', '--amiConfig', '--amiMetadataTag', '--asetup', '--athena', '--athenaopts', '--autoConfiguration', '--beamType', '--checkEventCount', '--command', '--conditionsTag', '--env', '--eventAcceptanceEfficiency', '--execOnly', '--geometryVersion', '--ignoreErrors', '--ignoreFilters', '--ignorePatterns', '--inputAODFile', '--maxEvents', '--noimf', '--notcmalloc', '--outputAOD_MRGFile', '--postExec', '--postInclude', '--preExec', '--preInclude', '--reportName', '--runNumber', '--showGraph', '--showPath', '--showSteps', '--skipEvents', '--skipFileValidation', '--skipInputFileValidation', '--skipOutputFileValidation'] @stdTrfExceptionHandler @sigUsrStackTrace @@ -41,10 +39,7 @@ def main(): def getTransform(): executorSet = set() - executorSet.add(hybridPOOLMergeExecutor(name = 'AODMerge', skeletonFile = 'RecJobTransforms/skeleton.MergePool_tf.py', - skeletonCA = 'RecJobTransforms.MergePool_Skeleton', inData = ['AOD'], outData = ['AOD_MRG'])) - executorSet.add(athenaExecutor(name = 'AODtoTAG', skeletonFile = 'RecJobTransforms/skeleton.AODtoTAG_tf.py', - inData = ['AOD_MRG'], outData = ['TAG'],)) + executorSet.add(hybridPOOLMergeExecutor(name = 'AODMerge', inData = ['AOD'], outData = ['AOD_MRG'])) trf = transform(executor = executorSet) @@ -67,9 +62,6 @@ def addMyArgs(parser): parser.add_argument('--outputAOD_MRGFile', '--outputAODFile', type=trfArgClasses.argFactory(trfArgClasses.argPOOLFile, io='output', type='aod'), help='Output merged AOD file', group='AODMerge_tf') - parser.add_argument('--outputTAGFile', - type=trfArgClasses.argFactory(trfArgClasses.argTAGFile, io='output', type='tag'), - help='Output TAG file', group='AODMerge_tf') if __name__ == '__main__': main() diff --git a/Reconstruction/RecJobTransforms/scripts/ESDMerge_tf.py b/Reconstruction/RecJobTransforms/scripts/ESDMerge_tf.py index 6f0c5e686102cd8e8b25f38c3a2d9822dfd6a3ce..81a88468747c47e8738b7498a173d6eb27c73bcb 100755 --- a/Reconstruction/RecJobTransforms/scripts/ESDMerge_tf.py +++ b/Reconstruction/RecJobTransforms/scripts/ESDMerge_tf.py @@ -1,6 +1,6 @@ #! /usr/bin/env python -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration ## ESDMerge_tf.py - ESD merger # @version $Id: ESDMerge_tf.py 670203 2015-05-27 13:19:01Z graemes $ @@ -8,14 +8,12 @@ import sys import time -import logging - # Setup core logging here from PyJobTransforms.trfLogger import msg msg.info('logging set in %s' % sys.argv[0]) from PyJobTransforms.transform import transform -from PyJobTransforms.trfExe import athenaExecutor, hybridPOOLMergeExecutor +from PyJobTransforms.trfExe import hybridPOOLMergeExecutor from PyJobTransforms.trfArgs import addAthenaArguments, addDetectorArguments from PyJobTransforms.trfDecorators import stdTrfExceptionHandler, sigUsrStackTrace from RecJobTransforms.recTransformUtils import addCommonRecTrfArgs @@ -40,8 +38,7 @@ def main(): def getTransform(): executorSet = set() - executorSet.add(hybridPOOLMergeExecutor(name = 'ESDMerge', skeletonFile = 'RecJobTransforms/skeleton.MergePool_tf.py', - skeletonCA = 'RecJobTransforms.MergePool_Skeleton', inData = ['ESD'], outData = ['ESD_MRG'])) + executorSet.add(hybridPOOLMergeExecutor(name = 'ESDMerge', inData = ['ESD'], outData = ['ESD_MRG'])) trf = transform(executor = executorSet) diff --git a/Reconstruction/RecJobTransforms/scripts/ESDtoAOD_tf.py b/Reconstruction/RecJobTransforms/scripts/ESDtoAOD_tf.py index 48901cd2b512557544440790213be964368a206f..2b765257212c3ee85207f671cf5f6f5869d9f785 100755 --- a/Reconstruction/RecJobTransforms/scripts/ESDtoAOD_tf.py +++ b/Reconstruction/RecJobTransforms/scripts/ESDtoAOD_tf.py @@ -1,16 +1,13 @@ #! /usr/bin/env python -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration ## A simple ESDtoAOD transform. # @version $Id: ESDtoAOD_tf.py 670203 2015-05-27 13:19:01Z graemes $ -import os.path import sys import time -import logging - # Setup core logging here from PyJobTransforms.trfLogger import msg msg.info('logging set in %s' % sys.argv[0]) @@ -40,8 +37,7 @@ def main(): sys.exit(trf.exitCode) def getTransform(): - trf = transform(executor = athenaExecutor(name = 'ESDtoAOD', skeletonFile = 'RecJobTransforms/skeleton.ESDtoAOD_tf.py', - substep = 'e2a')) + trf = transform(executor = athenaExecutor(name = 'ESDtoAOD', substep = 'e2a')) addAthenaArguments(trf.parser) addDetectorArguments(trf.parser) addCommonRecTrfArgs(trf.parser) diff --git a/Reconstruction/RecJobTransforms/scripts/HISTMerge_tf.py b/Reconstruction/RecJobTransforms/scripts/HISTMerge_tf.py index 27b83be15d74344a516ed4c04942d5cc65045a6a..56cfe748c97801afa0995f4c02d35cbf94bb6be1 100755 --- a/Reconstruction/RecJobTransforms/scripts/HISTMerge_tf.py +++ b/Reconstruction/RecJobTransforms/scripts/HISTMerge_tf.py @@ -1,16 +1,13 @@ #! /usr/bin/env python -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration ## @brief Small test transform which only runs HIST merging # @version $Id: HISTMerge_tf.py 603486 2014-06-25 09:07:28Z graemes $ -import os.path import sys import time -import logging - # Setup core logging here from PyJobTransforms.trfLogger import msg msg.info('logging set in %s' % sys.argv[0]) diff --git a/Reconstruction/RecJobTransforms/scripts/HLTHistMerge_tf.py b/Reconstruction/RecJobTransforms/scripts/HLTHistMerge_tf.py index 0ae48e2ac604864e89a5e61f02a9391b516d52fa..25ce0191a17eefd3e51d7d667fcdddb140d09db5 100755 --- a/Reconstruction/RecJobTransforms/scripts/HLTHistMerge_tf.py +++ b/Reconstruction/RecJobTransforms/scripts/HLTHistMerge_tf.py @@ -1,16 +1,13 @@ #! /usr/bin/env python -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration ## @brief Small test transform which only runs HIST merging # @version $Id: HLTHistMerge_tf.py 601587 2014-06-13 07:01:23Z graemes $ -import os.path import sys import time -import logging - # Setup core logging here from PyJobTransforms.trfLogger import msg msg.info('logging set in %s' % sys.argv[0]) diff --git a/Reconstruction/RecJobTransforms/scripts/RAWMerge_tf.py b/Reconstruction/RecJobTransforms/scripts/RAWMerge_tf.py index 199f138e9455502c20e65c09526ca8f6b9db8f8d..f997d369e20dfdd13e49a4f468c92739ab091e3d 100755 --- a/Reconstruction/RecJobTransforms/scripts/RAWMerge_tf.py +++ b/Reconstruction/RecJobTransforms/scripts/RAWMerge_tf.py @@ -1,17 +1,14 @@ #! /usr/bin/env python -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration ## Bytestream file merger, adapted from Tier0 RAWMerge_trf.py # Uses TDAQ fast bytestream merger 'file_merging' # @version $Id: RAWMerge_tf.py 571113 2013-11-18 21:45:05Z graemes $ -import os.path import sys import time -import logging - # This is a hack for Prodsys I. To generate this list use the --dumpargs option to the transform, then paste in here # N.B. This all has to go on one line! ListOfDefaultPositionalKeys=['--allowRename', '--amiConfig', '--amiMetadataTag', '--checkEventCount', '--env', '--execOnly', '--ignoreErrors', '--inputBSFile', '--maskEmptyInputs', '--noimf', '--notcmalloc', '--outputBS_MRGFile', '--reportName', '--showGraph', '--showPath', '--showSteps', '--skipFileValidation', '--skipInputFileValidation', '--skipOutputFileValidation'] diff --git a/Reconstruction/RecJobTransforms/scripts/RAWSkim_tf.py b/Reconstruction/RecJobTransforms/scripts/RAWSkim_tf.py index d6a242759bbcc50a464801566ebe8166aaf7c9cc..657fdee69b0302536d840434f69fbabd14aee752 100755 --- a/Reconstruction/RecJobTransforms/scripts/RAWSkim_tf.py +++ b/Reconstruction/RecJobTransforms/scripts/RAWSkim_tf.py @@ -1,6 +1,6 @@ #! /usr/bin/env python -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration ## SkimRAW_tf.py - Bytestream skimmer transform # @version $Id: RAWSkim_tf.py 643395 2015-02-01 19:51:21Z graemes $ @@ -8,15 +8,12 @@ import sys import time -import logging - # Setup core logging here from PyJobTransforms.trfLogger import msg msg.info('logging set in %s' % sys.argv[0]) from PyJobTransforms.transform import transform from PyJobTransforms.trfDecorators import stdTrfExceptionHandler, sigUsrStackTrace -from RecJobTransforms.recTransformUtils import addCommonRecTrfArgs import PyJobTransforms.trfArgClasses as trfArgClasses diff --git a/Reconstruction/RecJobTransforms/scripts/RAWtoESD_tf.py b/Reconstruction/RecJobTransforms/scripts/RAWtoESD_tf.py deleted file mode 100755 index c1c7b82568dc64e9f8348729e8daa5717a56733d..0000000000000000000000000000000000000000 --- a/Reconstruction/RecJobTransforms/scripts/RAWtoESD_tf.py +++ /dev/null @@ -1,73 +0,0 @@ -#! /usr/bin/env python - -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration - -## A simple RAWtoESD transform. -# @version $Id: RAWtoESD_tf.py 670203 2015-05-27 13:19:01Z graemes $ - -import os.path -import sys -import time - -import logging - -# Setup core logging here -from PyJobTransforms.trfLogger import msg -msg.info('logging set in %s' % sys.argv[0]) - -from PyJobTransforms.transform import transform -from PyJobTransforms.trfExe import athenaExecutor -from PyJobTransforms.trfArgs import addAthenaArguments, addD3PDArguments -from PyJobTransforms.trfDecorators import stdTrfExceptionHandler, sigUsrStackTrace - -import PyJobTransforms.trfArgClasses as trfArgClasses - -ListOfDefaultPositionalKeys = ['--amiConfig', '--amiMetadataTag', '--asetup', '--athena', '--athenaopts', '--checkEventCount', '--command', '--env', '--eventAcceptanceEfficiency', '--execOnly', '--ignoreErrors', '--ignoreFilters', '--ignorePatterns', '--inputBSFile', '--inputRDOFile', '--maxEvents', '--noimf', '--notcmalloc', '--outputESDFile', '--outputHIST_ESD_INTFile', '--postExec', '--postInclude', '--preExec', '--preInclude', '--reportName', '--showGraph', '--showPath', '--showSteps', '--skipEvents', '--skipFileValidation', '--skipInputFileValidation', '--skipOutputFileValidation', '--outputTXT_JIVEXMLTGZFile'] - -@stdTrfExceptionHandler -@sigUsrStackTrace -def main(): - - msg.info('This is %s' % sys.argv[0]) - - trf = getTransform() - trf.parseCmdLineArgs(sys.argv[1:]) - trf.execute() - trf.generateReport() - - msg.info("%s stopped at %s, trf exit code %d" % (sys.argv[0], time.asctime(), trf.exitCode)) - sys.exit(trf.exitCode) - -def getTransform(): - trf = transform(executor = athenaExecutor(name = 'RAWtoESD', skeletonFile = 'RecJobTransforms/skeleton.RAWtoESD_tf.py', - substep = 'r2e', - )) - addAthenaArguments(trf.parser) - addMyArgs(trf.parser) - return trf - - -def addMyArgs(parser): - # Use arggroup to get these arguments in their own sub-section (of --help) - parser.defineArgGroup('RAWtoESD_tf', 'RAW to ESD specific options') - parser.add_argument('--inputRDO_TRIGFile', nargs='+', - type=trfArgClasses.argFactory(trfArgClasses.argRDO_TRIGFile, io='input'), - help='Input rdo trigger file', group='RAWtoESD_tf') - parser.add_argument('--inputBSFile', nargs='+', - type=trfArgClasses.argFactory(trfArgClasses.argBSFile, io='input'), - help='Input bytestream file', group='RAWtoESD_tf') - parser.add_argument('--inputRDOFile', nargs='+', - type=trfArgClasses.argFactory(trfArgClasses.argPOOLFile, io='input'), - help='Input RDO file', group='RAWtoESD_tf') - parser.add_argument('--outputESDFile', - type=trfArgClasses.argFactory(trfArgClasses.argPOOLFile, io='output'), - help='Output ESD file', group='RAWtoESD_tf') - parser.add_argument('--outputHIST_ESD_INTFile', - type=trfArgClasses.argFactory(trfArgClasses.argHISTFile, io='output', countable=False), - help='Output DQ monitoring file', group='RAWtoESD_tf') - parser.add_argument('--outputTXT_JIVEXMLTGZFile', type = trfArgClasses.argFactory(trfArgClasses.argFile, io = 'output'), - help = 'Output JiveXML.tgz file', group = 'RAWtoESD_tf') - - -if __name__ == '__main__': - main() diff --git a/Reconstruction/RecJobTransforms/scripts/Reco_tf.py b/Reconstruction/RecJobTransforms/scripts/Reco_tf.py index e0dfaf0fd970fa1e75b6616415c2b3a49cddb150..4dddc4c1822aee5c9171b3f29858585df0148d95 100755 --- a/Reconstruction/RecJobTransforms/scripts/Reco_tf.py +++ b/Reconstruction/RecJobTransforms/scripts/Reco_tf.py @@ -1,6 +1,6 @@ #! /usr/bin/env python -# Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration ## Reco_tf.py - New transform re-implementation of the beast that is Reco_trf. # @version $Id: Reco_tf.py 769766 2016-08-24 09:49:03Z lerrenst $ @@ -17,8 +17,7 @@ from PyJobTransforms.trfArgs import addAthenaArguments, addDetectorArguments, ad from PyJobTransforms.trfDecorators import stdTrfExceptionHandler, sigUsrStackTrace from RecJobTransforms.recTransformUtils import addAllRecoArgs, addRecoSubsteps -ListOfDefaultPositionalKeys=['--AFPOn', '--ALFAOn', '--AMIConfig', '--AMITag', '--AddCaloDigi', '--CA', '--DBRelease', '--DataRunNumber', '--FwdRegionOn', '--HGTDOn', '--LucidOn', '--PileUpPresampling', '--ZDCOn', '--argJSON', '--asetup', '--athena', '--athenaMPEventsBeforeFork', '--athenaMPMergeTargetSize', '--athenaMPStrategy', '--athenaMPUseEventOrders', '--athenaopts', '--attempt', '--autoConfiguration', '--beamType', '--bunchSpacing', '--checkEventCount', '--command', '--conditionsTag', '--detectors', '--digiRndmSvc', '--digiSeedOffset1', '--digiSeedOffset2', '--digiSteeringConf', '--doAllNoise', '--dumpJSON', '--dumpPickle', '--env', '--eventAcceptanceEfficiency', '--eventService', '--execOnly', '--fileValidation', '--geometryVersion', '--ignoreErrors', '--ignoreFiles', '--ignorePatterns', '--imf', '--inputAODFile', '--inputBSFile', '--inputBeamGasHitsFile', '--inputBeamHaloHitsFile', '--inputCavernHitsFile', '--inputDRAW_EMUFile', '--inputDRAW_ZEEFile', '--inputDRAW_ZMUMUFile', '--inputESDFile', '--inputEVNTFile', '--inputFileValidation', '--inputHITSFile', '--inputHighPtMinbiasHitsFile', '--inputLowPtMinbiasHitsFile', '--inputNTUP_COMMONFile', '--inputRDOFile', '--inputRDO_BKGFile', '--inputRDO_TRIGFile', '--jobNumber', '--jobid', '--maxEvents', '--multiprocess', '--multithreaded', '--numberOfBeamGas', '--numberOfBeamHalo', '--numberOfCavernBkg', '--numberOfHighPtMinBias', '--numberOfLowPtMinBias', '--outputAODFile', '--outputAOD_RPRFile', '--outputAOD_SKIMFile', '--outputDAOD_TLAFile', '--outputDAOD_TLAFTAGPEBFile', '--outputDAOD_TLAEGAMPEBFile' '--outputBSFile', '--outputDAODFile', '--outputDAOD_HSG2File', '--outputDAOD_IDNCBFile', '--outputDAOD_IDPIXLUMIFile', '--outputDAOD_IDTIDEFile', '--outputDAOD_IDTRKLUMIFile', '--outputDAOD_IDTRKVALIDFile', '--outputDAOD_L1CALO1File', '--outputDAOD_L1CALO2File', '--outputDAOD_L1CALO3File', '--outputDAOD_L1CALO4File', '--outputDAOD_L1CALO5File', '--outputDAOD_PIXELVALIDFile', '--outputDAOD_SCTVALIDFile', '--outputDESDM_ALLCELLSFile', '--outputDESDM_CALJETFile', '--outputDESDM_EGAMMAFile', '--outputDESDM_EOVERPFile', '--outputDESDM_EXOTHIPFile', '--outputDESDM_IDALIGNFile', '--outputDESDM_MCPFile', '--outputDESDM_PHOJETFile', '--outputDESDM_SGLELFile', '--outputDESDM_SLTTMUFile', '--outputDESDM_TILEMUFile', '--outputDESDM_ZMUMUFile', '--outputDESD_DEDXFile', '--outputDNTUPFile', '--outputDRAW_BCID1File', '--outputDRAW_BCID2File', '--outputDRAW_BCID3File', '--outputDRAW_BCID4File', '--outputDRAW_EGJPSIFile', '--outputDRAW_EGZFile', '--outputDRAW_TAULHFile', '--outputDRAW_JETFile', '--outputDRAW_EMUFile', '--outputDRAW_RPVLLFile', '--outputDRAW_TAUMUHFile', '--outputDRAW_TOPSLMUFile', '--outputDRAW_ZMUMUFile', '--outputESDFile', '--outputFileValidation', '--outputHISTFile', '--outputHIST_AODFile', '--outputNTUP_ENHBIASFile', '--outputNTUP_FASTMONFile', '--outputNTUP_FastCaloSimFile', '--outputNTUP_HECNOISEFile', '--outputNTUP_HIGHMULTFile', '--outputNTUP_LARNOISEFile', '--outputNTUP_MCPScaleFile', '--outputNTUP_MCPTPFile', '--outputNTUP_MUONCALIBFile', '--outputNTUP_PHYSVALFile', '--outputNTUP_PILEUPFile', '--outputNTUP_PROMPTPHOTFile', '--outputNTUP_SCTFile', '--outputNTUP_SUSYTRUTHFile', '--outputNTUP_TRKVALIDFile', '--outputNTUP_TRTFile', '--outputNTUP_TRUTHFile', '--outputNTUP_WZFile', '--outputRDOFile', '--outputRDO_FILTFile', '--outputRDO_SGNLFile', '--outputRDO_TRIGFile', '--outputTAGFile', '--outputTXT_JIVEXMLTGZFile', '--parallelFileValidation', '--passThrough', '--pileupFinalBunch', '--pileupInitialBunch', '--postExec', '--postInclude', '--preExec', '--preInclude', '--reductionConf', '--reportName', '--reportType', '--runNumber', '--samplingFractionDbTag', '--sharedWriter', '--showGraph', '--showPath', '--showSteps', '--skipEvents', '--steering', '--taskid', '--tcmalloc', '--testPileUpConfig', '--topOptions', '--trigFilterList', '--trigStream', '--triggerConfig', '--valgrind', '--valgrindDefaultOpts', '--valgrindExtraOpts', '--valid', '--validationFlags'] - +ListOfDefaultPositionalKeys=['--AFPOn', '--ALFAOn', '--AMIConfig', '--AMITag', '--AddCaloDigi', '--CA', '--DBRelease', '--DataRunNumber', '--FwdRegionOn', '--HGTDOn', '--LucidOn', '--PileUpPresampling', '--ZDCOn', '--argJSON', '--asetup', '--athena', '--athenaMPEventsBeforeFork', '--athenaMPMergeTargetSize', '--athenaMPStrategy', '--athenaMPUseEventOrders', '--athenaopts', '--attempt', '--autoConfiguration', '--beamType', '--bunchSpacing', '--checkEventCount', '--command', '--conditionsTag', '--detectors', '--digiRndmSvc', '--digiSeedOffset1', '--digiSeedOffset2', '--digiSteeringConf', '--doAllNoise', '--dumpJSON', '--dumpPickle', '--env', '--eventAcceptanceEfficiency', '--eventService', '--execOnly', '--fileValidation', '--geometryVersion', '--ignoreErrors', '--ignoreFiles', '--ignorePatterns', '--imf', '--inputAODFile', '--inputBSFile', '--inputBeamGasHitsFile', '--inputBeamHaloHitsFile', '--inputCavernHitsFile', '--inputDRAW_EMUFile', '--inputDRAW_ZEEFile', '--inputDRAW_ZMUMUFile', '--inputESDFile', '--inputEVNTFile', '--inputFileValidation', '--inputHITSFile', '--inputHighPtMinbiasHitsFile', '--inputLowPtMinbiasHitsFile', '--inputNTUP_COMMONFile', '--inputRDOFile', '--inputRDO_BKGFile', '--inputRDO_TRIGFile', '--jobNumber', '--jobid', '--maxEvents', '--multiprocess', '--multithreaded', '--numberOfBeamGas', '--numberOfBeamHalo', '--numberOfCavernBkg', '--numberOfHighPtMinBias', '--numberOfLowPtMinBias', '--outputAODFile', '--outputAOD_RPRFile', '--outputAOD_SKIMFile', '--outputDAOD_TLAFile', '--outputDAOD_TLAFTAGPEBFile', '--outputDAOD_TLAEGAMPEBFile', '--outputBSFile', '--outputDAODFile', '--outputDAOD_HSG2File', '--outputDAOD_IDNCBFile', '--outputDAOD_IDPIXLUMIFile', '--outputDAOD_IDTIDEFile', '--outputDAOD_IDTRKLUMIFile', '--outputDAOD_IDTRKVALIDFile', '--outputDAOD_L1CALO1File', '--outputDAOD_L1CALO2File', '--outputDAOD_L1CALO3File', '--outputDAOD_L1CALO4File', '--outputDAOD_L1CALO5File', '--outputDAOD_PIXELVALIDFile', '--outputDAOD_SCTVALIDFile', '--outputDESDM_ALLCELLSFile', '--outputDESDM_CALJETFile', '--outputDESDM_EGAMMAFile', '--outputDESDM_EOVERPFile', '--outputDESDM_EXOTHIPFile', '--outputDESDM_IDALIGNFile', '--outputDESDM_MCPFile', '--outputDESDM_PHOJETFile', '--outputDESDM_SGLELFile', '--outputDESDM_SLTTMUFile', '--outputDESDM_TILEMUFile', '--outputDESDM_ZMUMUFile', '--outputDESD_DEDXFile', '--outputDNTUPFile', '--outputDRAW_BCID1File', '--outputDRAW_BCID2File', '--outputDRAW_BCID3File', '--outputDRAW_BCID4File', '--outputDRAW_EGJPSIFile', '--outputDRAW_EGZFile', '--outputDRAW_TAULHFile', '--outputDRAW_JETFile', '--outputDRAW_EMUFile', '--outputDRAW_RPVLLFile', '--outputDRAW_TAUMUHFile', '--outputDRAW_TOPSLMUFile', '--outputDRAW_ZMUMUFile', '--outputESDFile', '--outputFileValidation', '--outputHISTFile', '--outputHIST_AODFile', '--outputNTUP_ENHBIASFile', '--outputNTUP_FASTMONFile', '--outputNTUP_FastCaloSimFile', '--outputNTUP_HECNOISEFile', '--outputNTUP_HIGHMULTFile', '--outputNTUP_LARNOISEFile', '--outputNTUP_MCPScaleFile', '--outputNTUP_MCPTPFile', '--outputNTUP_MUONCALIBFile', '--outputNTUP_PHYSVALFile', '--outputNTUP_PILEUPFile', '--outputNTUP_PROMPTPHOTFile', '--outputNTUP_SCTFile', '--outputNTUP_SUSYTRUTHFile', '--outputNTUP_TRKVALIDFile', '--outputNTUP_TRTFile', '--outputNTUP_TRUTHFile', '--outputNTUP_WZFile', '--outputRDOFile', '--outputRDO_FILTFile', '--outputRDO_SGNLFile', '--outputRDO_TRIGFile', '--outputTXT_JIVEXMLTGZFile', '--parallelFileValidation', '--passThrough', '--pileupFinalBunch', '--pileupInitialBunch', '--postExec', '--postInclude', '--preExec', '--preInclude', '--reductionConf', '--reportName', '--reportType', '--runNumber', '--samplingFractionDbTag', '--sharedWriter', '--showGraph', '--showPath', '--showSteps', '--skipEvents', '--steering', '--taskid', '--tcmalloc', '--testPileUpConfig', '--topOptions', '--trigFilterList', '--trigStream', '--triggerConfig', '--valgrind', '--valgrindDefaultOpts', '--valgrindExtraOpts', '--valid', '--validationFlags'] @stdTrfExceptionHandler @sigUsrStackTrace @@ -75,16 +74,7 @@ def getTransform(): appendOverlaySubstep(trf, in_reco_chain=True) except ImportError as e: msg.warning('Failed to import overlay arguments ({0}). 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 - addPhysValidationFiles(trf.parser) - addValidationArguments(trf.parser) - appendPhysValidationSubstep(trf) - except ImportError: - msg.warning('Failed to import PAT arguments. Physics validation substep will not be available.') - + return trf diff --git a/Reconstruction/RecJobTransforms/scripts/TAGMerge_tf.py b/Reconstruction/RecJobTransforms/scripts/TAGMerge_tf.py deleted file mode 100755 index 38586e52c813cfe67a23a6f4bad0f558a57564b9..0000000000000000000000000000000000000000 --- a/Reconstruction/RecJobTransforms/scripts/TAGMerge_tf.py +++ /dev/null @@ -1,62 +0,0 @@ -#! /usr/bin/env python - -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration - -## TAG file merger, adapted from Tier0 TAGMerge_trf.py -# Uses CollAppend binary -# @version $Id: TAGMerge_tf.py 571113 2013-11-18 21:45:05Z graemes $ - -import os.path -import sys -import time - -import logging - -# This is a hack for Prodsys I. To generate this list use the --dumpargs option to the transform, then paste in here -# N.B. This all has to go on one line! -ListOfDefaultPositionalKeys=['--amiConfig', '--amiMetadataTag', '--checkEventCount', '--env', '--execOnly', '--ignoreErrors', '--inputTAGFile', '--noimf', '--notcmalloc', '--outputTAG_MRGFile', '--reportName', '--showGraph', '--showPath', '--showSteps', '--skipFileValidation', '--skipInputFileValidation', '--skipOutputFileValidation'] - -# Setup core logging here -from PyJobTransforms.trfLogger import msg -msg.info('logging set in %s' % sys.argv[0]) - -from PyJobTransforms.transform import transform -from PyJobTransforms.trfExe import tagMergeExecutor -from PyJobTransforms.trfDecorators import stdTrfExceptionHandler, sigUsrStackTrace - -import PyJobTransforms.trfArgClasses as trfArgClasses - -@stdTrfExceptionHandler -@sigUsrStackTrace -def main(): - - msg.info('This is %s' % sys.argv[0]) - - trf = getTransform() - trf.parseCmdLineArgs(sys.argv[1:]) - trf.execute() - trf.generateReport() - - msg.info("%s stopped at %s, trf exit code %d" % (sys.argv[0], time.asctime(), trf.exitCode)) - sys.exit(trf.exitCode) - -def getTransform(): - trf = transform(executor = tagMergeExecutor(name = 'TAGFileMerge', exe = 'CollAppend', - inData = set(['TAG']), outData = set(['TAG_MRG']))) - addMyArgs(trf.parser) - return trf - - -def addMyArgs(parser): - # Use arggroup to get these arguments in their own sub-section (of --help) - parser.defineArgGroup('TAGMerge_tf', 'TAG merging specific options') - parser.add_argument('--inputTAGFile', nargs='+', - type=trfArgClasses.argFactory(trfArgClasses.argTAGFile, io='input'), - help='Input TAG file(s)', group='TAGMerge_tf') - parser.add_argument('--outputTAG_MRGFile', '--outputTAGFile', - type=trfArgClasses.argFactory(trfArgClasses.argTAGFile, io='output'), - help='Output merged TAG file', group='TAGMerge_tf') - - -if __name__ == '__main__': - main() diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/scripts/FCS_Ntup_tf.py b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/scripts/FCS_Ntup_tf.py index 9d7204ad8da41dad80798ffda989b65f853d57fc..5fa09051f90c9d26fecb331c7242e69e8e4feae7 100755 --- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/scripts/FCS_Ntup_tf.py +++ b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/scripts/FCS_Ntup_tf.py @@ -1,24 +1,21 @@ #! /usr/bin/env python -# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration """ Run HITS file and produce histograms. """ -import os.path import sys import time -import logging # Setup core logging here from PyJobTransforms.trfLogger import msg msg.info('logging set in %s' % sys.argv[0]) from PyJobTransforms.transform import transform from PyJobTransforms.trfExe import athenaExecutor -from PyJobTransforms.trfArgs import addAthenaArguments, addDetectorArguments, addTriggerArguments +from PyJobTransforms.trfArgs import addAthenaArguments, addDetectorArguments from PyJobTransforms.trfDecorators import stdTrfExceptionHandler, sigUsrStackTrace -import PyJobTransforms.trfArgClasses as trfArgClasses from ISF_FastCaloSimParametrization.fcsTrfArgs import addFCS_NtupArgs @stdTrfExceptionHandler @@ -39,7 +36,6 @@ def getTransform(): executorSet = set() from SimuJobTransforms.SimTransformUtils import addSimulationArguments executorSet.add(athenaExecutor(name = 'FCS_Ntup', - skeletonFile = 'ISF_FastCaloSimParametrization/skeleton.ESDtoNTUP_FCS.py', skeletonCA = 'ISF_FastCaloSimParametrization.ESDtoNTUP_FCS_Skeleton', inData = ['ESD'], outData = ['NTUP_FCS'],)) trf = transform(executor = executorSet, description = 'FastCaloSim V2 Parametrization ntuple transform. Inputs must be ESD. Outputs must be ntuple files.') diff --git a/Simulation/Overlay/OverlayConfiguration/python/OverlayTransformHelpers.py b/Simulation/Overlay/OverlayConfiguration/python/OverlayTransformHelpers.py index a23adafffb8ce1272e894be161b1c2133adfed6e..be7b4063d7b747b414fc3c0437023f4fffc8218a 100644 --- a/Simulation/Overlay/OverlayConfiguration/python/OverlayTransformHelpers.py +++ b/Simulation/Overlay/OverlayConfiguration/python/OverlayTransformHelpers.py @@ -60,7 +60,6 @@ def addOverlayArguments(parser, in_reco_chain=False): def addOverlaySubstep(executor_set, in_reco_chain=False): executor = athenaExecutor(name='Overlay', - skeletonFile=None, skeletonCA='OverlayConfiguration.OverlaySkeleton', substep='overlay', tryDropAndReload=False, diff --git a/Simulation/SimuJobTransforms/python/SimTransformUtils.py b/Simulation/SimuJobTransforms/python/SimTransformUtils.py index 88d5a30e2da06ae051d3c3daeeb8833f2fac4c91..ea2b254a9494ace583ad992b05ef56683a44bb42 100644 --- a/Simulation/SimuJobTransforms/python/SimTransformUtils.py +++ b/Simulation/SimuJobTransforms/python/SimTransformUtils.py @@ -162,13 +162,13 @@ def addRDOValidArguments(parser): ## @brief Add ISF transform substep # @param overlayTransform If @c True use the tweaked version of in/outData for an overlay job def addSimulationSubstep(executorSet, overlayTransform = False): - TRExe = athenaExecutor(name = 'TRtoHITS', skeletonFile = None, + TRExe = athenaExecutor(name = 'TRtoHITS', skeletonCA = 'SimuJobTransforms.ISF_Skeleton', substep = 'simTRIn', tryDropAndReload = False, perfMonFile = 'ntuple.pmon.gz', inData=['EVNT_TR'], outData=['HITS','NULL'] ) executorSet.add(TRExe) - SimExe = athenaExecutor(name = 'EVNTtoHITS', skeletonFile = None, + SimExe = athenaExecutor(name = 'EVNTtoHITS', skeletonCA = 'SimuJobTransforms.ISF_Skeleton', substep = 'sim', tryDropAndReload = False, perfMonFile = 'ntuple.pmon.gz', inData=['NULL','EVNT'], @@ -186,7 +186,6 @@ def addSimulationSubstep(executorSet, overlayTransform = False): def addReSimulationSubstep(executorSet): SimExe = athenaExecutor(name = 'ReSim', - skeletonFile = None, skeletonCA = 'SimuJobTransforms.ReSimulation_Skeleton', substep = 'rsm', tryDropAndReload = False, @@ -198,12 +197,12 @@ def addReSimulationSubstep(executorSet): def addAtlasG4Substep(executorSet): - executorSet.add(athenaExecutor(name = 'AtlasG4TfTRIn', skeletonFile = None, + executorSet.add(athenaExecutor(name = 'AtlasG4TfTRIn', skeletonCA = 'SimuJobTransforms.G4AtlasAlg_Skeleton', substep = 'simTRIn', tryDropAndReload = False, inData=['EVNT_TR'], outData=['HITS','NULL'] )) - executorSet.add(athenaExecutor(name = 'AtlasG4Tf', skeletonFile = None, + executorSet.add(athenaExecutor(name = 'AtlasG4Tf', skeletonCA = 'SimuJobTransforms.G4AtlasAlg_Skeleton', substep = 'sim', tryDropAndReload = False, inData=['NULL','EVNT'], @@ -218,35 +217,33 @@ def addConfigurableSimSubstep(executorSet, confName, extraSkeleton, confSubStep, def addStandardHITSMergeSubstep(executorSet): - executorSet.add(athenaExecutor(name = 'HITSMerge', substep="hitsmerge", skeletonFile = None, + executorSet.add(athenaExecutor(name = 'HITSMerge', substep="hitsmerge", skeletonCA = 'SimuJobTransforms.HITSMerge_Skeleton', tryDropAndReload = False, inputDataTypeCountCheck = ['HITS'])) def addDigitizationSubstep(executorSet, in_reco_chain=False): - executorSet.add(athenaExecutor(name = 'HITtoRDO', skeletonFile = None, - skeletonCA='SimuJobTransforms.HITtoRDO_Skeleton', - substep = 'h2r', tryDropAndReload = False, - inData = ['HITS'], outData = ['RDO','RDO_FILT'], - onlyMPWithRunargs = [ - 'inputLowPtMinbiasHitsFile', - 'inputHighPtMinbiasHitsFile', - 'inputCavernHitsFile', - 'inputBeamHaloHitsFile', - 'inputBeamGasHitsFile'] - if in_reco_chain else None)) + executorSet.add(athenaExecutor(name = 'HITtoRDO', + skeletonCA='SimuJobTransforms.HITtoRDO_Skeleton', + substep = 'h2r', tryDropAndReload = False, + inData = ['HITS'], outData = ['RDO','RDO_FILT'], + onlyMPWithRunargs = [ + 'inputLowPtMinbiasHitsFile', + 'inputHighPtMinbiasHitsFile', + 'inputCavernHitsFile', + 'inputBeamHaloHitsFile', + 'inputBeamGasHitsFile' + ] if in_reco_chain else None)) def addSimValidationSubstep(executorSet): executorSet.add(athenaExecutor(name = 'SimValidation', - skeletonFile = None, skeletonCA='SimuJobTransforms.HITtoHIST_SIM_Skeleton', inData = ['HITS'], outData = ['HIST_SIM'],)) def addDigiValidationSubstep(executorSet): executorSet.add(athenaExecutor(name = 'DigiValidation', - skeletonFile = None, skeletonCA='SimuJobTransforms.RDOtoHIST_DIGI_Skeleton', inData = ['RDO'], outData = ['HIST_DIGI'],)) diff --git a/Simulation/SimuJobTransforms/scripts/FilterHit_tf.py b/Simulation/SimuJobTransforms/scripts/FilterHit_tf.py index d80c602113948c1407ea9e4aa28cd996c58c84e1..d70606555a73486099be02fa778213ff81ca79af 100755 --- a/Simulation/SimuJobTransforms/scripts/FilterHit_tf.py +++ b/Simulation/SimuJobTransforms/scripts/FilterHit_tf.py @@ -1,17 +1,14 @@ #! /usr/bin/env python -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration """ Run Geant4 simulation on generated events and produce a HITS file. """ -import os.path import sys import time -import logging - # Setup core logging here from PyJobTransforms.trfLogger import msg msg.info('logging set in %s' % sys.argv[0]) @@ -20,7 +17,6 @@ from PyJobTransforms.transform import transform from PyJobTransforms.trfExe import athenaExecutor from PyJobTransforms.trfArgs import addAthenaArguments, addDetectorArguments from PyJobTransforms.trfDecorators import stdTrfExceptionHandler, sigUsrStackTrace -from SimuJobTransforms.simTrfArgs import addForwardDetTrfArgs, addCosmicsTrfArgs, addCommonSimTrfArgs import PyJobTransforms.trfArgClasses as trfArgClasses @@ -45,8 +41,9 @@ def main(): sys.exit(trf.exitCode) def getTransform(): - trf = transform(executor = athenaExecutor(name = 'FilterHitTf', substep="filthits", skeletonFile = 'SimuJobTransforms/skeleton.FilterHit.py', skeletonCA = 'SimuJobTransforms.FilterHit_Skeleton', - tryDropAndReload = False)) + trf = transform(executor = athenaExecutor(name='FilterHitTf', substep='filthits', + skeletonCA='SimuJobTransforms.FilterHit_Skeleton', + tryDropAndReload=False)) addAthenaArguments(trf.parser) addDetectorArguments(trf.parser) addMyArgs(trf.parser) diff --git a/Simulation/SimuJobTransforms/scripts/RDOMerge_tf.py b/Simulation/SimuJobTransforms/scripts/RDOMerge_tf.py index 295e7a9109dd8a685c7e260e359527b9610f426c..3e6be51ad4b930e55f9ad16a8109e2369b2197e0 100755 --- a/Simulation/SimuJobTransforms/scripts/RDOMerge_tf.py +++ b/Simulation/SimuJobTransforms/scripts/RDOMerge_tf.py @@ -1,6 +1,6 @@ #! /usr/bin/env python -# Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration import sys import time @@ -35,7 +35,7 @@ def main(): def getTransform(): executorSet = set() - executorSet.add(athenaExecutor(name = 'RDOMerge', skeletonFile = None, + executorSet.add(athenaExecutor(name = 'RDOMerge', skeletonCA = 'SimuJobTransforms.RDOMerge_Skeleton', inData = ['RDO'], outData = ['RDO_MRG'])) diff --git a/Simulation/SimuJobTransforms/scripts/TestBeam_tf.py b/Simulation/SimuJobTransforms/scripts/TestBeam_tf.py index 13cf49f02afb742bc104d8a79c0f2adc96efaa0a..75d7df907630a63d23e88986db8c6c5744a90646 100755 --- a/Simulation/SimuJobTransforms/scripts/TestBeam_tf.py +++ b/Simulation/SimuJobTransforms/scripts/TestBeam_tf.py @@ -1,17 +1,14 @@ #! /usr/bin/env python -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration """ Run Geant4 simulation on generated events and produce a HITS file. """ -import os.path import sys import time -import logging - # Setup core logging here from PyJobTransforms.trfLogger import msg msg.info('logging set in %s' % sys.argv[0]) @@ -22,9 +19,6 @@ from PyJobTransforms.trfArgs import addAthenaArguments, addDetectorArguments from PyJobTransforms.trfDecorators import stdTrfExceptionHandler, sigUsrStackTrace from SimuJobTransforms.simTrfArgs import addSimIOTrfArgs,addCommonSimTrfArgs, addCommonSimDigTrfArgs, addTestBeamArgs - -import PyJobTransforms.trfArgClasses as trfArgClasses - # Prodsys hack... ListOfDefaultPositionalKeys=['--AMIConfig', '--AMITag', '--DBRelease', '--DataRunNumber', '--Eta', '--Theta', '--Z', '--asetup', '--athena', '--athenaopts', '--beamType', '--checkEventCount', '--command', '--conditionsTag', '--enableLooperKiller', '--env', '--eventAcceptanceEfficiency', '--execOnly', '--firstEvent', '--geometryVersion', '--ignoreErrors', '--ignoreFiles', '--ignorePatterns', '--imf', '--inputEvgenFile', '--jobNumber', '--maxEvents', '--outputHITSFile', '--physicsList', '--postExec', '--postInclude', '--preExec', '--preInclude', '--randomSeed', '--reportName', '--reportType', '--runNumber', '--showGraph', '--showPath', '--showSteps', '--skipEvents', '--skipFileValidation', '--skipInputFileValidation', '--skipOutputFileValidation', '--tcmalloc', '--testBeamConfig', '--useISF'] @@ -46,7 +40,7 @@ def main(): sys.exit(trf.exitCode) def getTransform(): - trf = transform(executor = athenaExecutor(name = 'TestBeamTf', skeletonFile = 'SimuJobTransforms/skeleton.TestBeam.py', skeletonCA = 'SimuJobTransforms.TestBeam_Skeleton', + trf = transform(executor = athenaExecutor(name = 'TestBeamTf', skeletonCA = 'SimuJobTransforms.TestBeam_Skeleton', substep = 'TBsim', tryDropAndReload = False, perfMonFile = 'ntuple.pmon.gz', inData=['NULL','Evgen'], outData=['HITS','NULL'] )) #may have to add evgen to outData if cosmics/cavern background jobs don't work. addAthenaArguments(trf.parser) addDetectorArguments(trf.parser) diff --git a/Tools/FullChainTransforms/scripts/FastChain_tf.py b/Tools/FullChainTransforms/scripts/FastChain_tf.py index 348b36f05d00bb6f49fa2aef6b6d1feeda745823..623210edef49b5db6b7e0208d082f19ddb9395de 100755 --- a/Tools/FullChainTransforms/scripts/FastChain_tf.py +++ b/Tools/FullChainTransforms/scripts/FastChain_tf.py @@ -1,6 +1,6 @@ #! /usr/bin/env python -# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration # FastChain_tf.py # One step transform to run SIM+DIGI as one job, then reco @@ -20,7 +20,6 @@ from PyJobTransforms.trfArgs import addAthenaArguments, addDetectorArguments, ad from PyJobTransforms.trfDecorators import stdTrfExceptionHandler, sigUsrStackTrace from RecJobTransforms.recTransformUtils import addRecoSubsteps, addAllRecoArgs from SimuJobTransforms.simTrfArgs import addCommonSimTrfArgs, addBasicDigiArgs, addCommonSimDigTrfArgs, addTrackRecordArgs, addSim_tfArgs, addPileUpTrfArgs -from PATJobTransforms.PATTransformUtils import addPhysValidationFiles, addValidationArguments, appendPhysValidationSubstep from PyJobTransforms.trfArgClasses import argFactory, argList, argRDOFile @@ -44,14 +43,14 @@ def getTransform(): addRecoSubsteps(executorSet) # Sim + Digi - factor these out into an importable function in time - executorSet.add(athenaExecutor(name = 'EVNTtoRDO', skeletonFile = None, + executorSet.add(athenaExecutor(name = 'EVNTtoRDO', skeletonCA = 'FullChainTransforms.FastChainSkeleton', substep = 'simdigi', tryDropAndReload = False, perfMonFile = 'ntuple.pmon.gz', inData=['NULL','EVNT', 'RDO_BKG', 'BS_SKIM'], outData=['RDO','NULL'] )) # Sim + Overlay - execute with the argument --steering "doFCwOverlay" - executorSet.add(athenaExecutor(name = 'EVNTtoRDOwOverlay', skeletonFile = None, + executorSet.add(athenaExecutor(name = 'EVNTtoRDOwOverlay', substep = 'simoverlay', tryDropAndReload = False, perfMonFile = 'ntuple.pmon.gz', inData = ['NULL'], outData = ['NULL'])) @@ -82,11 +81,6 @@ def getTransform(): from OverlayConfiguration.OverlayTransformHelpers import addOverlayArguments addOverlayArguments(trf.parser) - # Add PhysVal - addPhysValidationFiles(trf.parser) - addValidationArguments(trf.parser) - appendPhysValidationSubstep(trf) - return trf def addFastChainTrfArgs(parser): diff --git a/Tools/FullChainTransforms/scripts/FullChain_tf.py b/Tools/FullChainTransforms/scripts/FullChain_tf.py index c90303d8b6ffa1ebfbc7cef861d4a2e00ec0d619..224ce170f9ec121b5d8534a53705157b4794ce87 100755 --- a/Tools/FullChainTransforms/scripts/FullChain_tf.py +++ b/Tools/FullChainTransforms/scripts/FullChain_tf.py @@ -21,7 +21,7 @@ from RecJobTransforms.recTransformUtils import addRecoSubsteps, addAllRecoArgs from SimuJobTransforms.simTrfArgs import addCosmicsTrfArgs, addForwardDetTrfArgs, addCommonSimTrfArgs, addBasicDigiArgs, addPileUpTrfArgs, addCommonSimDigTrfArgs, addTrackRecordArgs, addSim_tfArgs from SimuJobTransforms.SimTransformUtils import addDigitizationSubstep -ListOfDefaultPositionalKeys=['--AFPOn', '--ALFAOn', '--AMIConfig', '--AMITag', '--AddCaloDigi', '--CosmicFilterVolume', '--CosmicFilterVolume2', '--CosmicPtSlice', '--DBRelease', '--DataRunNumber', '--FwdRegionOn', '--LucidOn', '--ZDCOn', '--asetup', '--athena', '--athenaopts', '--autoConfiguration', '--beamType', '--bunchSpacing', '--checkEventCount', '--command', '--conditionsTag', '--digiRndmSvc', '--digiSeedOffset1', '--digiSeedOffset2', '--doAllNoise', '--enableLooperKiller', '--env', '--eventAcceptanceEfficiency', '--execOnly', '--firstEvent', '--geometryVersion', '--ignoreErrors', '--ignoreFiles', '--ignorePatterns', '--imf', '--inputAODFile', '--inputBSFile', '--inputBeamGasHitsFile', '--inputBeamHaloHitsFile', '--inputCavernHitsFile', '--inputESDFile', '--inputEVNTFile', '--inputEVNT_TRFile', '--inputHITSFile', '--inputHighPtMinbiasHitsFile', '--inputLowPtMinbiasHitsFile', '--inputNTUP_COMMONFile', '--inputRDOFile', '--jobNumber', '--maxEvents', '--numberOfBeamGas', '--numberOfBeamHalo', '--numberOfCavernBkg', '--numberOfHighPtMinBias', '--numberOfLowPtMinBias', '--orphanKiller', '--outputAODFile', '--outputAOD_SKIMFile', '--outputD2AODM_WMUNUFile', '--outputD2AODM_ZEEFile', '--outputD2AODM_ZMUMUFile', '--outputD2AOD_DIONIAFile', '--outputD2AOD_DIPHOFile', '--outputD2AOD_H4LFile', '--outputD2AOD_WENUFile', '--outputD2AOD_ZEEFile', '--outputD2ESDM_TRKJETFile', '--outputD2ESD_DIPHOFile', '--outputD2ESD_JPSIUPSMMFile', '--outputD2ESD_WENUFile', '--outputD2ESD_WMUNUFile', '--outputD2ESD_ZMMFile', '--outputDAODFile', '--outputDAODM_HIGHMJJFile', '--outputDAODM_HSG1File', '--outputDAODM_SGLEMFile', '--outputDAODM_SGLMUFile', '--outputDAODM_SGLPHFile', '--outputDAODM_SGLTAUFile', '--outputDAOD_2EMFile', '--outputDAOD_2L2QHSG2File', '--outputDAOD_2LHSG2File', '--outputDAOD_2MUFile', '--outputDAOD_2PHFile', '--outputDAOD_4LHSG2File', '--outputDAOD_EGLOOSEFile', '--outputDAOD_ELLOOSE18File', '--outputDAOD_ELLOOSEFile', '--outputDAOD_EMJETFile', '--outputDAOD_EMMETFile', '--outputDAOD_EMMUFile', '--outputDAOD_EMTAUFile', '--outputDAOD_H4LBREMRECFile', '--outputDAOD_HIGHMDIJETFile', '--outputDAOD_HSG2File', '--outputDAOD_JETMETFile', '--outputDAOD_JPSIMUMUFile', '--outputDAOD_MUFile', '--outputDAOD_MUJETFile', '--outputDAOD_MUMETFile', '--outputDAOD_MUTAUFile', '--outputDAOD_ONIAMUMUFile', '--outputDAOD_PHLOOSEFile', '--outputDAOD_RNDMFile', '--outputDAOD_SKIMELFile', '--outputDAOD_SUSYEGAMMAFile', '--outputDAOD_SUSYJETSFile', '--outputDAOD_SUSYMUONSFile', '--outputDAOD_TAUJETFile', '--outputDAOD_TESTFile', '--outputDAOD_UPSIMUMUFile', '--outputDAOD_ZEEGAMMAFile', '--outputDAOD_ZMUMUGAMMAFile', '--outputDESDM_EOVERPFile', '--outputDESDM_ALLCELLSFile', '--outputDESDM_BEAMSPOTFile', '--outputDESDM_EGAMMAFile', '--outputDESDM_METFile', '--outputDESDM_MUONFile', '--outputDESDM_RPVLLCCFile', '--outputDESDM_RPVLLFile', '--outputDESDM_TRACKFile', '--outputDESD_CALJETFile', '--outputDESD_CALOCOMMFile', '--outputDESD_COLLCANDFile', '--outputDESD_CTLFWJETFile', '--outputDESD_EGTAUCOMMFile', '--outputDESD_EMCLUSCOMMFile', '--outputDESD_FWJETFile', '--outputDESD_HIRAREFile', '--outputDESD_IDCOMMFile', '--outputDESD_IDPROJCOMMFile', '--outputDESD_MBIASFile', '--outputDESD_MUONCOMMFile', '--outputDESD_ONIAMUMUHIFile', '--outputDESD_PHOJETFile', '--outputDESD_PIXELCOMMFile', '--outputDESD_PRESCALEDFile', '--outputDESD_RANDOMCOMMFile', '--outputDESD_RPCCOMMFile', '--outputDESD_SCTCOMMFile', '--outputDESD_SGLELFile', '--outputDESD_SGLMUFile', '--outputDESD_SKIMELFile', '--outputDESD_TGCCOMMFile', '--outputDESD_TILECOMMFile', '--outputDNTUPFile', '--outputDRAW_IDPROJCOMMFile', '--outputDRAW_WENUFile', '--outputDRAW_WMUNUFile', '--outputDRAW_ZEEFile', '--outputDRAW_ZMUMUFile', '--outputESDFile', '--outputEVNT_TRFile', '--outputHISTFile', '--outputHIST_AODFile', '--outputHITSFile', '--outputNTUP_2L2QHSG2File', '--outputNTUP_2LHSG2File', '--outputNTUP_4LHSG2File', '--outputNTUP_BKGDFile', '--outputNTUP_BTAGD3PDFile', '--outputNTUP_BTAGEFFFile', '--outputNTUP_BTAGFULLFile', '--outputNTUP_BTAGGHOSTFile', '--outputNTUP_BTAGSLIMFile', '--outputNTUP_CLUSTERCORRECTIONFile', '--outputNTUP_COMMONFile', '--outputNTUP_EGAMMAFile', '--outputNTUP_ENHBIASFile', '--outputNTUP_FASTMONFile', '--outputNTUP_HECNOISEFile', '--outputNTUP_HIFile', '--outputNTUP_HIGHMULTFile', '--outputNTUP_HSG2File', '--outputNTUP_HSG5GAMHFile', '--outputNTUP_HSG5GAMZFile', '--outputNTUP_HSG5WHFile', '--outputNTUP_HSG5WHQFile', '--outputNTUP_HSG5WHUFile', '--outputNTUP_HSG5ZBBFile', '--outputNTUP_HSG5ZHLLFile', '--outputNTUP_HSG5ZHLLUFile', '--outputNTUP_HSG5ZHMETFile', '--outputNTUP_HSG5ZHMETUFile', '--outputNTUP_IDVTXFile', '--outputNTUP_IDVTXLUMIFile', '--outputNTUP_JETMETEMCLFile', '--outputNTUP_JETMETFULLFile', '--outputNTUP_JETMETFile', '--outputNTUP_JETMETWZFile', '--outputNTUP_L1CALOFile', '--outputNTUP_L1CALOPROBFile', '--outputNTUP_L1TGCFile', '--outputNTUP_LARNOISEFile', '--outputNTUP_MCPFile', '--outputNTUP_MINBIASFile', '--outputNTUP_MUFASTFile', '--outputNTUP_MUONCALIBFile', '--outputNTUP_MUONFile', '--outputNTUP_PHOTONFile', '--outputNTUP_PHYSICSFile', '--outputNTUP_PROMPTPHOTFile', '--outputNTUP_SCTFile', '--outputNTUP_SMBKGEFile', '--outputNTUP_SMBKGMUFile', '--outputNTUP_SMDILEPFile', '--outputNTUP_SMDYEEFile', '--outputNTUP_SMDYMUMUFile', '--outputNTUP_SMLIGHTFile', '--outputNTUP_SMQCDFile', '--outputNTUP_SMTRILEPFile', '--outputNTUP_SMWENUFile', '--outputNTUP_SMWENUJJFile', '--outputNTUP_SMWMUNUFile', '--outputNTUP_SMWMUNUJJFile', '--outputNTUP_SMWZFile', '--outputNTUP_SMWZSOFTFile', '--outputNTUP_SMZEEFile', '--outputNTUP_SMZMUMUFile', '--outputNTUP_SUSY01LEPFile', '--outputNTUP_SUSY23LEPFile', '--outputNTUP_SUSY34LEPFile', '--outputNTUP_SUSYBOOSTFile', '--outputNTUP_SUSYFile', '--outputNTUP_SUSYLEPTAUFile', '--outputNTUP_SUSYLLPFile', '--outputNTUP_SUSYRAZORFile', '--outputNTUP_SUSYSKIMFile', '--outputNTUP_SUSYTAGFile', '--outputNTUP_SUSYTRUTHFile', '--outputNTUP_TAUFULLFile', '--outputNTUP_TAUFile', '--outputNTUP_TAUMEDIUMFile', '--outputNTUP_TAUSMALLFile', '--outputNTUP_TOPBOOSTFile', '--outputNTUP_TOPEJETFile', '--outputNTUP_TOPELFile', '--outputNTUP_TOPFile', '--outputNTUP_TOPJETFile', '--outputNTUP_TOPMUFile', '--outputNTUP_TPHSG2File', '--outputNTUP_TRIGBJETFile', '--outputNTUP_TRIGFile', '--outputNTUP_TRIGMUFile', '--outputNTUP_TRKVALIDFile', '--outputNTUP_TRTFile', '--outputNTUP_TRUTHFile', '--outputNTUP_WPRIMEENFile', '--outputNTUP_WPRIMEMNFile', '--outputNTUP_WZFile', '--outputNTUP_ZPRIMEEEFile', '--outputNTUP_ZPRIMEMMFile', '--outputRDOFile', '--outputTAGFile', '--physicsList', '--pileupFinalBunch', '--pileupInitialBunch', '--postExec', '--postInclude', '--preExec', '--preInclude', '--randomSeed', '--reductionConf', '--reportName', '--reportType', '--runNumber', '--samplingFractionDbTag', '--showGraph', '--showPath', '--showSteps', '--simulator', '--skipEvents', '--skipFileValidation', '--skipInputFileValidation', '--skipOutputFileValidation', '--tcmalloc', '--testPileUpConfig', '--tmpRDO', '--trigFilterList', '--triggerConfig', '--useISF'] +ListOfDefaultPositionalKeys=['--AFPOn', '--ALFAOn', '--AMIConfig', '--AMITag', '--AddCaloDigi', '--CosmicFilterVolume', '--CosmicFilterVolume2', '--CosmicPtSlice', '--DBRelease', '--DataRunNumber', '--FwdRegionOn', '--LucidOn', '--ZDCOn', '--asetup', '--athena', '--athenaopts', '--autoConfiguration', '--beamType', '--bunchSpacing', '--checkEventCount', '--command', '--conditionsTag', '--digiRndmSvc', '--digiSeedOffset1', '--digiSeedOffset2', '--doAllNoise', '--enableLooperKiller', '--env', '--eventAcceptanceEfficiency', '--execOnly', '--firstEvent', '--geometryVersion', '--ignoreErrors', '--ignoreFiles', '--ignorePatterns', '--imf', '--inputAODFile', '--inputBSFile', '--inputBeamGasHitsFile', '--inputBeamHaloHitsFile', '--inputCavernHitsFile', '--inputESDFile', '--inputEVNTFile', '--inputEVNT_TRFile', '--inputHITSFile', '--inputHighPtMinbiasHitsFile', '--inputLowPtMinbiasHitsFile', '--inputNTUP_COMMONFile', '--inputRDOFile', '--jobNumber', '--maxEvents', '--numberOfBeamGas', '--numberOfBeamHalo', '--numberOfCavernBkg', '--numberOfHighPtMinBias', '--numberOfLowPtMinBias', '--orphanKiller', '--outputAODFile', '--outputAOD_SKIMFile', '--outputD2AODM_WMUNUFile', '--outputD2AODM_ZEEFile', '--outputD2AODM_ZMUMUFile', '--outputD2AOD_DIONIAFile', '--outputD2AOD_DIPHOFile', '--outputD2AOD_H4LFile', '--outputD2AOD_WENUFile', '--outputD2AOD_ZEEFile', '--outputD2ESDM_TRKJETFile', '--outputD2ESD_DIPHOFile', '--outputD2ESD_JPSIUPSMMFile', '--outputD2ESD_WENUFile', '--outputD2ESD_WMUNUFile', '--outputD2ESD_ZMMFile', '--outputDAODFile', '--outputDAODM_HIGHMJJFile', '--outputDAODM_HSG1File', '--outputDAODM_SGLEMFile', '--outputDAODM_SGLMUFile', '--outputDAODM_SGLPHFile', '--outputDAODM_SGLTAUFile', '--outputDAOD_2EMFile', '--outputDAOD_2L2QHSG2File', '--outputDAOD_2LHSG2File', '--outputDAOD_2MUFile', '--outputDAOD_2PHFile', '--outputDAOD_4LHSG2File', '--outputDAOD_EGLOOSEFile', '--outputDAOD_ELLOOSE18File', '--outputDAOD_ELLOOSEFile', '--outputDAOD_EMJETFile', '--outputDAOD_EMMETFile', '--outputDAOD_EMMUFile', '--outputDAOD_EMTAUFile', '--outputDAOD_H4LBREMRECFile', '--outputDAOD_HIGHMDIJETFile', '--outputDAOD_HSG2File', '--outputDAOD_JETMETFile', '--outputDAOD_JPSIMUMUFile', '--outputDAOD_MUFile', '--outputDAOD_MUJETFile', '--outputDAOD_MUMETFile', '--outputDAOD_MUTAUFile', '--outputDAOD_ONIAMUMUFile', '--outputDAOD_PHLOOSEFile', '--outputDAOD_RNDMFile', '--outputDAOD_SKIMELFile', '--outputDAOD_SUSYEGAMMAFile', '--outputDAOD_SUSYJETSFile', '--outputDAOD_SUSYMUONSFile', '--outputDAOD_TAUJETFile', '--outputDAOD_TESTFile', '--outputDAOD_UPSIMUMUFile', '--outputDAOD_ZEEGAMMAFile', '--outputDAOD_ZMUMUGAMMAFile', '--outputDESDM_EOVERPFile', '--outputDESDM_ALLCELLSFile', '--outputDESDM_BEAMSPOTFile', '--outputDESDM_EGAMMAFile', '--outputDESDM_METFile', '--outputDESDM_MUONFile', '--outputDESDM_RPVLLCCFile', '--outputDESDM_RPVLLFile', '--outputDESDM_TRACKFile', '--outputDESD_CALJETFile', '--outputDESD_CALOCOMMFile', '--outputDESD_COLLCANDFile', '--outputDESD_CTLFWJETFile', '--outputDESD_EGTAUCOMMFile', '--outputDESD_EMCLUSCOMMFile', '--outputDESD_FWJETFile', '--outputDESD_HIRAREFile', '--outputDESD_IDCOMMFile', '--outputDESD_IDPROJCOMMFile', '--outputDESD_MBIASFile', '--outputDESD_MUONCOMMFile', '--outputDESD_ONIAMUMUHIFile', '--outputDESD_PHOJETFile', '--outputDESD_PIXELCOMMFile', '--outputDESD_PRESCALEDFile', '--outputDESD_RANDOMCOMMFile', '--outputDESD_RPCCOMMFile', '--outputDESD_SCTCOMMFile', '--outputDESD_SGLELFile', '--outputDESD_SGLMUFile', '--outputDESD_SKIMELFile', '--outputDESD_TGCCOMMFile', '--outputDESD_TILECOMMFile', '--outputDNTUPFile', '--outputDRAW_IDPROJCOMMFile', '--outputDRAW_WENUFile', '--outputDRAW_WMUNUFile', '--outputDRAW_ZEEFile', '--outputDRAW_ZMUMUFile', '--outputESDFile', '--outputEVNT_TRFile', '--outputHISTFile', '--outputHIST_AODFile', '--outputHITSFile', '--outputNTUP_2L2QHSG2File', '--outputNTUP_2LHSG2File', '--outputNTUP_4LHSG2File', '--outputNTUP_BKGDFile', '--outputNTUP_BTAGD3PDFile', '--outputNTUP_BTAGEFFFile', '--outputNTUP_BTAGFULLFile', '--outputNTUP_BTAGGHOSTFile', '--outputNTUP_BTAGSLIMFile', '--outputNTUP_CLUSTERCORRECTIONFile', '--outputNTUP_COMMONFile', '--outputNTUP_EGAMMAFile', '--outputNTUP_ENHBIASFile', '--outputNTUP_FASTMONFile', '--outputNTUP_HECNOISEFile', '--outputNTUP_HIFile', '--outputNTUP_HIGHMULTFile', '--outputNTUP_HSG2File', '--outputNTUP_HSG5GAMHFile', '--outputNTUP_HSG5GAMZFile', '--outputNTUP_HSG5WHFile', '--outputNTUP_HSG5WHQFile', '--outputNTUP_HSG5WHUFile', '--outputNTUP_HSG5ZBBFile', '--outputNTUP_HSG5ZHLLFile', '--outputNTUP_HSG5ZHLLUFile', '--outputNTUP_HSG5ZHMETFile', '--outputNTUP_HSG5ZHMETUFile', '--outputNTUP_IDVTXFile', '--outputNTUP_IDVTXLUMIFile', '--outputNTUP_JETMETEMCLFile', '--outputNTUP_JETMETFULLFile', '--outputNTUP_JETMETFile', '--outputNTUP_JETMETWZFile', '--outputNTUP_L1CALOFile', '--outputNTUP_L1CALOPROBFile', '--outputNTUP_L1TGCFile', '--outputNTUP_LARNOISEFile', '--outputNTUP_MCPFile', '--outputNTUP_MINBIASFile', '--outputNTUP_MUFASTFile', '--outputNTUP_MUONCALIBFile', '--outputNTUP_MUONFile', '--outputNTUP_PHOTONFile', '--outputNTUP_PHYSICSFile', '--outputNTUP_PROMPTPHOTFile', '--outputNTUP_SCTFile', '--outputNTUP_SMBKGEFile', '--outputNTUP_SMBKGMUFile', '--outputNTUP_SMDILEPFile', '--outputNTUP_SMDYEEFile', '--outputNTUP_SMDYMUMUFile', '--outputNTUP_SMLIGHTFile', '--outputNTUP_SMQCDFile', '--outputNTUP_SMTRILEPFile', '--outputNTUP_SMWENUFile', '--outputNTUP_SMWENUJJFile', '--outputNTUP_SMWMUNUFile', '--outputNTUP_SMWMUNUJJFile', '--outputNTUP_SMWZFile', '--outputNTUP_SMWZSOFTFile', '--outputNTUP_SMZEEFile', '--outputNTUP_SMZMUMUFile', '--outputNTUP_SUSY01LEPFile', '--outputNTUP_SUSY23LEPFile', '--outputNTUP_SUSY34LEPFile', '--outputNTUP_SUSYBOOSTFile', '--outputNTUP_SUSYFile', '--outputNTUP_SUSYLEPTAUFile', '--outputNTUP_SUSYLLPFile', '--outputNTUP_SUSYRAZORFile', '--outputNTUP_SUSYSKIMFile', '--outputNTUP_SUSYTAGFile', '--outputNTUP_SUSYTRUTHFile', '--outputNTUP_TAUFULLFile', '--outputNTUP_TAUFile', '--outputNTUP_TAUMEDIUMFile', '--outputNTUP_TAUSMALLFile', '--outputNTUP_TOPBOOSTFile', '--outputNTUP_TOPEJETFile', '--outputNTUP_TOPELFile', '--outputNTUP_TOPFile', '--outputNTUP_TOPJETFile', '--outputNTUP_TOPMUFile', '--outputNTUP_TPHSG2File', '--outputNTUP_TRIGBJETFile', '--outputNTUP_TRIGFile', '--outputNTUP_TRIGMUFile', '--outputNTUP_TRKVALIDFile', '--outputNTUP_TRTFile', '--outputNTUP_TRUTHFile', '--outputNTUP_WPRIMEENFile', '--outputNTUP_WPRIMEMNFile', '--outputNTUP_WZFile', '--outputNTUP_ZPRIMEEEFile', '--outputNTUP_ZPRIMEMMFile', '--outputRDOFile', '--physicsList', '--pileupFinalBunch', '--pileupInitialBunch', '--postExec', '--postInclude', '--preExec', '--preInclude', '--randomSeed', '--reductionConf', '--reportName', '--reportType', '--runNumber', '--samplingFractionDbTag', '--showGraph', '--showPath', '--showSteps', '--simulator', '--skipEvents', '--skipFileValidation', '--skipInputFileValidation', '--skipOutputFileValidation', '--tcmalloc', '--testPileUpConfig', '--tmpRDO', '--trigFilterList', '--triggerConfig', '--useISF'] @stdTrfExceptionHandler @sigUsrStackTrace diff --git a/Tools/PROCTools/python/UploadAMITag.py b/Tools/PROCTools/python/UploadAMITag.py index 32f1bde28912e2cfc0993f72043fe8ab4a1571ba..df2a4b8feb4b172cda97aa2b68a5126eee17e5d7 100755 --- a/Tools/PROCTools/python/UploadAMITag.py +++ b/Tools/PROCTools/python/UploadAMITag.py @@ -25,7 +25,6 @@ OutputsVsStreams={ # The basics: 'outputESDFile': {'dstype': 'ESD', 'ifMatch': '(?!.*DRAW.*)', 'HumanOutputs': 'always produced.'}, 'outputAODFile': {'dstype': 'AOD', 'ifMatch': cpProjTag+'(?!.(.*DRAW.*|.*ZeroBias.*x[0-9].*))', 'HumanOutputs': 'always produced except for ZeroBias (ZB-1) stream and HI.'}, - 'outputTAGFile': {'dstype': 'TAG', 'ifMatch': HIProjTag+'(?!.(.*DRAW.*|.*ZeroBias.*x[0-9].*))', 'HumanOutputs': 'Produced for HI/HIp and comm when AOD is disabled'}, 'outputHISTFile': {'dstype': 'HIST', 'ifMatch': '(?!.(.*DRAW.*|.*debugrec.*))', 'HumanOutputs': 'always produced except for debug stream'}, # note was disabled for Pb-Pb HardProbes # Ntuples @@ -152,7 +151,6 @@ def GetProcessConfigs(release,patcharea): processConfigs['aodmerge'] = { 'inputs': {'inputAODFile': {}}, 'outputs': {'outputAODFile': {'dstype': 'AOD'}, - 'outputTAGFile': {'dstype': 'TAG'} }, 'phconfig': {'--ignoreerrors': 'ALL', 'autoConfiguration': 'everything', 'preExec': 'rec.doDPD.set_Value_and_Lock(False)'}, 'transformation': 'Merging_trf.py', diff --git a/Tools/PROCTools/python/UploadTfAMITag.py b/Tools/PROCTools/python/UploadTfAMITag.py index f40a4324ca2ccc9bbb7c3289ca1bfd7d08c1f7ec..9dbd097575ccafb2db2ca082bf26077edd68f768 100755 --- a/Tools/PROCTools/python/UploadTfAMITag.py +++ b/Tools/PROCTools/python/UploadTfAMITag.py @@ -43,7 +43,6 @@ OutputsVsStreams = { #'outputESDFile': {'dstype': '!replace RAW ESD', 'ifMatch': '(?!.*DRAW.*)(?!.*physics_Main.*)', 'HumanOutputs': 'always produced, except for DRAW input and physics_Main'}, 'outputESDFile': {'dstype': '!replace RAW ESD', 'ifMatch': '(?!.*DRAW.*)(?!.(.*physics_Main\\..*|.*Background.*|.*L1Topo.*))', 'HumanOutputs': 'always produced, except for DRAW input and physics_Main'}, 'outputAODFile': {'dstype': '!replace RAW AOD', 'ifMatch': cphiProjTag+'(?!.*DRAW_RPVLL.*)(?!.*Background.*)', 'HumanOutputs': 'always produced except for DRAW_RPVLL.'}, - 'outputTAGFile': {'dstype': 'TAG', 'ifMatch': 'data[0-9][0-9]_(cos|1beam|.*eV|comm)(.*express_express\\..*)(?!.(.*DRAW.*))', 'HumanOutputs': 'Produced in express stream'}, 'outputHISTFile': {'dstype': 'HIST', 'ifMatch': '(?!.(.*DRAW.*|.*debugrec.*))', 'HumanOutputs': 'always produced except for DRAW and debugrec'}, # note was disabled for Pb-Pb HardProbes 'outputRDOFile': {'dstype': 'RDO', 'ifMatch': cphiProjTag, 'HumanOutputs': 'always produced.'}, # NTuples @@ -170,16 +169,6 @@ def GetProcessConfigs(release): 'trfsetupcmd': setupScript+' '+rel+' '+specialT0Setup }, 'description': 'Trf for combined DQM histogram merging and DQM webpage creation, to get periodic DQ monitoring updates. '} - # TAG merging (no TAG_COMM anymore) - processConfigs['tagmerge'] = { - 'inputs': {'inputTAGFile': {}}, - 'outputs': {'outputTAG_MRGFile': {'dstype': 'TAG' }}, - 'phconfig': {}, - 'transformation': 'TAGMerge_tf.py', - 'tasktransinfo': {'trfpath': 'TAGMerge_tf.py', - 'trfsetupcmd': setupScript+' '+rel+' '+specialT0Setup }, - 'description': 'Trf for TAG merging, runs CollAppend from release area. ' } - # NTUP merging processConfigs['ntupmerge'] = { 'inputs': {'inputNTUP_MUONCALIBFile': {}}, @@ -195,7 +184,6 @@ def GetProcessConfigs(release): processConfigs['aodmerge'] = { 'inputs': {'inputAODFile': {}}, 'outputs': {'outputAOD_MRGFile': {'dstype': 'AOD'} - #'outputTAGFile': {'dstype': 'TAG', 'ifMatch': '(?!.*calibration.*)'} }, 'phconfig': {'autoConfiguration': 'everything'}, 'transformation': 'AODMerge_tf.py', @@ -323,11 +311,11 @@ if __name__ == '__main__': process=None if inPickleFile.endswith('.pickle'): process='reco' - elif (inPickleFile in ['histmerge', 'tagmerge', 'ntupmerge', 'aodmerge', 'daodmerge', 'dpdmerge', 'fastmon']): + elif (inPickleFile in ['histmerge', 'ntupmerge', 'aodmerge', 'daodmerge', 'dpdmerge', 'fastmon']): process = inPickleFile else: s = "Don't know how to interpret argument: '%s'.\n"%inPickleFile - s += "Possible arguments are: histmerge, tagmerge, ntupmerge, aodmerge, daodmerge, dpdmerge\n" + s += "Possible arguments are: histmerge, ntupmerge, aodmerge, daodmerge, dpdmerge\n" s += "...or for reconstruction tags: a pickeled dic named *.pickle\n" raise RuntimeError(s) diff --git a/Tools/PyJobTransforms/python/HelloWorldSkeleton.py b/Tools/PyJobTransforms/python/HelloWorldSkeleton.py index 9c92f41cbe49b7c33cc49ea4397dfb81ba25af3a..1b71f37919eb2f8b971b5ac3f2f4ba22f9248bd8 100644 --- a/Tools/PyJobTransforms/python/HelloWorldSkeleton.py +++ b/Tools/PyJobTransforms/python/HelloWorldSkeleton.py @@ -31,6 +31,10 @@ def fromRunArgs(runArgs): # To respect --athenaopts flags.fillFromArgs() + # Run 10 events by default + if flags.Exec.MaxEvents == -1: + flags.Exec.MaxEvents = 10 + flags.lock() cfg=MainServicesCfg(flags) diff --git a/Tools/PyJobTransforms/python/trfArgClasses.py b/Tools/PyJobTransforms/python/trfArgClasses.py index 5d74e022307f9647f30f72bf9fc1d87006b21b8c..d694ab19fc249f224198c9aa91163068c9af2dab 100644 --- a/Tools/PyJobTransforms/python/trfArgClasses.py +++ b/Tools/PyJobTransforms/python/trfArgClasses.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration ## @package PyJobTransforms.trfArgClasses # @brief Transform argument class definitions @@ -1474,7 +1474,6 @@ class argPOOLFile(argAthenaFile): 'POOL_MRG_OUTPUT' : argPOOLFile(output, type=self.type, io='output')} myMergeConf = executorConfig(myargdict, myDataDictionary) myMerger = athenaExecutor(name='POOLMergeAthenaMP{0}{1}'.format(self._subtype, counter), conf=myMergeConf, - skeletonFile = 'RecJobTransforms/skeleton.MergePool_tf.py', skeletonCA = 'RecJobTransforms.MergePool_Skeleton', inData=set(['POOL_MRG_INPUT']), outData=set(['POOL_MRG_OUTPUT']), disableMT=True, disableMP=True) @@ -1512,7 +1511,7 @@ class argHITSFile(argPOOLFile): myDataDictionary = {'HITS' : argHITSFile(inputs, type=self.type, io='input'), 'HITS_MRG' : argHITSFile(output, type=self.type, io='output')} myMergeConf = executorConfig(myargdict, myDataDictionary) - myMerger = athenaExecutor(name = mySubstepName, skeletonFile = 'SimuJobTransforms/skeleton.HITSMerge.py', + myMerger = athenaExecutor(name = mySubstepName, skeletonCA = 'SimuJobTransforms.HITSMerge_Skeleton', conf=myMergeConf, inData=set(['HITS']), outData=set(['HITS_MRG']), @@ -1590,7 +1589,7 @@ class argRDOFile(argPOOLFile): myDataDictionary = {'RDO' : argHITSFile(inputs, type=self.type, io='input'), 'RDO_MRG' : argHITSFile(output, type=self.type, io='output')} myMergeConf = executorConfig(myargdict, myDataDictionary) - myMerger = athenaExecutor(name = 'RDOMergeAthenaMP{0}'.format(counter), skeletonFile = 'SimuJobTransforms/skeleton.RDOMerge.py', + myMerger = athenaExecutor(name = 'RDOMergeAthenaMP{0}'.format(counter), skeletonCA = 'SimuJobTransforms.RDOMerge_Skeleton', conf=myMergeConf, inData=set(['RDO']), outData=set(['RDO_MRG']), @@ -1645,70 +1644,6 @@ class argEVNTFile(argPOOLFile): self._resetMetadata(inputs + [output]) return myMerger -## @brief TAG file class -# @details Has a different validation routine to ESD/AOD POOL files -class argTAGFile(argPOOLFile): - - integrityFunction = "returnIntegrityOfTAGFile" - - ## @brief Simple integrity checked for TAG files - # @details Checks that the event count in the POOLCollectionTree is the same as the AthFile value - def _getIntegrity(self, files): - for fname in files: - eventCount = NTUPEntries(fname, ['POOLCollectionTree']) - if eventCount is None: - msg.error('Got a bad event count for the POOLCollectionTree in {0}: {1}'.format(fname, eventCount)) - self._fileMetadata[fname]['integrity'] = False - return - if eventCount != self.getSingleMetadata(fname, 'nentries'): - msg.error('Event count for {0} from POOLCollectionTree disagrees with AthFile:' - ' {1} != {2}'.format(fname, eventCount, self.getSingleMetadata(fname, 'nentries'))) - self._fileMetadata[fname]['integrity'] = False - return - self._fileMetadata[fname]['integrity'] = True - - ## @brief Method which can be used to merge files of this type - # @param output Target filename for this merge - # @param inputs List of files to merge - # @param argdict argdict of the transform - # @note @c argdict is not normally used as this is a @em vanilla merge - def selfMerge(self, output, inputs, counter=0, argdict={}): - msg.debug('selfMerge attempted for {0} -> {1} with {2}'.format(inputs, output, argdict)) - - # First do a little sanity check - for fname in inputs: - if fname not in self._value: - raise trfExceptions.TransformMergeException(trfExit.nameToCode('TRF_FILEMERGE_PROBLEM'), - "File {0} is not part of this agument: {1}".format(fname, self)) - - from PyJobTransforms.trfExe import tagMergeExecutor, executorConfig - - ## @note Modify argdict - myargdict = self._mergeArgs(argdict) - - # We need a tagMergeExecutor to do the merge - myDataDictionary = {'TAG_MRG_INPUT' : argTAGFile(inputs, type=self.type, io='input'), - 'TAG_MRG_OUTPUT' : argTAGFile(output, type=self.type, io='output')} - myMergeConf = executorConfig(myargdict, myDataDictionary) - myMerger = tagMergeExecutor(name='TAGMergeAthenaMP{0}{1}'.format(self._subtype, counter), exe = 'CollAppend', - conf=myMergeConf, - inData=set(['TAG_MRG_INPUT']), outData=set(['TAG_MRG_OUTPUT']),) - myMerger.doAll(input=set(['TAG_MRG_INPUT']), output=set(['TAG_MRG_OUTPUT'])) - - # OK, if we got to here with no exceptions, we're good shape - # Now update our own list of files to reflect the merge - for fname in inputs: - self._value.remove(fname) - self._value.append(output) - - msg.debug('Post self-merge files are: {0}'.format(self._value)) - self._resetMetadata(inputs + [output]) - return myMerger - - @property - def prodsysDescription(self): - desc=super(argTAGFile, self).prodsysDescription - return desc ## @brief Data quality histogram file class class argHISTFile(argFile): @@ -2365,7 +2300,6 @@ class argSubstepSteering(argSubstep): # "doOverlay" - run event overlay on presampled RDOs instead of standard HITtoRDO digitization # "doFCwOverlay" - run FastChain with MC-overlay (EVNTtoRDOwOverlay) instead of standard PU digitization (EVNTtoRDO) # "afterburn" - run the B decay afterburner for event generation - # "doRAWtoESD" - run legacy split workflow (RAWtoESD + ESDtoAOD) # "doRAWtoALL" - (deprecated) produce all DESDs and AODs directly from bytestream # "doTRIGtoALL" - (deprecated) produce AODs directly from trigger RDOs steeringAlises = { @@ -2376,10 +2310,6 @@ class argSubstepSteering(argSubstep): 'doFCwOverlay': {'EVNTtoRDO': [('in', '-', 'EVNT'), ('out', '-', 'RDO')], 'EVNTtoRDOwOverlay': [('in', '+', ('EVNT', 'RDO_BKG')), ('out', '+', 'RDO'), ('out', '+', 'RDO_SGNL')]}, 'afterburn': {'generate': [('out', '-', 'EVNT')]}, - 'doRAWtoESD': {'RAWtoALL': [('in', '-', 'BS'), ('in', '-', 'RDO'), - ('out', '-', 'ESD'), ('out', '-', 'AOD')], - 'RAWtoESD': [('in', '+', 'BS'), ('in', '+', 'RDO'), - ('out', '+', ('ESD', 'HIST_ESD_INT')),],}, 'doRAWtoALL': {}, 'doTRIGtoALL': {} } diff --git a/Tools/PyJobTransforms/python/trfArgs.py b/Tools/PyJobTransforms/python/trfArgs.py index df385a79e013ecad18a2ae0ab5c6fe8125310c65..3bbf7c90c38aba8addf5dbf8967319b1180506ac 100644 --- a/Tools/PyJobTransforms/python/trfArgs.py +++ b/Tools/PyJobTransforms/python/trfArgs.py @@ -391,13 +391,13 @@ class dpdType(object): # if your data is made in a non-standard step if substeps == []: if 'RAW' in name: - self._substeps = ['RAWtoESD'] + self._substeps = ['RAWtoALL'] elif 'ESD' in name: - self._substeps = ['RAWtoESD'] + self._substeps = ['RAWtoALL'] elif 'AOD' in name: - self._substeps = ['ESDtoAOD'] + self._substeps = ['RAWtoALL'] elif 'NTUP' in name: - self._substeps = ['ESDtoDPD', 'AODtoDPD'] + self._substeps = ['RAWtoALL', 'AODtoDPD'] else: self._substeps = substeps @@ -568,7 +568,7 @@ def addTriggerArguments(parser, addTrigFilter=True): if addTrigFilter: parser.add_argument('--trigFilterList', type=argFactory(trfArgClasses.argList), nargs="+", - help='Trigger filter list (multiple values can be given separately or split on commas; only understood in RAWtoALL/RAWtoESD)', + help='Trigger filter list (multiple values can be given separately or split on commas; only understood in RAWtoALL)', group='Trigger') ## Tea for two and two for tea... these arguments are used for testing diff --git a/Tools/PyJobTransforms/python/trfExe.py b/Tools/PyJobTransforms/python/trfExe.py index af8b31f4dd2c5ab6184f38c018d785724fa96b6a..2d5e8a423464ca770d9f36d6a8bea819908fb4a1 100755 --- a/Tools/PyJobTransforms/python/trfExe.py +++ b/Tools/PyJobTransforms/python/trfExe.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration ## @package PyJobTransforms.trfExe # @@ -877,7 +877,7 @@ class athenaExecutor(scriptExecutor): # uses repr(), so the RHS is the same as the python object in the transform; @c runtimeRunargs uses str() so # that a string can be interpreted at runtime; @c literalRunargs allows the direct insertion of arbitary python # snippets into the runArgs file. - def __init__(self, name = 'athena', trf = None, conf = None, skeletonFile = 'PyJobTransforms/skeleton.dummy.py', skeletonCA=None, + def __init__(self, name = 'athena', trf = None, conf = None, skeletonFile=None, skeletonCA=None, inData = set(), outData = set(), inputDataTypeCountCheck = None, exe = 'athena.py', exeArgs = ['athenaopts'], substep = None, inputEventTest = True, perfMonFile = None, tryDropAndReload = True, extraRunargs = {}, runtimeRunargs = {}, literalRunargs = [], dataArgs = [], checkEventCount = False, errorMaskFiles = None, @@ -1846,7 +1846,7 @@ class hybridPOOLMergeExecutor(athenaExecutor): # @param inputEventTest Boolean switching the skipEvents < inputEvents test # @param perfMonFile Name of perfmon file for this substep (used to retrieve vmem/rss information) # @param tryDropAndReload Boolean switch for the attempt to add '--drop-and-reload' to athena args - def __init__(self, name = 'hybridPOOLMerge', trf = None, conf = None, skeletonFile = 'RecJobTransforms/skeleton.MergePool_tf.py', skeletonCA=None, + def __init__(self, name = 'hybridPOOLMerge', trf = None, conf = None, skeletonFile=None, skeletonCA='RecJobTransforms.MergePool_Skeleton', inData = set(), outData = set(), exe = 'athena.py', exeArgs = ['athenaopts'], substep = None, inputEventTest = True, perfMonFile = None, tryDropAndReload = True, extraRunargs = {}, manualDataDictionary = None, memMonitor = True): @@ -2124,50 +2124,6 @@ class bsMergeExecutor(scriptExecutor): super(bsMergeExecutor, self).postExecute() -class tagMergeExecutor(scriptExecutor): - - def preExecute(self, input = set(), output = set()): - self.setPreExeStart() - # Just need to write the customised CollAppend command line - self._cmd = [self._exe, '-src'] - for dataType in input: - for fname in self.conf.dataDictionary[dataType].value: - self._cmd.extend(['PFN:{0}'.format(fname), 'RootCollection']) - self._cmd.extend(['-dst', 'PFN:{0}'.format(self.conf.dataDictionary[list(output)[0]].value[0]), 'RootCollection', '-nevtcached', '5000']) - - # In AthenaMP jobs the output file can be created empty, which CollAppend does not like - # so remove it - if os.access(self.conf.dataDictionary[list(output)[0]].value[0], os.F_OK): - os.unlink(self.conf.dataDictionary[list(output)[0]].value[0]) - - super(tagMergeExecutor, self).preExecute(input=input, output=output) - - - def validate(self): - self.setValStart() - super(tagMergeExecutor, self).validate() - - # Now scan the logfile... - try: - msg.debug('Scanning TAG merging logfile {0}'.format(self._logFileName)) - with open(self._logFileName) as logfile: - for line in logfile: - # Errors are signaled by 'error' (case independent) and NOT ('does not exist' or 'hlterror') - # Logic copied from Tier 0 TAGMerge_trf.py - if 'error' in line.lower(): - if 'does not exist' in line: - continue - if 'hlterror' in line: - continue - raise trfExceptions.TransformValidationException(trfExit.nameToCode('TRF_EXEC_LOGERROR'), - 'Found this error message in the logfile {0}: {1}'.format(self._logFileName, line)) - except (OSError, IOError) as e: - raise trfExceptions.TransformValidationException(trfExit.nameToCode('TRF_EXEC_LOGERROR'), - 'Exception raised while attempting to scan logfile {0}: {1}'.format(self._logFileName, e)) - self._valStop = os.times() - msg.debug('valStop time is {0}'.format(self._valStop)) - - ## @brief Archive transform class archiveExecutor(scriptExecutor): diff --git a/Tools/PyJobTransforms/python/trfFileValidationFunctions.py b/Tools/PyJobTransforms/python/trfFileValidationFunctions.py index ef33bdce37557b67a23461c07ac3439f6ba16fb8..a06fbcbb03544cb92906a382889e69a1731cc09b 100644 --- a/Tools/PyJobTransforms/python/trfFileValidationFunctions.py +++ b/Tools/PyJobTransforms/python/trfFileValidationFunctions.py @@ -1,5 +1,5 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration ## @package PyJobTransforms.trfFileValidationFunctions # @brief Transform file validation functions @@ -45,17 +45,6 @@ def returnIntegrityOfBSFile(fname): else: return (False, "integrity of {fileName} bad: return code: {integrityStatus}".format(fileName = str(fname), integrityStatus = rc)) -### @brief Integrity function for file class argTAGFile -def returnIntegrityOfTAGFile(fname): - from PyJobTransforms.trfFileUtils import AthenaLiteFileInfo - dictionaryOfAthenaFileInfo = AthenaLiteFileInfo(fname, "TAG", retrieveKeys = ['nentries',]) - msg.debug("dictionary of Athena file information: {a}".format(a = dictionaryOfAthenaFileInfo)) - eventCount = dictionaryOfAthenaFileInfo[fname]['nentries'] - if eventCount is None: - return (False, "integrity of {fileName} bad: got a bad event count in {fileName}: {eventCount}".format(fileName = str(fname), eventCount = eventCount)) - else: - return (True, "integrity of {fileName} good".format(fileName = str(fname))) - ## @brief Integrity function for file class argHISTFile def returnIntegrityOfHISTFile(fname): rc = 0 # (default behaviour) diff --git a/Tools/PyJobTransforms/scripts/Athena_tf.py b/Tools/PyJobTransforms/scripts/Athena_tf.py index d0644198467462e0edcb72a8671e6584a228072f..c01f0070bc5cf2bdeb752c0fae379f5ef60330d6 100755 --- a/Tools/PyJobTransforms/scripts/Athena_tf.py +++ b/Tools/PyJobTransforms/scripts/Athena_tf.py @@ -1,6 +1,6 @@ #! /usr/bin/env python -# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration ## A simple athena transform. # @version $Id: Athena_tf.py 557865 2013-08-12 21:54:36Z graemes $ @@ -35,7 +35,7 @@ def main(): ## Get the base transform with all arguments added def getTransform(): - trf = transform(executor = athenaExecutor(name = 'athena')) + trf = transform(executor = athenaExecutor(name='athena', skeletonCA='PyJobTransforms.HelloWorldSkeleton')) addAthenaArguments(trf.parser) addDetectorArguments(trf.parser) addMyArgs(trf.parser) diff --git a/Tools/PyJobTransforms/scripts/HelloWorld_tf.py b/Tools/PyJobTransforms/scripts/HelloWorld_tf.py index 24a55b0b2a045f2e75c232845921b20ad16f192c..8250d2ed16cbaf479ec35988f7d57ff09473010a 100755 --- a/Tools/PyJobTransforms/scripts/HelloWorld_tf.py +++ b/Tools/PyJobTransforms/scripts/HelloWorld_tf.py @@ -1,6 +1,6 @@ #! /usr/bin/env python -# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration ## A simple tranform running HelloWorld @@ -34,7 +34,6 @@ def main(): def getTransform(): trf = transform(executor = athenaExecutor(name = 'athena', substep='HelloWorld', - skeletonFile=None, skeletonCA="PyJobTransforms.HelloWorldSkeleton")) addAthenaArguments(trf.parser) addDetectorArguments(trf.parser) diff --git a/Tools/PyJobTransforms/scripts/Merge_tf.py b/Tools/PyJobTransforms/scripts/Merge_tf.py index 0870fea7961052eaecdad1f82b51ee40e64aa0b9..29ddd39000aeb4d7a6b07f39c4619d11cecd6b65 100755 --- a/Tools/PyJobTransforms/scripts/Merge_tf.py +++ b/Tools/PyJobTransforms/scripts/Merge_tf.py @@ -1,6 +1,6 @@ #! /usr/bin/env python -# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration ## Merge_tf.py - Transform for merging any data type @@ -17,7 +17,6 @@ from PyJobTransforms.trfArgs import addAthenaArguments, addDetectorArguments from PyJobTransforms.trfDecorators import stdTrfExceptionHandler, sigUsrStackTrace from RecJobTransforms.recTransformUtils import addCommonRecTrfArgs from PyJobTransforms.trfExe import DQMergeExecutor -from PyJobTransforms.trfExe import tagMergeExecutor from PyJobTransforms.trfExe import bsMergeExecutor from PyJobTransforms.trfArgs import addD3PDArguments, addExtraDPDTypes from PATJobTransforms.PATTransformUtils import addNTUPMergeSubsteps, addPhysValidationMergeFiles @@ -41,13 +40,8 @@ def main(): def getTransform(): executorSet = set() - executorSet.add(hybridPOOLMergeExecutor(name = 'ESDMerge', skeletonFile = 'RecJobTransforms/skeleton.MergePool_tf.py', - skeletonCA = 'RecJobTransforms.MergePool_Skeleton', inData = ['ESD'], outData = ['ESD_MRG'])) - executorSet.add(hybridPOOLMergeExecutor(name = 'AODMerge', skeletonFile = 'RecJobTransforms/skeleton.MergePool_tf.py', - skeletonCA = 'RecJobTransforms.MergePool_Skeleton', inData = ['AOD'], outData = ['AOD_MRG'])) - executorSet.add(athenaExecutor(name = 'AODtoTAG', skeletonFile = 'RecJobTransforms/skeleton.AODtoTAG_tf.py', - inData = ['AOD_MRG'], outData = ['TAG'],)) - executorSet.add(tagMergeExecutor(name = 'TAGFileMerge', exe = 'CollAppend', inData = set(['TAG']), outData = set(['TAG_MRG']))) + executorSet.add(hybridPOOLMergeExecutor(name = 'ESDMerge', inData = ['ESD'], outData = ['ESD_MRG'])) + executorSet.add(hybridPOOLMergeExecutor(name = 'AODMerge', inData = ['AOD'], outData = ['AOD_MRG'])) executorSet.add(DQMergeExecutor(name = 'DQHistogramMerge', inData = [('HIST_ESD', 'HIST_AOD'), 'HIST'], outData = ['HIST_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'])) @@ -71,11 +65,11 @@ def getTransform(): try: from SimuJobTransforms.SimTransformUtils import addHITSMergeArguments addHITSMergeArguments(trf.parser) - trf.appendToExecutorSet(athenaExecutor(name = 'HITSMerge', substep="hitsmerge", skeletonFile = 'SimuJobTransforms/skeleton.HITSMerge.py', + trf.appendToExecutorSet(athenaExecutor(name = 'HITSMerge', substep='hitsmerge', skeletonCA = 'SimuJobTransforms.HITSMerge_Skeleton', tryDropAndReload = False, inData = ['HITS'], outData = ['HITS_MRG'])) - trf.appendToExecutorSet(athenaExecutor(name = 'RDOMerge', skeletonFile = 'SimuJobTransforms/skeleton.RDOMerge.py', + trf.appendToExecutorSet(athenaExecutor(name = 'RDOMerge', skeletonCA = 'SimuJobTransforms.RDOMerge_Skeleton', inData = ['RDO'], outData = ['RDO_MRG'])) @@ -116,17 +110,6 @@ def addMyArgs(parser): parser.add_argument('--outputAOD_MRGFile', '--outputAODFile', type=trfArgClasses.argFactory(trfArgClasses.argPOOLFile, io='output', type='aod'), help='Output merged AOD file', group='AODMerge_tf') - parser.add_argument('--outputTAGFile', - type=trfArgClasses.argFactory(trfArgClasses.argTAGFile, io='output', type='tag'), - help='Output TAG file', group='AODMerge_tf') - - parser.defineArgGroup('TAGMerge_tf', 'TAG merging specific options') - parser.add_argument('--inputTAGFile', nargs='+', - type=trfArgClasses.argFactory(trfArgClasses.argTAGFile, io='input'), - help='Input TAG file(s)', group='TAGMerge_tf') - parser.add_argument('--outputTAG_MRGFile', - type=trfArgClasses.argFactory(trfArgClasses.argTAGFile, io='output'), - help='Output merged TAG file', group='TAGMerge_tf') parser.defineArgGroup('DQHistMerge_tf', 'DQ merge specific options') parser.add_argument('--inputHISTFile', nargs='+', diff --git a/Tools/PyJobTransforms/scripts/ValidateFiles_tf.py b/Tools/PyJobTransforms/scripts/ValidateFiles_tf.py index d28d49f0b462aaec17b7e46717c314857fcddb08..177a533497d401ad7caf9e62c994f2cc9189d279 100755 --- a/Tools/PyJobTransforms/scripts/ValidateFiles_tf.py +++ b/Tools/PyJobTransforms/scripts/ValidateFiles_tf.py @@ -1,6 +1,6 @@ #! /usr/bin/env python -# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration ## A transform just getting some default file arguments (only to test file validation ) @@ -44,7 +44,6 @@ def addArgs(parser): parser.add_argument('--outputESDFile', type=trfArgClasses.argFactory(trfArgClasses.argPOOLFile, io='output', type='esd', multipleOK=True), nargs='+') parser.add_argument('--outputAODFile', type=trfArgClasses.argFactory(trfArgClasses.argPOOLFile, io='output', type='aod', multipleOK=True), nargs='+') parser.add_argument('--outputRDOFile', type=trfArgClasses.argFactory(trfArgClasses.argPOOLFile, io='output', type='rdo', multipleOK=True), nargs='+') - parser.add_argument('--outputTAGFile', type=trfArgClasses.argFactory(trfArgClasses.argTAGFile, io='output', type='tag', multipleOK=True), nargs='+') parser.add_argument('--outputEVNTFile', type=trfArgClasses.argFactory(trfArgClasses.argEVNTFile, io='output', type='evnt', multipleOK=True), nargs='+') parser.add_argument('--outputHISTFile', type=trfArgClasses.argFactory(trfArgClasses.argHISTFile, io='output', type='hist', multipleOK=True), nargs='+') parser.add_argument('--outputTXT_FTKIPFile', type=trfArgClasses.argFactory(trfArgClasses.argFTKIPFile, io='output', multipleOK=True), nargs='+') diff --git a/Tools/PyJobTransforms/scripts/makeTrfJSONSignatures.py b/Tools/PyJobTransforms/scripts/makeTrfJSONSignatures.py index 66c370bed0eb0b60f995d1a4200cba1bc9b0bfe0..8d76d0da7e4cace946d45d166f1807dff10030f8 100755 --- a/Tools/PyJobTransforms/scripts/makeTrfJSONSignatures.py +++ b/Tools/PyJobTransforms/scripts/makeTrfJSONSignatures.py @@ -24,7 +24,6 @@ def _getTransformsFromPATH(): 'ESDtoAOD_tf.py', 'ExeWrap_tf.py', 'Sleep_tf.py', - 'RAWtoESD_tf.py', ]) ########################################################################## diff --git a/Tools/PyJobTransforms/test/test_AODMerge_tf.py b/Tools/PyJobTransforms/test/test_AODMerge_tf.py index 41cd3ee4febadee2f48484456efbba94443c7878..f85ffec174926dd8dd2580933301e47a8e8190bf 100755 --- a/Tools/PyJobTransforms/test/test_AODMerge_tf.py +++ b/Tools/PyJobTransforms/test/test_AODMerge_tf.py @@ -1,6 +1,6 @@ #! /usr/bin/env python -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration # $Id: test_AODMerge_tf.py 617963 2014-09-22 13:13:07Z graemes $ # Run a EVNTMerge job and test key metadata in the output @@ -9,8 +9,6 @@ import glob import json import subprocess -import os -import os.path import sys import unittest @@ -26,7 +24,6 @@ class AODMergetest(unittest.TestCase): cmd = ['AODMerge_tf.py', '--inputAODFile'] cmd.extend(inputs) cmd.extend(['--outputAOD_MRGFile', 'merged.AOD.pool.root']) - cmd.extend(['--outputTAGFile', 'TAG.pool.root']) cmd.extend(['--reportName', 'jobReportFast']) msg.info('Will run this transform: {0}'.format(cmd)) p = subprocess.Popen(cmd, shell = False, stdout = subprocess.PIPE, stderr = subprocess.STDOUT, bufsize = 1) @@ -50,7 +47,6 @@ class AODMergetest(unittest.TestCase): cmd = ['AODMerge_tf.py', '--inputAODFile'] cmd.extend(inputs) cmd.extend(['--outputAOD_MRGFile', 'slowmerged.AOD.pool.root']) - cmd.extend(['--outputTAGFile', 'slowTAG.pool.root']) cmd.extend(['--reportName', 'jobReportSlow']) msg.info('Will run this transform: {0}'.format(cmd)) p = subprocess.Popen(cmd, shell = False, stdout = subprocess.PIPE, stderr = subprocess.STDOUT, bufsize = 1) diff --git a/Tools/PyJobTransforms/test/test_LogFileScanner.py b/Tools/PyJobTransforms/test/test_LogFileScanner.py index f4d2723db429625389253f3947eb71951b24f1f1..305a1918626c5ea302d4daf880a7ef668ff759ed 100755 --- a/Tools/PyJobTransforms/test/test_LogFileScanner.py +++ b/Tools/PyJobTransforms/test/test_LogFileScanner.py @@ -1,15 +1,12 @@ #! /usr/bin/env python -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration # # Run a few simple "Athena_tf.py" jobs and check that logfile scanning produces the correct results # $Id: test_LogFileScanner.py 576626 2013-12-21 23:29:31Z graemes $ # -import json import subprocess -import os -import os.path import sys import unittest @@ -18,7 +15,7 @@ from PyJobTransforms.trfLogger import msg class LogscanTest(unittest.TestCase): def test_athenaNormalScan(self): - cmd = ['Athena_tf.py'] + cmd = ['Athena_tf.py', '--CA'] msg.info('Will run this transform: {0}'.format(cmd)) p = subprocess.Popen(cmd, shell = False, stdout = subprocess.PIPE, stderr = subprocess.STDOUT, bufsize = 1) while p.poll() is None: @@ -31,7 +28,7 @@ class LogscanTest(unittest.TestCase): def test_athenaDisableFilter(self): - cmd = ['Athena_tf.py', '--ignoreFiles', 'None'] + cmd = ['Athena_tf.py', '--CA', '--ignoreFiles', 'None'] msg.info('Will run this transform: {0}'.format(cmd)) cmd.extend(['--reportName', 'jobReportDisable']) p = subprocess.Popen(cmd, shell = False, stdout = subprocess.PIPE, stderr = subprocess.STDOUT, bufsize = 1) @@ -45,7 +42,7 @@ class LogscanTest(unittest.TestCase): def test_athenaManualFilter(self): - cmd = ['Athena_tf.py', '--ignoreFiles', 'None'] + cmd = ['Athena_tf.py', '--CA', '--ignoreFiles', 'None'] cmd.extend(['--ignorePatterns', 'An ERROR message', 'A FATAL error message']) cmd.extend(['--reportName', 'jobReportManual']) msg.info('Will run this transform: {0}'.format(cmd)) @@ -60,7 +57,7 @@ class LogscanTest(unittest.TestCase): def test_athenaManualRegexp(self): - cmd = ['Athena_tf.py', '--ignoreFiles', 'None'] + cmd = ['Athena_tf.py', '--CA', '--ignoreFiles', 'None'] cmd.extend(['--ignorePatterns', 'An? (ERROR|FATAL) .*message']) cmd.extend(['--reportName', 'jobReportRegexp']) msg.info('Will run this transform: {0}'.format(cmd)) diff --git a/Tools/PyJobTransforms/test/test_Reco_tf.py b/Tools/PyJobTransforms/test/test_Reco_tf.py index 21c56aa783325898488523fdd4c050693eaeb216..9a0240b50a48d7c45b72b982bce7e4cdf344b356 100755 --- a/Tools/PyJobTransforms/test/test_Reco_tf.py +++ b/Tools/PyJobTransforms/test/test_Reco_tf.py @@ -1,6 +1,6 @@ #! /usr/bin/env python -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration # Run a Reco job and test key metadata in the output # @@ -8,8 +8,6 @@ import glob import json import subprocess -import os -import os.path import sys import unittest @@ -28,7 +26,6 @@ class Reco_tftest(unittest.TestCase): cmd.extend(['--outputESDFile', 'my.ESD.pool.root', '--autoConfiguration', 'everything']) cmd.extend(['--outputAODFile', 'my.AOD.pool.root']) cmd.extend(['--outputHISTFile', 'my.HIST.root']) - cmd.extend(['--outputTAGFile', 'my.TAG.pool.root']) cmd.extend(['--maxEvents', '10']) cmd.extend(['--preExec', 'rec.doTrigger=False']) # This is temporary while trigger doesn't work in r19 ## Event counting currently broken for multi-step transforms diff --git a/Tools/PyJobTransforms/test/test_TAGMerge_tf.py b/Tools/PyJobTransforms/test/test_TAGMerge_tf.py deleted file mode 100755 index b1f9f20cb8f5640292edaac38e0b88a348900f9d..0000000000000000000000000000000000000000 --- a/Tools/PyJobTransforms/test/test_TAGMerge_tf.py +++ /dev/null @@ -1,45 +0,0 @@ -#! /usr/bin/env python - -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration - -# Run a TAGMerge job and test key metadata in the output -# - -import glob -import json -import subprocess -import os -import os.path -import sys -import unittest - -from PyJobTransforms.trfLogger import msg - -sourceFiles = '/afs/cern.ch/work/g/graemes/ddm/data12_8TeV.00207865.physics_JetTauEtmiss.merge.TAG.r4065_p1278_tid01030417_00/TAG.*' - -class TAGMergetest(unittest.TestCase): - - def test_runTAGMerge(self): - inputs = glob.glob(sourceFiles) - self.assertEqual(len(inputs), 2) - cmd = ['TAGMerge_tf.py', '--inputTAGFile'] - cmd.extend(inputs) - cmd.extend(['--outputTAG_MRGFile', 'merged.TAG.pool.root']) - msg.info('Will run this transform: {0}'.format(cmd)) - p = subprocess.Popen(cmd, shell = False, stdout = subprocess.PIPE, stderr = subprocess.STDOUT, bufsize = 1) - while p.poll() is None: - line = p.stdout.readline() - sys.stdout.write(line.decode()) - # Hoover up remaining buffered output lines - for line in p.stdout: - sys.stdout.write(line) - self.assertEqual(p.returncode, 0) - - # Now load metadata and test a few important values - with open('jobReport.json') as jr: - md = json.load(jr) - self.assertEqual(isinstance(md, dict), True) - self.assertEqual(md['files']['output'][0]['subFiles'][0]['nentries'], 78232) - -if __name__ == '__main__': - unittest.main() diff --git a/Tools/PyJobTransforms/test/test_trfSubstepIntegration.py b/Tools/PyJobTransforms/test/test_trfSubstepIntegration.py index 8ec97425ed5702125a5c084539ae36ccf0cf383d..62504e1c543b8377171e74f36cb84ac967f63879 100755 --- a/Tools/PyJobTransforms/test/test_trfSubstepIntegration.py +++ b/Tools/PyJobTransforms/test/test_trfSubstepIntegration.py @@ -31,7 +31,7 @@ class trfExitTests(unittest.TestCase): steps.append(m.group(1)) self.assertEqual(p.returncode, 0) self.assertTrue("HITtoRDO" in steps) - self.assertTrue("RAWtoESD" in steps) + self.assertTrue("RAWtoALL" in steps) def test_FullChain_tf(self): cmd = ['FullChain_tf.py', '--showSteps'] @@ -47,7 +47,7 @@ class trfExitTests(unittest.TestCase): self.assertEqual(p.returncode, 0) self.assertTrue("EVNTtoHITS" in steps) self.assertTrue("HITtoRDO" in steps) - self.assertTrue("RAWtoESD" in steps) + self.assertTrue("RAWtoALL" in steps) if __name__ == '__main__': unittest.main() diff --git a/Tools/PyJobTransforms/test/test_trfUtilsDBRelease.py b/Tools/PyJobTransforms/test/test_trfUtilsDBRelease.py index 6c815c89cb0023e604cb4df28cd9a3ca335c2b72..4ad9d7e3cd52596a68c97f4a172aa4ea2e6da15e 100755 --- a/Tools/PyJobTransforms/test/test_trfUtilsDBRelease.py +++ b/Tools/PyJobTransforms/test/test_trfUtilsDBRelease.py @@ -1,11 +1,10 @@ #! /usr/bin/env python -# Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration # # Test the various DBRelease scenarios # -import json import subprocess import os import os.path @@ -21,7 +20,7 @@ class DBReleasetest(unittest.TestCase): # Standard setup using CVMFS def test_cvmfsStandard(self): - cmd = ['Athena_tf.py', '--DBRelease', '23.3.1'] + cmd = ['Athena_tf.py', '--CA', '--DBRelease', '23.3.1'] msg.info('Will run this transform: {0}'.format(cmd)) p = subprocess.Popen(cmd, shell = False, stdout = subprocess.PIPE, stderr = subprocess.STDOUT, bufsize = 1) while p.poll() is None: @@ -34,7 +33,7 @@ class DBReleasetest(unittest.TestCase): # Setup using CVMFS 'current' def test_cvmfsCurrent(self): - cmd = ['Athena_tf.py', '--DBRelease', 'current'] + cmd = ['Athena_tf.py', '--CA', '--DBRelease', 'current'] msg.info('Will run this transform: {0}'.format(cmd)) p = subprocess.Popen(cmd, shell = False, stdout = subprocess.PIPE, stderr = subprocess.STDOUT, bufsize = 1) while p.poll() is None: @@ -57,7 +56,7 @@ class DBReleasetest(unittest.TestCase): pass else: raise - cmd = ['Athena_tf.py', '--DBRelease', 'DBRelease-22.7.1.tar.gz'] + cmd = ['Athena_tf.py', '--CA', '--DBRelease', 'DBRelease-22.7.1.tar.gz'] msg.info('Will run this transform: {0}'.format(cmd)) p = subprocess.Popen(cmd, shell = False, stdout = subprocess.PIPE, stderr = subprocess.STDOUT, bufsize = 1) while p.poll() is None: @@ -109,7 +108,7 @@ class DBReleasetest(unittest.TestCase): # Negative test - use an illegal name format def test_illegalName(self): - cmd = ['Athena_tf.py', '--DBRelease', 'FailMeHarder'] + cmd = ['Athena_tf.py', '--CA', '--DBRelease', 'FailMeHarder'] msg.info('Will run this transform: {0}'.format(cmd)) p = subprocess.Popen(cmd, shell = False, stdout = subprocess.PIPE, stderr = subprocess.STDOUT, bufsize = 1) while p.poll() is None: diff --git a/Tools/PyJobTransforms/test/test_trfUtilsParallelJobProcessorData.py b/Tools/PyJobTransforms/test/test_trfUtilsParallelJobProcessorData.py index 0db55ea72c15bcd64695c4d6186776ededdb01bf..ec35c957678e3381225b624b7263808dc91db172 100755 --- a/Tools/PyJobTransforms/test/test_trfUtilsParallelJobProcessorData.py +++ b/Tools/PyJobTransforms/test/test_trfUtilsParallelJobProcessorData.py @@ -118,34 +118,6 @@ class TestOutputFileValidationInParallel(unittest.TestCase): # sys.stdout.write(line) # self.assertEqual(p.returncode, 0) # -# ## @brief unit test for TAG -# # @detail This method is a unit test for output file validation of TAG data -# # using the parallel job processor. -# def test_TAG(self): -# msg.info("\n\n\n\nTAG OUTPUT FILE VALIDATION USING PARALLEL JOB PROCESSOR") -# cmd = [ -# 'ValidateFiles_tf.py', -# '--outputTAGFile', -# fileTAG1, -# '--parallelFileValidation', -# 'True', -# '--verbose' -# ] -# p = subprocess.Popen( -# cmd, -# shell = False, -# stdout = subprocess.PIPE, -# stderr = subprocess.STDOUT, -# bufsize = 1 -# ) -# while p.poll() is None: -# line = p.stdout.readline() -# sys.stdout.write(line) -# # Clean remaining buffered output lines. -# for line in p.stdout: -# sys.stdout.write(line) -# self.assertEqual(p.returncode, 0) -# # ## @brief unit test for BS # # @detail This method is a unit test for output file validation of BS data # # using the parallel job processor. diff --git a/Tools/PyJobTransformsCore/python/full_trfarg.py b/Tools/PyJobTransformsCore/python/full_trfarg.py index 4cc43b32980761f645080f61bb38c0aebf762a6b..6e9bb8dfe7555b6ca41fc72308da6fdec297b786 100755 --- a/Tools/PyJobTransformsCore/python/full_trfarg.py +++ b/Tools/PyJobTransformsCore/python/full_trfarg.py @@ -6,7 +6,7 @@ import os import copy from PyJobTransformsCore.basic_trfarg import Argument, BoolArg, InputDataFileArg, InputTarFileAndSetupArg, InputTarFileArg, IntegerArg, OutputDataFileArg, OutputFileArg, StringArg from PyJobTransformsCore.envutil import find_joboptions -from PyJobTransformsCore.trfutil import AODFile, BSFile, DPDFile, ESDFile, EvgenFile, FTKIPFile, HistogramFile, HitsFile, JiveXMLTGZFile, MonitorHistFile, NtupleFile, RDOFile, SANFile, TAGFile, expandStringToList, strip_suffix +from PyJobTransformsCore.trfutil import AODFile, BSFile, DPDFile, ESDFile, EvgenFile, FTKIPFile, HistogramFile, HitsFile, JiveXMLTGZFile, MonitorHistFile, NtupleFile, RDOFile, SANFile, expandStringToList, strip_suffix from PyJobTransformsCore.trferr import JobOptionsNotFoundError, TransformArgumentError, TransformDefinitionError from PyJobTransformsCore import fileutil @@ -164,31 +164,6 @@ class OutputAODFileArg(OutputDataFileArg): return True -class InputTAGFileArg(InputDataFileArg): - """Input file that contains TAGs""" - def __init__(self,help='default',name='default', **kwargs ): - InputDataFileArg.__init__(self,help,TAGFile(),name, **kwargs ) - - def isFullArgument(self): - return True - -class InputTAG_AODFileArg(InputDataFileArg): - """Input file that contains TAGs pointing to AODs, in particular""" - def __init__(self,help='default',name='default', **kwargs ): - InputDataFileArg.__init__(self,help,TAGFile(),name, **kwargs ) - - def isFullArgument(self): - return True - -class OutputTAGFileArg(OutputDataFileArg): - """Output file that contains TAGs""" - def __init__(self,help='default',name='default', temporary = False, intermediate = False, **validationDict ): - OutputDataFileArg.__init__(self,help,TAGFile(),name, temporary, intermediate, **validationDict ) - - def isFullArgument(self): - return True - - class OutputSANFileArg(OutputFileArg): """Output file that contains SANs""" def __init__(self,help='default',name='default', temporary = False, intermediate = False, **validationDict ): diff --git a/Tools/PyJobTransformsCore/python/trfutil.py b/Tools/PyJobTransformsCore/python/trfutil.py index a45eb9584a6378ec88f6d4372c74b81964ad0c74..ac42e954a14cb27b27cbb71ede14ea9818bcdd6a 100755 --- a/Tools/PyJobTransformsCore/python/trfutil.py +++ b/Tools/PyJobTransformsCore/python/trfutil.py @@ -1611,37 +1611,6 @@ class AODFile( PoolDataFile ): PoolDataFile.__init__(self,contents) -class TAGFile( RootTTreeFile ): - defaultContents = 'tag' - def __init__(self,contents=defaultContents): - RootTTreeFile.__init__(self,contents) - - def getGUID(self, filename): - # Use FClistGUID, then fallback to AthFile (N.B. tag files have funny names in the PFC!) - rc, guid = getGUIDfromPFC("RootCollection||PFN:" + filename) - if guid is not None: - return guid - if rc != 0: - print ('Warning: Problem with PFC') - - print ("GUID retrieval: Now attempting to use AthFile to retrieve GUID from %s." % filename) - guid = getCachedFileInfo( filename, 'file_guid' ) - if guid is None: - print ("ERROR: GUID retrieval failed.") - return guid - - - def eventCount( self, arg ): - """Return number of events in file of argument arg. - Return None if event count is not applicable to file type.""" - try: - fName = arg.value() - except Exception as e: - print ("Event count failed for %s: %s" % ( arg, e )) - return None - return ntup_entries( fname = fName, tree_names = "POOLCollectionTree" ) - - class SANFile( RootTTreeFile ): defaultContents = 'san' def __init__(self,contents=defaultContents): diff --git a/Tools/Tier0ChainTests/scripts/tct_recotrf.py b/Tools/Tier0ChainTests/scripts/tct_recotrf.py index e83b4dc91463f06959a2e8887919e1a8635676a5..20436b27ed22906b704b06085b5b70099e694375 100755 --- a/Tools/Tier0ChainTests/scripts/tct_recotrf.py +++ b/Tools/Tier0ChainTests/scripts/tct_recotrf.py @@ -318,17 +318,14 @@ def generateRecoTrfCmd(config): #ntuplist = ['NTUP_HI','NTUP_TRKVALID'] ntuplist = [] config.outputAODFile = "myAOD_%s_%d.pool.root" % (config.trigStream_,config.jobnum_) - config.outputTAGFile = "myTAG_%s_%d.root" % (config.trigStream_,config.jobnum_) elif config.doHIP_: desdlist = [] drawlist = [] #ntuplist = ['NTUP_HI','NTUP_MINBIAS','NTUP_TRKVALID'] ntuplist = [] config.outputAODFile = "myAOD_%s_%d.pool.root" % (config.trigStream_,config.jobnum_) - config.outputTAGFile = "myTAG_%s_%d.root" % (config.trigStream_,config.jobnum_) else: config.outputAODFile = "myAOD_%s_%d.AOD.pool.root" % (config.trigStream_,config.jobnum_) - config.outputTAGFile = "myTAG_%s_%d.root" % (config.trigStream_,config.jobnum_) if not config.dropDAODs_: for dtype in daodlist: setattr(config,'output%sFile' % dtype, diff --git a/Tools/Tier0ChainTests/scripts/tct_runAll.sh b/Tools/Tier0ChainTests/scripts/tct_runAll.sh index fbf5914aebb5a82808ed19ee9d71f55bf7d05a2d..42c655be0d057efc03fe6e148bdcd03889dc0757 100755 --- a/Tools/Tier0ChainTests/scripts/tct_runAll.sh +++ b/Tools/Tier0ChainTests/scripts/tct_runAll.sh @@ -161,7 +161,7 @@ echo ${RUNCMD} echo ## make tag file -RUNCMD="AODtoTAG_trf.py maxEvents=-1 trigStream=${TRIGSTR} inputAODFile=MergedAOD.pool.root autoConfiguration=FieldAndGeo,ConditionsTag outputTAGFile=myTag.pool.root ${TRFARGS}" +RUNCMD="AODtoTAG_trf.py maxEvents=-1 trigStream=${TRIGSTR} inputAODFile=MergedAOD.pool.root autoConfiguration=FieldAndGeo,ConditionsTag ${TRFARGS}" echo echo ">> Now running command:" echo ">> ===================="