diff --git a/Trigger/TrigValidation/TrigAnalysisTest/test/test_trigAna_BStoBStoESDAOD_v1Dev_build.py b/Trigger/TrigValidation/TrigAnalysisTest/test/test_trigAna_BStoBStoESDAOD_v1Dev_build.py index 5a7c2cbbbfc5024d295f83d46bf852fd08437aac..3efd65ed67feac330ed7664f666f4753cbc9d3ad 100755 --- a/Trigger/TrigValidation/TrigAnalysisTest/test/test_trigAna_BStoBStoESDAOD_v1Dev_build.py +++ b/Trigger/TrigValidation/TrigAnalysisTest/test/test_trigAna_BStoBStoESDAOD_v1Dev_build.py @@ -5,12 +5,9 @@ # art-include: master/Athena from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps +from TrigValTools.TrigValSteering.Common import find_file from TrigAnalysisTest.TrigAnalysisSteps import add_analysis_steps -def findFile(pattern): - '''Bash inline file name finder''' - return '`find . -name \'{:s}\' | tail -n 1`'.format(pattern) - menu_name = 'LS2_v1_TriggerValidation_mc_prescale' # Run athena BS->BS job @@ -32,7 +29,7 @@ filterBS = ExecStep.ExecStep('FilterBS') filterBS.type = 'other' filterBS.executable = 'trigbs_extractStream.py' filterBS.input = '' -filterBS.args = '-s Main ' + findFile('data_test.*.Single_Stream.daq.RAW.*.data') +filterBS.args = '-s Main ' + find_file('*unknown_SingleStream.daq.RAW.*Athena.*.data') # Reconstruction step, BS->ESD->AOD recoPreExec = ' '.join([ @@ -62,7 +59,7 @@ reco.type = 'Reco_tf' reco.threads = 1 reco.input = '' reco.explicit_input = True -reco.args = '--inputBSFile=' + findFile('*.physics_Main*.data') # output of the previous step +reco.args = '--inputBSFile=' + find_file('*.physics_Main*.data') # output of the previous step reco.args += ' --outputESDFile=ESD.pool.root --outputAODFile=AOD.pool.root' reco.args += ' --conditionsTag=\'CONDBR2-BLKPA-2018-11\' --geometryVersion=\'ATLAS-R2-2016-01-00-01\'' reco.args += ' --preExec="{:s}"'.format(recoPreExec) diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_decodeBS_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_decodeBS_build.py index 371bda8684c53fd30d751a0d5b8d611c4faae89f..9b2d7b2852bfd4da4d0c66e41ac63f1921e3e96f 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_decodeBS_build.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_decodeBS_build.py @@ -6,22 +6,19 @@ # art-include: master/Athena from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps +from TrigValTools.TrigValSteering.Common import find_file ################################################## # Helper functions to build the test steps ################################################## -def findFile(pattern): - '''Bash inline file name finder''' - return '`find . -name \'{:s}\' | tail -n 1`'.format(pattern) - def filterBS(stream_name): '''Extract ByteStream data for a given stream from a file with multiple streams''' filterStep = ExecStep.ExecStep('FilterBS_'+stream_name) filterStep.type = 'other' filterStep.executable = 'trigbs_extractStream.py' filterStep.input = '' - filterStep.args = '-s ' + stream_name + ' ' + findFile('*_HLTMPPy_output.*.data') + filterStep.args = '-s ' + stream_name + ' ' + find_file('*_HLTMPPy_output.*.data') return filterStep def decodeBS(stream_name): @@ -31,7 +28,7 @@ def decodeBS(stream_name): decodeStep.job_options = 'TriggerJobOpts/decodeBS.py' decodeStep.input = '' decodeStep.explicit_input = True - decodeStep.args = '--filesInput='+findFile('*'+stream_name+'*._athenaHLT*.data') + decodeStep.args = '--filesInput='+find_file('*'+stream_name+'*._athenaHLT*.data') decodeStep.perfmon = False # no need to run PerfMon for this step return decodeStep diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_decodeBS_grid.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_decodeBS_grid.py index bf04221d9833fbaa4f77b16756415c37a4941650..c3e38062fd0cfebc18e784faa8725ea42c231bfc 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_decodeBS_grid.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_decodeBS_grid.py @@ -19,22 +19,19 @@ # art-output: *.check* from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps +from TrigValTools.TrigValSteering.Common import find_file ################################################## # Helper functions to build the test steps ################################################## -def findFile(pattern): - '''Bash inline file name finder''' - return '`find . -name \'{:s}\' | tail -n 1`'.format(pattern) - def filterBS(stream_name): '''Extract ByteStream data for a given stream from a file with multiple streams''' filterStep = ExecStep.ExecStep('FilterBS_'+stream_name) filterStep.type = 'other' filterStep.executable = 'trigbs_extractStream.py' filterStep.input = '' - filterStep.args = '-s ' + stream_name + ' ' + findFile('*_HLTMPPy_output.*.data') + filterStep.args = '-s ' + stream_name + ' ' + find_file('*_HLTMPPy_output.*.data') return filterStep def decodeBS(stream_name): @@ -44,7 +41,7 @@ def decodeBS(stream_name): decodeStep.job_options = 'TriggerJobOpts/decodeBS.py' decodeStep.input = '' decodeStep.explicit_input = True - decodeStep.args = '--filesInput='+findFile('*'+stream_name+'*._athenaHLT*.data') + decodeStep.args = '--filesInput='+find_file('*'+stream_name+'*._athenaHLT*.data') decodeStep.perfmon = False # no need to run PerfMon for this step return decodeStep diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_T0Mon_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_T0Mon_build.py index 4d59af68a3b0720118b11208e3d27b03b03c1f7c..7aaf409b5595488ed2af00c1da23fcbe4df6e044 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_T0Mon_build.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_T0Mon_build.py @@ -6,11 +6,7 @@ # art-include: master/Athena from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps - - -def findFile(pattern): - return '`find . -name \'{:s}\' | tail -n 1`'.format(pattern) - +from TrigValTools.TrigValSteering.Common import find_file # HLT step (BS->BS) hlt = ExecStep.ExecStep() @@ -26,7 +22,7 @@ filter_bs = ExecStep.ExecStep('FilterBS') filter_bs.type = 'other' filter_bs.executable = 'trigbs_extractStream.py' filter_bs.input = '' -filter_bs.args = '-s Main ' + findFile('*_HLTMPPy_output.*.data') +filter_bs.args = '-s Main ' + find_file('*_HLTMPPy_output.*.data') # Tier-0 reco step (BS->ESD->AOD) tzrecoPreExec = ' '.join([ @@ -44,7 +40,7 @@ tzreco.threads = 1 tzreco.input = '' tzreco.explicit_input = True tzreco.max_events = 50 -tzreco.args = '--inputBSFile=' + findFile('*.physics_Main*._athenaHLT*.data') # output of the previous step +tzreco.args = '--inputBSFile=' + find_file('*.physics_Main*._athenaHLT*.data') # output of the previous step tzreco.args += ' --outputESDFile=ESD.pool.root --outputAODFile=AOD.pool.root' tzreco.args += ' --conditionsTag=\'CONDBR2-BLKPA-2018-11\' --geometryVersion=\'ATLAS-R2-2016-01-00-01\'' tzreco.args += ' --preExec="{:s}"'.format(tzrecoPreExec) diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_T0Mon_grid.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_T0Mon_grid.py index ce139aea52b4be4974d4af673d57611bb824ef1d..39a0c19059db68305a0ca0c7440e0c78e60bea64 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_T0Mon_grid.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_T0Mon_grid.py @@ -16,11 +16,7 @@ # art-output: *.check* from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps - - -def findFile(pattern): - return '`find . -name \'{:s}\' | tail -n 1`'.format(pattern) - +from TrigValTools.TrigValSteering.Common import find_file # HLT step (BS->BS) hlt = ExecStep.ExecStep() @@ -35,7 +31,7 @@ filter_bs = ExecStep.ExecStep('FilterBS') filter_bs.type = 'other' filter_bs.executable = 'trigbs_extractStream.py' filter_bs.input = '' -filter_bs.args = '-s Main ' + findFile('*_HLTMPPy_output.*.data') +filter_bs.args = '-s Main ' + find_file('*_HLTMPPy_output.*.data') # Tier-0 reco step (BS->ESD->AOD) tzrecoPreExec = ' '.join([ @@ -52,7 +48,7 @@ tzreco.type = 'Reco_tf' tzreco.threads = 1 tzreco.input = '' tzreco.explicit_input = True -tzreco.args = '--inputBSFile=' + findFile('*.physics_Main*._athenaHLT*.data') # output of the previous step +tzreco.args = '--inputBSFile=' + find_file('*.physics_Main*._athenaHLT*.data') # output of the previous step tzreco.args += ' --outputESDFile=ESD.pool.root --outputAODFile=AOD.pool.root' tzreco.args += ' --conditionsTag=\'CONDBR2-BLKPA-2018-11\' --geometryVersion=\'ATLAS-R2-2016-01-00-01\'' tzreco.args += ' --preExec="{:s}"'.format(tzrecoPreExec) diff --git a/Trigger/TrigValidation/TrigValTools/python/TrigValSteering/Common.py b/Trigger/TrigValidation/TrigValTools/python/TrigValSteering/Common.py index 7eb89084f28f8930a684e7e4fe55fe600559cb78..a64a4f5b80ff9c1e2d846ee936237e78e8299069 100644 --- a/Trigger/TrigValidation/TrigValTools/python/TrigValSteering/Common.py +++ b/Trigger/TrigValidation/TrigValTools/python/TrigValSteering/Common.py @@ -55,6 +55,15 @@ def clear_art_summary(): os.remove(art_result_summary) +def find_file(pattern): + ''' + Bash inline command frequently used in multi-step tests + to pass the output of one step to the input of another + based on a name pattern rather than a fixed full file name + ''' + return '`find . -name \'{:s}\' | tail -n 1`'.format(pattern) + + @memoize def check_job_options(jo_path): ''' diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_writeBS_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_writeBS_build.py index c300374251cea421e7a3f662efda4ec1dbd9af45..f5180297ab52e5b98e9a3706f3fc39b99b75040e 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_writeBS_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_writeBS_build.py @@ -8,6 +8,7 @@ # If you create a grid version, check art-output in existing grid tests. from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps, Step +from TrigValTools.TrigValSteering.Common import find_file ex = ExecStep.ExecStep() ex.type = 'athena' @@ -20,7 +21,7 @@ ex.args = '-c "setMenu=\'LS2_v1\';doWriteBS=True;doWriteRDOTrigger=False;"' checkBS = Step.Step("CheckBS") checkBS.executable = 'trigbs_dumpHLTContentInBS_run3.py' checkBS.args = ' --l1 --hlt --hltres --stag --sizeSummary' -checkBS.args += ' `find . -name \'*Single_Stream.daq.RAW.*Athena.*.data\' | tail -n 1`' +checkBS.args += ' ' + find_file('*unknown_SingleStream.daq.RAW.*Athena.*.data') checkBS.required = True checkBS.auto_report_result = True diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_writeBS_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_writeBS_grid.py index 9ab96a83a24d9ed416ff804b55b3de779832f5fb..f15f6f2a6d1ff16574a4f07b1fc8db6a9fe5016e 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_writeBS_grid.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_writeBS_grid.py @@ -19,6 +19,7 @@ # art-output: *.check* from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps, Step +from TrigValTools.TrigValSteering.Common import find_file ex = ExecStep.ExecStep() ex.type = 'athena' @@ -31,7 +32,7 @@ ex.args = '-c "setMenu=\'LS2_v1\';doWriteBS=True;doWriteRDOTrigger=False;"' checkBS = Step.Step("CheckBS") checkBS.executable = 'trigbs_dumpHLTContentInBS_run3.py' checkBS.args = ' --l1 --hlt --hltres --stag --sizeSummary' -checkBS.args += ' `find . -name \'*Single_Stream.daq.RAW.*Athena.*.data\' | tail -n 1`' +checkBS.args += ' ' + find_file('*unknown_SingleStream.daq.RAW.*Athena.*.data') checkBS.required = True checkBS.auto_report_result = True diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_writeBS_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_writeBS_build.py index 43207e7b4cc1765895e5335a044b756d19081318..8029ae6e0fb4689d86f47eaf092ff07ad1560778 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_writeBS_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_writeBS_build.py @@ -8,6 +8,7 @@ # If you create a grid version, check art-output in existing grid tests. from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps, Step +from TrigValTools.TrigValSteering.Common import find_file ex = ExecStep.ExecStep() ex.type = 'athena' @@ -20,7 +21,7 @@ ex.args = '-c "setMenu=\'LS2_v1\';doWriteBS=True;doWriteRDOTrigger=False;"' checkBS = Step.Step("CheckBS") checkBS.executable = 'trigbs_dumpHLTContentInBS_run3.py' checkBS.args = ' --l1 --hlt --hltres --stag --sizeSummary' -checkBS.args += ' `find . -name \'*Single_Stream.daq.RAW.*Athena.*.data\' | tail -n 1`' +checkBS.args += ' ' + find_file('*unknown_SingleStream.daq.RAW.*Athena.*.data') checkBS.required = True checkBS.auto_report_result = True diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_writeBS_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_writeBS_grid.py index c8b478b740bd15390523121b547ae1d36b151ef9..41286c219b302b9a6c38b6a2745fc061aa9a851e 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_writeBS_grid.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_writeBS_grid.py @@ -19,6 +19,7 @@ # art-output: *.check* from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps, Step +from TrigValTools.TrigValSteering.Common import find_file ex = ExecStep.ExecStep() ex.type = 'athena' @@ -31,7 +32,7 @@ ex.args = '-c "setMenu=\'LS2_v1\';doWriteBS=True;doWriteRDOTrigger=False;"' checkBS = Step.Step("CheckBS") checkBS.executable = 'trigbs_dumpHLTContentInBS_run3.py' checkBS.args = ' --l1 --hlt --hltres --stag --sizeSummary' -checkBS.args += ' `find . -name \'*Single_Stream.daq.RAW.*Athena.*.data\' | tail -n 1`' +checkBS.args += ' ' + find_file('*unknown_SingleStream.daq.RAW.*Athena.*.data') checkBS.required = True checkBS.auto_report_result = True diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py index 24cb4b5f01dbee30919e8a3076d44c777acf2ca5..32d9d0eac792108c06db4e1a6f9b49844b0732f2 100644 --- a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py +++ b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py @@ -369,6 +369,8 @@ def triggerBSOutputCfg(flags, summaryAlg, offline=False): writingAcc.getPrimary().ExtraInputs = [ ("HLT::HLTResultMT", "HLTResultMT"), ("xAOD::TrigDecision", "xTrigDecision")] + writingAcc.getService('ByteStreamEventStorageOutputSvc').StreamType = 'unknown' + writingAcc.getService('ByteStreamEventStorageOutputSvc').StreamName = 'SingleStream' acc.merge( writingAcc ) else: acc.setPrivateTools( [bitsmaker, stmaker, serialiser] )