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] )