diff --git a/DetectorDescription/RegSelSvcTest/share/testRegSelSvc.py b/DetectorDescription/RegSelSvcTest/share/testRegSelSvc.py
index 38e13464423e79beccde651e36c8d626d07385b4..129a336f680f7ca7c29deadf240f3ce6cb92d312 100644
--- a/DetectorDescription/RegSelSvcTest/share/testRegSelSvc.py
+++ b/DetectorDescription/RegSelSvcTest/share/testRegSelSvc.py
@@ -2,7 +2,9 @@
 # please import configurables yourself instead.
 
 doEmptyMenu = True
-include("TrigUpgradeTest/testHLT_MT.py")
+doWriteRDOTrigger = False
+doWriteBS = False
+include("TriggerJobOpts/runHLT_standalone.py")
 
 from RegSelSvcTest.RegSelSvcTestConf import RegSelTestAlg
 from AthenaCommon.AppMgr import athAlgSeq
diff --git a/HLT/Trigger/TrigTransforms/TrigTransform/scripts/TrigMT_reco_tf.py b/HLT/Trigger/TrigTransforms/TrigTransform/scripts/TrigMT_reco_tf.py
index 188330c12d3a97588c04208e065169e48e8dfa92..b56ad6eae7b96943591f035be5c241d88e5ee40b 100755
--- a/HLT/Trigger/TrigTransforms/TrigTransform/scripts/TrigMT_reco_tf.py
+++ b/HLT/Trigger/TrigTransforms/TrigTransform/scripts/TrigMT_reco_tf.py
@@ -46,7 +46,7 @@ def getTransform():
     #BSRDOtoRAW is new option for trigger transform
     #runs primarily using athenaHLT
     #literalRunargs used for when running with athena
-    executorSet.add(trigRecoExecutor(name = 'BSRDOtoRAW', skeletonFile = 'TrigUpgradeTest/full_menu.py',
+    executorSet.add(trigRecoExecutor(name = 'BSRDOtoRAW', skeletonFile = 'TriggerJobOpts/runHLT_standalone.py',
                                      exe = 'athenaHLT.py',
                                      substep = 'b2r', tryDropAndReload = False,
                                      inData = ['BS_RDO', 'RDO'], outData = ['BS', 'HIST_HLTMON','HIST_DEBUGSTREAMMON'], 
diff --git a/HLT/Trigger/TrigTransforms/TrigTransform/scripts/Trig_reco_tf.py b/HLT/Trigger/TrigTransforms/TrigTransform/scripts/Trig_reco_tf.py
index fd14361b9e71ab154173929d286a51e5799526e1..2793b4d5cf74fc0800badcfdb0dab8d7af3d0435 100755
--- a/HLT/Trigger/TrigTransforms/TrigTransform/scripts/Trig_reco_tf.py
+++ b/HLT/Trigger/TrigTransforms/TrigTransform/scripts/Trig_reco_tf.py
@@ -46,7 +46,7 @@ def getTransform():
     #BSRDOtoRAW is new option for trigger transform
     #runs primarily using athenaHLT
     #literalRunargs used for when running with athena
-    executorSet.add(trigRecoExecutor(name = 'BSRDOtoRAW', skeletonFile = 'TrigUpgradeTest/full_menu.py',
+    executorSet.add(trigRecoExecutor(name = 'BSRDOtoRAW', skeletonFile = 'TriggerJobOpts/runHLT_standalone.py',
                                      exe = 'setsid athenaHLT.py', 
                                      # setsid is needed to fix the process-group id of child processes to be the same as mother process; discussed in https://its.cern.ch/jira/browse/ATR-20513 
                                      substep = 'b2r', tryDropAndReload = False,
diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/doc/METMenuSequences.md b/Trigger/TrigAlgorithms/TrigEFMissingET/doc/METMenuSequences.md
index 85942a71072bc078cffb46a7fcb076905d903d92..54dd7c3d373f46ccac10151c518e50923f876655 100644
--- a/Trigger/TrigAlgorithms/TrigEFMissingET/doc/METMenuSequences.md
+++ b/Trigger/TrigAlgorithms/TrigEFMissingET/doc/METMenuSequences.md
@@ -13,7 +13,7 @@ However the core ideas should still be valid throughout Run-3.
 ## InputMaker, reco, and hypo
 
 ```python
-include("TrigUpgradeTest/testHLT_MT.py")
+include("TriggerJobOpts/runHLT_standalone.py")
 
 from AthenaCommon.AlgSequence import AlgSequence
 topSequence = AlgSequence()
@@ -52,7 +52,7 @@ topSequence.L1Decoder.Chains="HLTChains"
 
 ```python 
 
-include("TrigUpgradeTest/testHLT_MT.py")
+include("TriggerJobOpts/runHLT_standalone.py")
 
 METalgorithm = "cell" # or tc, mht, pufit
 
diff --git a/Trigger/TrigAlgorithms/TrigGenericAlgs/share/test_ROBRequestAlgo.py b/Trigger/TrigAlgorithms/TrigGenericAlgs/share/test_ROBRequestAlgo.py
index 8af1890c2c1c5050442a1700598a1cb776aea4c8..1894f05ab96f2c14f10e8156855c4ef5bdc35249 100644
--- a/Trigger/TrigAlgorithms/TrigGenericAlgs/share/test_ROBRequestAlgo.py
+++ b/Trigger/TrigAlgorithms/TrigGenericAlgs/share/test_ROBRequestAlgo.py
@@ -2,7 +2,7 @@
 # Job options to test ROBRequestAlgo
 #
 
-include('TriggerJobOpts/runHLT_standalone.py')
+include('TriggerJobOpts/runHLT_standalone_run2.py')
 
 from TrigGenericAlgs.test_roblist import robs
 from TrigGenericAlgs.test_rosmap import ros_rob_map
diff --git a/Trigger/TrigAlgorithms/TrigT2CaloCommon/share/testDataAccessService.py b/Trigger/TrigAlgorithms/TrigT2CaloCommon/share/testDataAccessService.py
index 8c57957616fc7ded5cd7c0c21d7b672ea910fffd..77db9d229e7cc80f05a2e5d31c9cc77973f3a990 100644
--- a/Trigger/TrigAlgorithms/TrigT2CaloCommon/share/testDataAccessService.py
+++ b/Trigger/TrigAlgorithms/TrigT2CaloCommon/share/testDataAccessService.py
@@ -1,9 +1,11 @@
 #
-#  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+#  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 #
 
 doEmptyMenu=True
-include("TrigUpgradeTest/testHLT_MT.py")
+doWriteRDOTrigger = False
+doWriteBS = False
+include("TriggerJobOpts/runHLT_standalone.py")
 
 from AthenaCommon.AlgSequence import AlgSequence
 topSequence = AlgSequence()
diff --git a/Trigger/TrigSteer/L1Decoder/share/testL1Decoder.py b/Trigger/TrigSteer/L1Decoder/share/testL1Decoder.py
index 680a1363e977f6a8a9fdef3321dc2e1b6e009763..ccab99250e5f8b201528442502fb0c7d05e2855c 100644
--- a/Trigger/TrigSteer/L1Decoder/share/testL1Decoder.py
+++ b/Trigger/TrigSteer/L1Decoder/share/testL1Decoder.py
@@ -1,6 +1,8 @@
 from __future__ import print_function
 
-include("TrigUpgradeTest/testHLT_MT.py")
+doWriteRDOTrigger = False
+doWriteBS = False
+include("TriggerJobOpts/runHLT_standalone.py")
 
 
 from AthenaCommon.AlgSequence import AlgSequence
diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_EmptyMenu_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_EmptyMenu_build.py
index 0111047bc381fb057d06f9a7c1ce24b45b5ec990..2f5ef52bb2e4e014a95396b4e71b878243c4822a 100755
--- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_EmptyMenu_build.py
+++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_EmptyMenu_build.py
@@ -8,7 +8,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athenaHLT'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'data'
 ex.args = '-c "doEmptyMenu=True;BFieldAutoConfig=False;"'
 
diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_EmptyMenu_forkAndMT_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_EmptyMenu_forkAndMT_build.py
index 626b31a24072658864834f68a6f1ce8b185d8bc7..05063ed8a018a7a12365934d51e7fc07e0dbd89a 100755
--- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_EmptyMenu_forkAndMT_build.py
+++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_EmptyMenu_forkAndMT_build.py
@@ -8,7 +8,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athenaHLT'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'data'
 ex.forks = 2
 ex.threads = 2
diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_FullMenu_ROSRate_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_FullMenu_ROSRate_build.py
index 184276e2d643725775b69a18ae32920077b6aac5..8e9fce4150d0c9225f15fdea36d868f9183a948c 100755
--- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_FullMenu_ROSRate_build.py
+++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_FullMenu_ROSRate_build.py
@@ -8,7 +8,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps, Step
 
 ex = ExecStep.ExecStep()
 ex.type = 'athenaHLT'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'data'
 ex.args = '--ros2rob /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TrigP1Test/ATLASros2rob2018-r22format.py'
 
diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_FullMenu_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_FullMenu_build.py
index 93d7e3d582e5dbfd76c0238404052e4130322513..619f76f26451335956c73eab0274a9e1a4d45d56 100755
--- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_FullMenu_build.py
+++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_FullMenu_build.py
@@ -8,7 +8,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athenaHLT'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'data'
 
 test = Test.Test()
diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_FullMenu_decodeBS_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_FullMenu_decodeBS_build.py
index 498142b3cf8b937394f626a27e014071b5887a72..5a3ed7f9e5e0eb26aafcd3dd0194614d64bf084f 100755
--- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_FullMenu_decodeBS_build.py
+++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_FullMenu_decodeBS_build.py
@@ -8,7 +8,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 writeBS = ExecStep.ExecStep("WriteBS")
 writeBS.type = 'athenaHLT'
-writeBS.job_options = 'TrigUpgradeTest/full_menu.py'
+writeBS.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 writeBS.input = 'data'
 writeBS.args = '-o output'
 
diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_FullMenu_decodeBS_grid.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_FullMenu_decodeBS_grid.py
index 1b35b1dd5ca9f8611597867a23e1cd05872771ec..f5d6d688b32f3636781913d6094b774a019e28d1 100755
--- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_FullMenu_decodeBS_grid.py
+++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_FullMenu_decodeBS_grid.py
@@ -20,7 +20,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 writeBS = ExecStep.ExecStep("WriteBS")
 writeBS.type = 'athenaHLT'
-writeBS.job_options = 'TrigUpgradeTest/full_menu.py'
+writeBS.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 writeBS.input = 'data'
 writeBS.args = '-o output'
 
diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_FullMenu_fork_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_FullMenu_fork_build.py
index b04d72fb4b7a609ec6baa374ffaee280f30cee5a..021ac4898f5baa9d65e7ec8dcfdd58e26541c908 100755
--- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_FullMenu_fork_build.py
+++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_FullMenu_fork_build.py
@@ -8,7 +8,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athenaHLT'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'data'
 ex.forks = 8
 ex.threads = 1
diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_FullMenu_grid.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_FullMenu_grid.py
index bc127599cc5ec8053f4de4dc8735b135d56edbcb..457d8c0eced9fd832f5ed03ca919d9d6d29fb6c0 100755
--- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_FullMenu_grid.py
+++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_FullMenu_grid.py
@@ -20,7 +20,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athenaHLT'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'data'
 
 test = Test.Test()
diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_FullMenu_preloadTest_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_FullMenu_preloadTest_build.py
index 49854fd6f1a1dde251d5c4bc64281cb601648dd5..787be41a0d7380c080fa562069501ab7635775de 100755
--- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_FullMenu_preloadTest_build.py
+++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_FullMenu_preloadTest_build.py
@@ -33,7 +33,7 @@ sor = AthHLT.get_sor_params(run)['SORTime']
 
 ex = ExecStep.ExecStep()
 ex.type = 'athenaHLT'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = ''
 ex.explicit_input = True
 ex.args = '-f ./raw._0001.data -C "from AthenaCommon.AppMgr import ServiceMgr; ServiceMgr.HltEventLoopMgr.forceRunNumber=%d; ServiceMgr.HltEventLoopMgr.forceStartOfRunTime=%d" -R 999999 --sor-time=now --detector-mask=all' % (run, sor)
diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_SliceJet_fork_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_SliceJet_fork_build.py
index 0e05679a2485dd31df7880c6b17cc130406962dd..05a23f9f85f0769266e6e1842878dacc981c8091 100755
--- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_SliceJet_fork_build.py
+++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_SliceJet_fork_build.py
@@ -8,7 +8,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athenaHLT'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'data'
 ex.forks = 2
 ex.threads = 1
diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Cosmic_ID_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Cosmic_ID_build.py
index d33662915d04ae30263b6a638c5651c3a11caac0..5c414c69d37c9bf18e3c2b4b4cb66bcf312e9f11 100755
--- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Cosmic_ID_build.py
+++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Cosmic_ID_build.py
@@ -8,7 +8,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athenaHLT'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'data_cos_IDCosmic'
 ex.max_events = 100
 ex.args = '-c "setMenu=\'Cosmic_pp_run3_v1\';"'
diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Cosmic_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Cosmic_build.py
index 3c25a933877a3f58b3426031b018de725a7030a1..a3336183cac683aaf30c3c19464194e5efaa5bde 100755
--- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Cosmic_build.py
+++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Cosmic_build.py
@@ -8,7 +8,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athenaHLT'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'data_cos'
 ex.max_events = 100
 ex.args = '-c "setMenu=\'Cosmic_pp_run3_v1\';"'
diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Cosmic_muons_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Cosmic_muons_build.py
index 7ead84e0b65caee62292effa34129064169447a0..33e493e29b1035d4fc65b6ba9e893e14f43f0594 100755
--- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Cosmic_muons_build.py
+++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Cosmic_muons_build.py
@@ -8,7 +8,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athenaHLT'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'data_cos_CosmicMuons'
 ex.max_events = 100
 ex.args = '-c "setMenu=\'Cosmic_pp_run3_v1\';"'
diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_configConsistency_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_configConsistency_build.py
index 4c4f2bcc02836320313c30964509ce7b6004c1c4..ec2d04de00aa630ee1db1462ccbfb5f7315eac2a 100755
--- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_configConsistency_build.py
+++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_configConsistency_build.py
@@ -13,7 +13,7 @@ def make_exec_steps(nforks, nthreads, nslots):
     # Step dumping athenaHLT config
     ex = ExecStep.ExecStep('Config.'+id_str)
     ex.type = 'athenaHLT'
-    ex.job_options = 'TrigUpgradeTest/full_menu.py'
+    ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
     ex.input = 'data'
     ex.forks = nforks
     ex.threads = nthreads
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 c0f16d24fbca59fa4140d92700675a367d80c155..5196ef7383a29dac430e122e77c7804caff99a10 100755
--- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_T0Mon_build.py
+++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_T0Mon_build.py
@@ -10,7 +10,7 @@ from TrigValTools.TrigValSteering.Input import get_input
 # HLT step (BS->BS)
 hlt = ExecStep.ExecStep()
 hlt.type = 'athenaHLT'
-hlt.job_options = 'TrigUpgradeTest/full_menu.py'
+hlt.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 hlt.input = 'data'
 hlt.args = '-c "setMenu=\'PhysicsP1_pp_run3_v1\';"'
 hlt.args += ' -o output'
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 69c2fd169be26defa5ee3ad95008062cd579516a..152be7838a8c76a009adebbc8b624e61af02cce8 100755
--- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_T0Mon_grid.py
+++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_T0Mon_grid.py
@@ -19,7 +19,7 @@ from TrigValTools.TrigValSteering.Input import get_input
 # HLT step (BS->BS)
 hlt = ExecStep.ExecStep()
 hlt.type = 'athenaHLT'
-hlt.job_options = 'TrigUpgradeTest/full_menu.py'
+hlt.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 hlt.input = 'data'
 hlt.args = '-c "setMenu=\'PhysicsP1_pp_run3_v1\';"'
 hlt.args += ' -o output'
diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_build.py
index 78e7233a7dd6f01e2b106fc2fafbfa9a04e6e6bd..913e30b28de19069682b1a4c1d15b66b57273685 100755
--- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_build.py
+++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_build.py
@@ -8,7 +8,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athenaHLT'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'data'
 ex.args = '-c "setMenu=\'PhysicsP1_pp_run3_v1\';"'
 
diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_grid.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_grid.py
index df94e11dfa7f39cbe2e88dda20479d9317f496ee..19eebfc42f1e45464a57eec7e34af692e49a26eb 100755
--- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_grid.py
+++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_grid.py
@@ -20,7 +20,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athenaHLT'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'data'
 ex.args = '-c "setMenu=\'PhysicsP1_pp_run3_v1\';"'
 
diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Phys_ROSRate_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Phys_ROSRate_build.py
index b27841e7eb0806aed81bfed43bd0b1f687e47ee7..0498ee8d70a124e013fbc2992507f8023e0fd92a 100755
--- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Phys_ROSRate_build.py
+++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Phys_ROSRate_build.py
@@ -8,7 +8,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps, Step
 
 ex = ExecStep.ExecStep()
 ex.type = 'athenaHLT'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'data'
 ex.max_events = 200
 ex.args = '-c "setMenu=\'Physics_pp_run3_v1\';"'
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/Calo.py b/Trigger/TrigValidation/TrigUpgradeTest/share/Calo.py
index 3f62d93b72372584ebd98e403c96f0c794f1e3e6..d6914b2aa65c3a5e34b9740e5ca4a6c8c6bf48ef 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/share/Calo.py
+++ b/Trigger/TrigValidation/TrigUpgradeTest/share/Calo.py
@@ -1,13 +1,15 @@
 #
-#  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+#  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 #
 
 if not 'doHLTCaloTopo' in dir() :
   doHLTCaloTopo=True
 if not 'doL2Egamma' in dir():
   doL2Egamma=True
-createHLTMenuExternally=True  
-include("TrigUpgradeTest/testHLT_MT.py")
+createHLTMenuExternally=True
+doWriteRDOTrigger = False
+doWriteBS = False
+include("TriggerJobOpts/runHLT_standalone.py")
 
 from AthenaCommon.AlgSequence import AlgSequence
 topSequence = AlgSequence()
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/CaloRinger.py b/Trigger/TrigValidation/TrigUpgradeTest/share/CaloRinger.py
index 41602cd0881ea70b44c2cec5c100b294699922ae..e91bcdfa3260a7443380dd28b242358ab614cbde 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/share/CaloRinger.py
+++ b/Trigger/TrigValidation/TrigUpgradeTest/share/CaloRinger.py
@@ -1,13 +1,14 @@
 #
-#  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+#  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 #
 
 if not 'doHLTCaloTopo' in dir() :
   doHLTCaloTopo=True
 if not 'doL2Egamma' in dir():
   doL2Egamma=True
-
-include("TrigUpgradeTest/testHLT_MT.py")
+doWriteRDOTrigger = False
+doWriteBS = False
+include("TriggerJobOpts/runHLT_standalone.py")
 
 from AthenaCommon.AlgSequence import AlgSequence
 topSequence = AlgSequence()
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/IDCalo.py b/Trigger/TrigValidation/TrigUpgradeTest/share/IDCalo.py
index 99221adc7be0c1c13194dda4bf143e18a85a0349..61fb3634ee5a3f9f43f29256a089750eaf529049 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/share/IDCalo.py
+++ b/Trigger/TrigValidation/TrigUpgradeTest/share/IDCalo.py
@@ -1,8 +1,10 @@
 #
-#  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+#  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 #
 
-include("TrigUpgradeTest/testHLT_MT.py")
+doWriteRDOTrigger = False
+doWriteBS = False
+include("TriggerJobOpts/runHLT_standalone.py")
 
 from AthenaCommon.AlgSequence import AlgSequence
 topSequence = AlgSequence()
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/MinBias.py b/Trigger/TrigValidation/TrigUpgradeTest/share/MinBias.py
index 22cdf231f81a73024eafd93cf9cab803e40be6a2..f15c86684962166787da37fc7eb7ef3ae2960588 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/share/MinBias.py
+++ b/Trigger/TrigValidation/TrigUpgradeTest/share/MinBias.py
@@ -1,8 +1,10 @@
 #
-#  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+#  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 #
 createHLTMenuExternally=True
-include("TrigUpgradeTest/testHLT_MT.py")
+doWriteRDOTrigger = False
+doWriteBS = False
+include("TriggerJobOpts/runHLT_standalone.py")
 
 from TrigUpgradeTest.TestUtils import makeChain
 from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import ChainStep
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/PEBDSTest.py b/Trigger/TrigValidation/TrigUpgradeTest/share/PEBDSTest.py
index 4b151a272db15263512c6afd7db0e0e195f33360..b9348ad2204526ad604503e39e7d629f463593e6 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/share/PEBDSTest.py
+++ b/Trigger/TrigValidation/TrigUpgradeTest/share/PEBDSTest.py
@@ -1,5 +1,5 @@
 #
-#  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+#  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 #
 
 '''
@@ -147,7 +147,7 @@ TriggerFlags.EgammaSlice.setAll()
 TriggerFlags.MuonSlice.setAll()
 
 # Set up everything to run HLT
-include('TrigUpgradeTest/testHLT_MT.py')
+include('TriggerJobOpts/runHLT_standalone.py')
 
 # Generate the menu
 menu = GenerateMenuMT()
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/egammaRinger.py b/Trigger/TrigValidation/TrigUpgradeTest/share/egammaRinger.py
index 98e44982c8e80eb5d6e34aa3a314a44dc85cca20..9db339131477fb960b15fb2df316daf531c54471 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/share/egammaRinger.py
+++ b/Trigger/TrigValidation/TrigUpgradeTest/share/egammaRinger.py
@@ -7,7 +7,9 @@ from AthenaCommon.CFElements import seqAND
 from ViewAlgs.ViewAlgsConf import EventViewCreatorAlgorithm
 
 
-include("TrigUpgradeTest/testHLT_MT.py")
+doWriteRDOTrigger = False
+doWriteBS = False
+include("TriggerJobOpts/runHLT_standalone.py")
 from AthenaCommon.AlgSequence import AlgSequence
 topSequence = AlgSequence()
 isData = False
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/full_menu.py b/Trigger/TrigValidation/TrigUpgradeTest/share/full_menu.py
deleted file mode 100644
index 43e3ba23fd392201d0d8a988bf68697a0a4229c0..0000000000000000000000000000000000000000
--- a/Trigger/TrigValidation/TrigUpgradeTest/share/full_menu.py
+++ /dev/null
@@ -1,83 +0,0 @@
-#
-#  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
-#
-
-##################################################################
-# Pre-setup
-##################################################################
-from AthenaCommon.Logging import logging
-__log = logging.getLogger('full_menu')
-
-##################################################################
-# Include the common configuration
-##################################################################
-include("TrigUpgradeTest/testHLT_MT.py")
-
-##################################################################
-# Generate the menu
-##################################################################
-from TriggerMenuMT.HLTMenuConfig.Menu.GenerateMenuMT import GenerateMenuMT
-menu = GenerateMenuMT()
-
-def signaturesToGenerate():
-    TriggerFlags.Slices_all_setOff()
-    for sig in opt.enabledSignatures:
-        eval(sig)    
-        
-menu.overwriteSignaturesWith(signaturesToGenerate)
-allChainConfigs = menu.generateMT()
-
-##########################################
-# Debugging for view cross-dependencies
-##########################################
-if opt.reverseViews or opt.filterViews:
-    from TriggerJobOpts.TriggerConfig import collectViewMakers
-    viewMakers = collectViewMakers( topSequence )
-    theFilter = []
-    if opt.filterViews:
-        theFilter = [ "Cache", "EventInfo", "HLT_EFHistoPrmVtx" ]
-    for alg in viewMakers:
-        alg.ReverseViewsDebug = opt.reverseViews
-        alg.FallThroughFilter = theFilter
-
-##########################################
-# Configure trigger output using parts of the NewJO configuration
-# in a somewhat hacky way
-##########################################
-from TriggerJobOpts.TriggerConfig import collectHypos, collectFilters, collectDecisionObjects, triggerOutputCfg, collectHypoDecisionObjects
-from AthenaCommon.CFElements import findAlgorithm,findSubSequence
-hypos = collectHypos(findSubSequence(topSequence, "HLTAllSteps"))
-filters = collectFilters(findSubSequence(topSequence, "HLTAllSteps"))
-
-# find DecisionSummaryMakerAlg
-summaryMakerAlg = findAlgorithm(topSequence, "DecisionSummaryMakerAlg")
-if not summaryMakerAlg:
-    __log.warning("Failed to find DecisionSummaryMakerAlg")
-
-# try to find L1Decoder
-l1decoder = findAlgorithm(topSequence,'L1Decoder')
-if not l1decoder:
-    l1decoder = findAlgorithm(topSequence,'L1EmulationTest')
-if l1decoder and summaryMakerAlg:
-    decObj = collectDecisionObjects( hypos, filters, l1decoder, summaryMakerAlg )
-    decObjHypoOut = collectHypoDecisionObjects(hypos, inputs=False, outputs=True)
-    __log.debug("Decision Objects to write to output [hack method - should be replaced with triggerRunCfg()]")
-    __log.debug(decObj)
-else:
-    __log.warning("Failed to find L1Decoder or DecisionSummaryMakerAlg, cannot determine Decision names for output configuration")
-    decObj = []
-    decObjHypoOut = []
-
-
-from AthenaConfiguration.AllConfigFlags import ConfigFlags
-from AthenaCommon.Configurable import Configurable
-Configurable.configurableRun3Behavior+=1
-acc, edmSet = triggerOutputCfg(ConfigFlags, decObj, decObjHypoOut, summaryMakerAlg)
-Configurable.configurableRun3Behavior-=1
-acc.appendToGlobals()
-
-##########################################
-# Print top sequence for debugging
-##########################################
-from AthenaCommon.AlgSequence import dumpSequence, AthSequencer
-dumpSequence(topSequence)
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/full_menu_cf.py b/Trigger/TrigValidation/TrigUpgradeTest/share/full_menu_cf.py
index 64379bb207efb02b3f88969f9acb19d52b8b1413..33e60eecdb2e6b8e823ad658c7f871c95c400717 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/share/full_menu_cf.py
+++ b/Trigger/TrigValidation/TrigUpgradeTest/share/full_menu_cf.py
@@ -1,12 +1,14 @@
 #
-#  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+#  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 #
 
 from AthenaCommon.Logging import logging
 __log = logging.getLogger('full_menu')
 
 createHLTMenuExternally=True # menu will be build up explicitly here 
-include("TrigUpgradeTest/testHLT_MT.py")
+doWriteRDOTrigger = False
+doWriteBS = False
+include("TriggerJobOpts/runHLT_standalone.py")
 
 ##########################################
 # menu
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/photon.withViews.py b/Trigger/TrigValidation/TrigUpgradeTest/share/photon.withViews.py
index f0b0bb7d0e97e61e55934f3219c06aa7bfa7702c..ae7b26367026271a7d1d8e291b4639c325b9f239 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/share/photon.withViews.py
+++ b/Trigger/TrigValidation/TrigUpgradeTest/share/photon.withViews.py
@@ -1,8 +1,10 @@
 #
-#  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+#  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 #
 
-include("TrigUpgradeTest/testHLT_MT.py")
+doWriteRDOTrigger = False
+doWriteBS = False
+include("TriggerJobOpts/runHLT_standalone.py")
 
 testChains = ["HLT_g5_etcut"]
 
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/simpleJetJob.py b/Trigger/TrigValidation/TrigUpgradeTest/share/simpleJetJob.py
index d5d763823efcfa9f2fff4fd41f1b691fc6284393..a1daadf68defce88744c3b5b58e69347ae5316b0 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/share/simpleJetJob.py
+++ b/Trigger/TrigValidation/TrigUpgradeTest/share/simpleJetJob.py
@@ -1,8 +1,9 @@
 #
-#  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+#  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 #
-
-include("TrigUpgradeTest/testHLT_MT.py")
+doWriteRDOTrigger = False
+doWriteBS = False
+include("TriggerJobOpts/runHLT_standalone.py")
 
 from AthenaCommon.AlgSequence import AlgSequence
 topSequence = AlgSequence()
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/testHLT_MT.py b/Trigger/TrigValidation/TrigUpgradeTest/share/testHLT_MT.py
deleted file mode 100644
index 184e5562a21f2fd33281a41aa3d58bbcdbb0d45e..0000000000000000000000000000000000000000
--- a/Trigger/TrigValidation/TrigUpgradeTest/share/testHLT_MT.py
+++ /dev/null
@@ -1,572 +0,0 @@
-# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
-################################################################################
-# TrigUpgradeTest/testHLT_MT.py
-#
-#   Job options for trigger MT tests to be used as first include
-#   in signature specific job options. Example:
-#
-#      include('TrigUpgradeTest/testHLT_MT.py')
-#      ... your job options ...
-#
-# Several flags are supported on the command line to steer these job options.
-# See below for a complete list of all flags and their default value. If used
-# in athena.py the auto-configuration is used to setup most flags correctly.
-#
-# Additional "modifiers" can be specified by using
-#   -c "myModifier=True/False"
-# Existing modifiers can be found in "TriggerJobOpts/python/Modifiers.py"
-#
-class opt:
-    setupForMC       = None           # force MC setup
-    setMenu          = 'LS2_v1'
-    setDetDescr      = None           # force geometry tag
-    setGlobalTag     = None           # force global conditions tag
-    useCONDBR2       = True           # if False, use run-1 conditions DB
-    condOverride     = {}             # overwrite conditions folder tags e.g. '{"Folder1":"Tag1", "Folder2":"Tag2"}'
-    doHLT            = True           # run HLT?
-    doID             = True           # TriggerFlags.doID
-    doCalo           = True           # TriggerFlags.doCalo
-    doMuon           = True           # TriggerFlags.doMuon
-    doDBConfig       = None           # dump trigger configuration
-    trigBase         = None           # file name for trigger config dump
-    enableCostD3PD   = False          # enable cost monitoring
-    doWriteRDOTrigger = False         # Write out RDOTrigger?
-    doWriteBS        = True           # Write out BS?
-    doL1Unpacking    = True           # decode L1 data in input file if True, else setup emulation
-    doL1Sim          = False          # (re)run L1 simulation
-    isOnline         = True           # isOnline flag
-    doEmptyMenu      = False          # Disable all chains, except those re-enabled by specific slices
-    createHLTMenuExternally = False   # Set to True if the menu is build manually outside testHLT_MT.py
-    endJobAfterGenerate = False       # Finish job after menu generation
-    failIfNoProxy     = False         # Sets the SGInputLoader.FailIfNoProxy property
-    decodeLegacyL1 = True             # Decode L1 RoIs from legacy L1 systems through RoIBResult for HLT seeding
-    decodePhaseIL1 = False            # Decode L1 RoIs from Run-3 L1 systems through L1TriggerResult for HLT seeding
-#Individual slice flags
-    doEgammaSlice     = True
-    doMuonSlice       = True
-    doMinBiasSlice    = True
-    doJetSlice        = True
-    doMETSlice        = True
-    doBjetSlice       = True
-    doTauSlice        = True
-    doCombinedSlice   = True
-    doBphysicsSlice   = True
-    doStreamingSlice  = True
-    doMonitorSlice    = True
-    doBeamspotSlice   = True
-    reverseViews      = False
-    filterViews       = False
-    enabledSignatures = []
-    disabledSignatures = []
-
-
-#
-################################################################################
-from TriggerJobOpts.TriggerFlags import TriggerFlags
-from AthenaCommon.AppMgr import theApp, ServiceMgr as svcMgr
-from AthenaCommon.Logging import logging
-log = logging.getLogger('testHLT_MT.py')
-
-#-------------------------------------------------------------
-# Setup options
-#-------------------------------------------------------------
-log.info('Setup options:')
-defaultOptions = [a for a in dir(opt) if not a.startswith('__')]
-for option in defaultOptions:
-    if option in globals():
-        setattr(opt, option, globals()[option])
-        print(' %20s = %s' % (option, getattr(opt, option)))
-    else:        
-        print(' %20s = (Default) %s' % (option, getattr(opt, option)))
-
-
-import re
-
-sliceRe = re.compile("^do.*Slice")
-slices = [a for a in dir(opt) if sliceRe.match(a)]
-if opt.doEmptyMenu is True:
-    log.info("Disabling all slices")
-    for s in slices:
-        if s in globals():
-            log.info("re-enabling %s ", s)
-            setattr(opt, s, globals()[s])
-        else:
-            setattr(opt, s, False)
-else:
-    for s in slices:
-        setattr(opt, s, True)
-
-# Setting the TriggerFlags.XXXSlice to use in TriggerMenuMT
-# This is temporary and will be re-worked for after M3.5
-for s in slices:
-    signature = s[2:].replace('Slice', '')
-
-    if eval('opt.'+s) is True:
-        enabledSig = 'TriggerFlags.'+signature+'Slice.setAll()'
-        opt.enabledSignatures.append( enabledSig )
-    else:
-        disabledSig = 'TriggerFlags.'+signature+'Slice.setAll()'
-        opt.disabledSignatures.append( disabledSig )
-
-#-------------------------------------------------------------
-# Setting Global Flags
-#-------------------------------------------------------------
-from AthenaCommon.GlobalFlags import globalflags
-from AthenaCommon.AthenaCommonFlags import athenaCommonFlags
-from AthenaCommon.BeamFlags import jobproperties
-import TriggerJobOpts.Modifiers
-
-# Auto-configuration for athena
-if len(athenaCommonFlags.FilesInput())>0:
-    import PyUtils.AthFile as athFile
-    af = athFile.fopen(athenaCommonFlags.FilesInput()[0])
-    globalflags.InputFormat = 'bytestream' if af.fileinfos['file_type']=='bs' else 'pool'
-    globalflags.DataSource = 'data' if af.fileinfos['evt_type'][0]=='IS_DATA' else 'geant4'
-    # Set isOnline=False for MC inputs unless specified in the options
-    if globalflags.DataSource() != 'data' and 'isOnline' not in globals():
-        log.info("Setting isOnline = False for MC input")
-        opt.isOnline = False
-    # Set geometry and conditions tags
-    if opt.setDetDescr is None:
-        opt.setDetDescr = af.fileinfos.get('geometry',None)
-    if opt.setGlobalTag is None:
-        opt.setGlobalTag = af.fileinfos.get('conditions_tag',None) or \
-            (TriggerFlags.OnlineCondTag() if opt.isOnline else 'CONDBR2-BLKPA-2018-13')
-    TriggerJobOpts.Modifiers._run_number = af.fileinfos['run_number'][0]
-
-else:   # athenaHLT
-    globalflags.InputFormat = 'bytestream'
-    globalflags.DataSource = 'data' if not opt.setupForMC else 'data'
-    if '_run_number' not in dir():
-        import PyUtils.AthFile as athFile
-        from AthenaCommon.AthenaCommonFlags import athenaCommonFlags
-        af = athFile.fopen(athenaCommonFlags.BSRDOInput()[0])
-        _run_number = af.run_number[0]
-
-    TriggerJobOpts.Modifiers._run_number = _run_number   # noqa, set by athenaHLT
-
-    from RecExConfig.RecFlags import rec
-    rec.RunNumber =_run_number
-    del _run_number
-
-
-# Set final Cond/Geo tag based on input file, command line or default
-globalflags.DetDescrVersion = opt.setDetDescr or TriggerFlags.OnlineGeoTag()
-globalflags.ConditionsTag = opt.setGlobalTag or TriggerFlags.OnlineCondTag()
-
-# Other defaults
-jobproperties.Beam.beamType = 'collisions'
-jobproperties.Beam.bunchSpacing = 25
-globalflags.DatabaseInstance='CONDBR2' if opt.useCONDBR2 else 'COMP200'
-athenaCommonFlags.isOnline.set_Value_and_Lock(opt.isOnline)
-
-log.info('Configured the following global flags:')
-globalflags.print_JobProperties()
-
-# Set default doL1Sim option depending on input type (if not set explicitly)
-if 'doL1Sim' not in globals():
-    opt.doL1Sim = globalflags.DataSource != 'data'
-    log.info('Setting default doL1Sim=%s because globalflags.DataSource=%s', opt.doL1Sim, globalflags.DataSource())
-
-#-------------------------------------------------------------
-# Transfer flags into TriggerFlags
-#-------------------------------------------------------------
-
-# To turn off HLT for athena running
-TriggerFlags.doHLT = bool(opt.doHLT)
-    
-# To extract the Trigger configuration
-TriggerFlags.Online.doDBConfig = bool(opt.doDBConfig)
-if opt.trigBase is not None:
-    TriggerFlags.Online.doDBConfigBaseName = opt.trigBase
-
-# Setup list of modifiers
-# Common modifiers for MC and data
-setModifiers = ['noLArCalibFolders',
-                'ForceMuonDataType',
-                'useNewRPCCabling',
-                'enableCostMonitoring',
-                #'enableCoherentPS',
-                'useOracle',
-                'enableHotIDMasking',
-                'openThresholdRPCCabling',
-]
-
-if globalflags.DataSource.is_geant4():  # MC modifiers
-    setModifiers += ['BFieldFromDCS']
-else:           # More data modifiers
-    setModifiers += ['allowCOOLUpdates',
-                     'BFieldAutoConfig',
-                     'useHLTMuonAlign',
-                     #Check for beamspot quality flag
-                     'UseBeamSpotFlagForBjet',
-                     'UseParamFromDataForBjet',
-                     #Use online luminosity
-                     'useOnlineLumi',
-                     #for running with real data
-                     'DisableMdtT0Fit',
-                     #Setup mufast tuning for data
-                     'UseLUTFromDataForMufast',
-                     'UseRPCTimeDelayFromDataForMufast',
-                     #Set muComb/muIso Backextrapolator tuned for real data
-                     'UseBackExtrapolatorDataForMuIso',
-                     #Monitoring for L1 muon group
-                     #'muCTPicheck',
-                     #Monitoring L1Topo at ROB level
-                     #'L1TopoCheck',
-                     'forceTileRODMap',
-    ]
-
-#make some more common trig cost operations easier to setup
-if opt.enableCostD3PD:
-    enableCostMonitoring = True # This goes without saying!
-    enableCostForCAF = True # This sets the cost mon to monitor every event and always export the data.
-
-
-TriggerFlags.doID = opt.doID
-TriggerFlags.doMuon = opt.doMuon
-TriggerFlags.doCalo = opt.doCalo
-
-#-------------------------------------------------------------
-# Modifiers
-#-------------------------------------------------------------
-modifierList=[]
-from TrigConfigSvc.TrigConfMetaData import TrigConfMetaData
-meta = TrigConfMetaData()
-    
-for mod in dir(TriggerJobOpts.Modifiers):
-    if not hasattr(getattr(TriggerJobOpts.Modifiers,mod),'preSetup'): continue
-    if mod in dir():  #allow turning on and off modifiers by variable of same name
-        if globals()[mod]:
-            if mod not in setModifiers:
-                setModifiers+=[mod]
-        else:
-            if mod in setModifiers: setModifiers.remove(mod)
-    if mod in setModifiers:
-        modifierList+=[getattr(TriggerJobOpts.Modifiers,mod)()]
-        meta.Modifiers += [mod]    # store in trig conf meta data
-        setModifiers.remove(mod)
-
-if setModifiers:
-    log.error('Unknown modifier(s): '+str(setModifiers))
-
-
-# never include this
-include.block("RecExCond/RecExCommon_flags.py")
-
-#-------------------------------------------------------------
-# Setting DetFlags
-#-------------------------------------------------------------
-if globalflags.InputFormat.is_bytestream():
-    TriggerFlags.doLVL1 = False
-
-from AthenaCommon.DetFlags import DetFlags
-if TriggerFlags.doLVL1():
-    DetFlags.detdescr.all_setOn()
-if TriggerFlags.doID():
-    DetFlags.detdescr.ID_setOn()
-    DetFlags.makeRIO.ID_setOn()
-else:
-    DetFlags.ID_setOff()
-if TriggerFlags.doMuon():
-    DetFlags.detdescr.Muon_setOn()
-    DetFlags.makeRIO.all_setOn()
-else:
-    DetFlags.Muon_setOff()
-if TriggerFlags.doCalo():
-    DetFlags.detdescr.Calo_setOn()
-    from LArConditionsCommon.LArCondFlags import larCondFlags
-    larCondFlags.LoadElecCalib.set_Value_and_Lock(False)
-    from TrigT2CaloCommon.CaloDef import setMinimalCaloSetup
-    setMinimalCaloSetup()
-else:
-    DetFlags.Calo_setOff()
-
-DetFlags.Print()
-
-# RecEx flags
-from RecExConfig.RecFlags import rec
-rec.doWriteESD = False
-rec.doWriteAOD = False
-rec.doWriteTAG = False
-rec.doESD = False
-rec.doAOD = False
-rec.doTruth = False
-
-#-------------------------------------------------------------
-# Apply modifiers
-#-------------------------------------------------------------
-for mod in modifierList:
-    mod.preSetup()
-
-#--------------------------------------------------------------
-# Conditions setup.
-#--------------------------------------------------------------
-from IOVDbSvc.CondDB import conddb #This import will also set up CondInputLoader
-conddb.setGlobalTag(globalflags.ConditionsTag())
-
-from AthenaCommon.AlgSequence import AlgSequence
-topSequence = AlgSequence()
-
-#--------------------------------------------------------------
-# Increase scheduler checks and verbosity
-#--------------------------------------------------------------
-from AthenaCommon.AlgScheduler import AlgScheduler
-AlgScheduler.CheckDependencies( True )
-AlgScheduler.ShowControlFlow( True )
-AlgScheduler.ShowDataDependencies( True )
-AlgScheduler.EnableVerboseViews( True )
-
-#--------------------------------------------------------------
-# Set the FailIfNoProxy property of SGInputLoader
-#--------------------------------------------------------------
-if not hasattr(topSequence,"SGInputLoader"):
-    log.error('Cannot set FailIfNoProxy property because SGInputLoader not found in topSequence')
-    theApp.exit(1)
-topSequence.SGInputLoader.FailIfNoProxy = opt.failIfNoProxy
-
-
-#--------------------------------------------------------------
-# Event Info setup
-#--------------------------------------------------------------
-# If no xAOD::EventInfo is found in a POOL file, schedule conversion from old EventInfo
-if globalflags.InputFormat.is_pool():
-    from RecExConfig.ObjKeyStore import objKeyStore
-    from PyUtils.MetaReaderPeeker import convert_itemList
-    objKeyStore.addManyTypesInputFile(convert_itemList(layout='#join'))
-    if ( not objKeyStore.isInInput("xAOD::EventInfo") ) and ( not hasattr(topSequence, "xAODMaker::EventInfoCnvAlg") ):
-        from xAODEventInfoCnv.xAODEventInfoCnvAlgDefault import xAODEventInfoCnvAlgDefault
-        xAODEventInfoCnvAlgDefault(sequence=topSequence)
-
-# ----------------------------------------------------------------
-# Detector geometry 
-# ----------------------------------------------------------------
-# Always enable AtlasFieldSvc
-from AthenaCommon.DetFlags import DetFlags
-DetFlags.BField_setOn()
-include ("RecExCond/AllDet_detDescr.py")
-
-from RegionSelector.RegSelSvcDefault import RegSelSvcDefault
-svcMgr += RegSelSvcDefault()
-
-if TriggerFlags.doID():
-    include( "InDetRecExample/InDetRecCabling.py" )
-
-if TriggerFlags.doCalo():
-    from TrigT2CaloCommon.TrigT2CaloCommonConfig import TrigDataAccess
-    svcMgr.ToolSvc += TrigDataAccess()
-    if globalflags.InputFormat.is_pool():
-        TriggerFlags.doTransientByteStream = True # enable transient BS if TrigDataAccess is used with pool data
-
-if TriggerFlags.doMuon():
-    TriggerFlags.MuonSlice.doTrigMuonConfig=True
-    import MuonCnvExample.MuonCablingConfig  # noqa: F401
-    import MuonRecExample.MuonReadCalib      # noqa: F401
-    if globalflags.InputFormat.is_pool():
-        include( "MuonByteStreamCnvTest/jobOptions_MuonRDOToDigit.py" )
-
-    include ("MuonRecExample/MuonRecLoadTools.py")
-
-# ----------------------------------------------------------------
-# Pool input
-# ----------------------------------------------------------------
-if globalflags.InputFormat.is_pool():
-    import AthenaPoolCnvSvc.ReadAthenaPool   # noqa
-    svcMgr.AthenaPoolCnvSvc.PoolAttributes = [ "DEFAULT_BUFFERSIZE = '2048'" ]
-    svcMgr.PoolSvc.AttemptCatalogPatch=True
-    # enable transient BS 
-    if TriggerFlags.doTransientByteStream():
-        log.info("setting up transient BS")
-        include( "TriggerJobOpts/jobOfragment_TransBS_standalone.py" )
-     
-# ----------------------------------------------------------------
-# ByteStream input
-# ----------------------------------------------------------------
-elif globalflags.InputFormat.is_bytestream():
-
-    # This is only needed running athena (as opposed to athenaHLT)
-    if not hasattr(svcMgr,"ByteStreamCnvSvc"):
-        from ByteStreamCnvSvc import ReadByteStream   # noqa
-        # Define the input
-        svcMgr.ByteStreamInputSvc.FullFileName = athenaCommonFlags.FilesInput()
-        theApp.ExtSvc += [ "ByteStreamCnvSvc"]
-
-    # Online specific setup of BS converters
-    include( "TriggerJobOpts/jobOfragment_ReadBS_standalone.py" )    
-
-
-# ---------------------------------------------------------------
-# Trigger config
-# ---------------------------------------------------------------
-TriggerFlags.triggerMenuSetup = opt.setMenu
-TriggerFlags.readLVL1configFromXML = True
-TriggerFlags.outputLVL1configFile = None
-
-from TrigConfigSvc.TrigConfigSvcCfg import generateL1Menu
-l1JsonFile = generateL1Menu()
-
-from TrigConfigSvc.TrigConfigSvcCfg import getL1ConfigSvc
-svcMgr += getL1ConfigSvc()
-
-
-# ---------------------------------------------------------------
-# Level 1 simulation
-# ---------------------------------------------------------------
-if opt.doL1Sim:
-    from TriggerJobOpts.Lvl1SimulationConfig import Lvl1SimulationSequence
-    topSequence += Lvl1SimulationSequence()
-
-
-# ---------------------------------------------------------------
-# HLT prep: RoIBResult and L1Decoder
-# ---------------------------------------------------------------
-if opt.doL1Unpacking:
-    if globalflags.InputFormat.is_bytestream():
-        # Create inputs for L1Decoder from ByteStream
-        from TrigT1ResultByteStream.TrigT1ResultByteStreamConfig import L1ByteStreamDecodersRecExSetup
-        L1ByteStreamDecodersRecExSetup(
-            enableRun2L1=opt.decodeLegacyL1,
-            enableRun3L1=opt.decodePhaseIL1)
-    if globalflags.InputFormat.is_bytestream() or opt.doL1Sim:
-        from L1Decoder.L1DecoderConfig import L1Decoder
-        l1decoder = L1Decoder("L1Decoder")
-        if not opt.decodeLegacyL1:
-            l1decoder.RoIBResult = ""
-        if not opt.decodePhaseIL1:
-            l1decoder.L1TriggerResult = ""
-        topSequence += l1decoder
-    else:
-        from TrigUpgradeTest.TestUtils import L1EmulationTest
-        topSequence += L1EmulationTest()
-
-
-# ---------------------------------------------------------------
-# HLT generation
-# ---------------------------------------------------------------
-
-if not opt.createHLTMenuExternally:
-
-    from TriggerMenuMT.HLTMenuConfig.Menu.GenerateMenuMT import GenerateMenuMT
-    menu = GenerateMenuMT()
-
-    # define the function that enable the signatures
-    def signaturesToGenerate():
-        TriggerFlags.Slices_all_setOff()
-        for sig in opt.enabledSignatures:
-            eval(sig)
-
-    menu.overwriteSignaturesWith(signaturesToGenerate)
-
-    # generating the HLT structure requires 
-    # the L1Decoder to be defined in the topSequence
-    menu.generateMT()
-
-    if opt.endJobAfterGenerate:
-        import sys
-        sys.exit(0)
-
-
-
-from TrigConfigSvc.TrigConfigSvcCfg import getHLTConfigSvc, setupHLTPrescaleCondAlg
-svcMgr += getHLTConfigSvc()
-setupHLTPrescaleCondAlg()
-
-if not opt.createHLTMenuExternally:
-    # the generation of the prescale set file from the menu (with all prescales set to 1)
-    # is not really needed. If no file is provided all chains are either enabled or disabled,
-    # depending on the property L1Decoder.PrescalingTool.KeepUnknownChains being True or False
-    from TrigConfigSvc.TrigConfigSvcCfg import createHLTPrescalesFileFromMenu
-    createHLTPrescalesFileFromMenu()
-
-
-
-# ---------------------------------------------------------------
-# ID conditions
-# ---------------------------------------------------------------
-
-if TriggerFlags.doID:
-    from InDetTrigRecExample.InDetTrigFlags import InDetTrigFlags
-    InDetTrigFlags.doPixelClusterSplitting = False
-  
-    # PixelLorentzAngleSvc and SCTLorentzAngleSvc
-    from AthenaCommon.Include import include
-    include("InDetRecExample/InDetRecConditionsAccess.py")
-
-
-# ---------------------------------------------------------------
-# Monitoring
-# ---------------------------------------------------------------
-if not hasattr(svcMgr, 'THistSvc'):
-    from GaudiSvc.GaudiSvcConf import THistSvc
-    svcMgr += THistSvc()
-if hasattr(svcMgr.THistSvc, "Output"):
-    from TriggerJobOpts.HLTTriggerGetter import setTHistSvcOutput
-    setTHistSvcOutput(svcMgr.THistSvc.Output)
-
-#-------------------------------------------------------------
-# Apply modifiers
-#-------------------------------------------------------------
-for mod in modifierList:
-    mod.postSetup()
-
-#-------------------------------------------------------------
-# Conditions overrides
-#-------------------------------------------------------------    
-if len(opt.condOverride)>0:
-    for folder,tag in opt.condOverride.iteritems():
-        log.warning('Overriding folder %s with tag %s', folder, tag)
-        conddb.addOverride(folder,tag)
-
-if svcMgr.MessageSvc.OutputLevel<INFO:
-    from AthenaCommon.JobProperties import jobproperties
-    jobproperties.print_JobProperties('tree&value')
-    print(svcMgr)
-
-#-------------------------------------------------------------
-# Use parts of NewJO
-#-------------------------------------------------------------
-from AthenaCommon.Configurable import Configurable
-Configurable.configurableRun3Behavior+=1
-from TriggerJobOpts.TriggerConfig import triggerIDCCacheCreatorsCfg
-from AthenaConfiguration.AllConfigFlags import ConfigFlags
-# Output flags
-isPartition = len(ConfigFlags.Trigger.Online.partitionName) > 0
-if opt.doWriteRDOTrigger:
-    if isPartition:
-        log.error('Cannot use doWriteRDOTrigger in athenaHLT or partition')
-        theApp.exit(1)
-    rec.doWriteRDO = False  # RecExCommon flag
-    ConfigFlags.Output.doWriteRDO = True  # new JO flag
-    ConfigFlags.Output.RDOFileName = 'RDO_TRIG.pool.root'  # new JO flag
-if opt.doWriteBS:
-    rec.doWriteBS = True  # RecExCommon flag
-    TriggerFlags.writeBS = True  # RecExCommon flag
-    ConfigFlags.Output.doWriteBS = True  # new JO flag
-    ConfigFlags.Trigger.writeBS = True  # new JO flag
-
-# ID Cache Creators
-ConfigFlags.lock()
-triggerIDCCacheCreatorsCfg(ConfigFlags).appendToGlobals()
-Configurable.configurableRun3Behavior-=1
-
-#-------------------------------------------------------------
-# Non-ComponentAccumulator Cost Monitoring
-#-------------------------------------------------------------
-
-from AthenaCommon.AppMgr import ServiceMgr
-from TrigCostMonitorMT.TrigCostMonitorMTConf import TrigCostMTAuditor, TrigCostMTSvc
-
-# This should be temporary, it is doing the same job as TrigCostMonitorMTConfig but without using a ComponentAccumulator
-if ConfigFlags.Trigger.CostMonitoring.doCostMonitoring:
-    trigCostService = TrigCostMTSvc()
-    trigCostService.MonitorAllEvents = ConfigFlags.Trigger.CostMonitoring.monitorAllEvents
-    trigCostService.SaveHashes = True # This option will go away once the TrigConfigSvc is fully up & running
-    ServiceMgr += trigCostService
-    #
-    ServiceMgr.AuditorSvc += TrigCostMTAuditor()
-    theApp.AuditAlgorithms=True
-
-#-------------------------------------------------------------
-# Disable overly verbose and problematic ChronoStatSvc print-out
-#-------------------------------------------------------------
-include("TriggerTest/disableChronoStatSvcPrintout.py")
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_decodeBS_build.py b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_decodeBS_build.py
index efa41ca4b87e35101c7f965f0a0238d427accca8..0d97978f1c57103eb50420b446cf8d58a3891c31 100755
--- a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_decodeBS_build.py
+++ b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_decodeBS_build.py
@@ -8,7 +8,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 writeBS = ExecStep.ExecStep("WriteBS")
 writeBS.type = 'athena'
-writeBS.job_options = 'TrigUpgradeTest/full_menu.py'
+writeBS.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 writeBS.input = 'data'
 writeBS.args = '-c "isOnline=True;doWriteBS=True;doWriteRDOTrigger=False;"'
 
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_empty_menu_build.sh b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_empty_menu_build.sh
index 3138b6fec16e82959a047acd7134f5544dde81aa..92e98188c76bf6a7bda134e1775f510c46b39aab 100755
--- a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_empty_menu_build.sh
+++ b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_empty_menu_build.sh
@@ -8,7 +8,7 @@
 export EVENTS=20
 export THREADS=2
 export SLOTS=2
-export JOBOPTION="TrigUpgradeTest/full_menu.py"
+export JOBOPTION="TriggerJobOpts/runHLT_standalone.py"
 export EXTRA="isOnline=True;doEmptyMenu=True;doWriteBS=False;doWriteRDOTrigger=True;"
 
 # This test doesn't produce any output useful for RegTest, so do a dummy reference comparison
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_empty_menu_mc_build.sh b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_empty_menu_mc_build.sh
index 448c69cad249655926ab892d79470857be0078f9..1b5297ee639d9df96ca791d6a0fbda0187fa2fa9 100755
--- a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_empty_menu_mc_build.sh
+++ b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_empty_menu_mc_build.sh
@@ -9,7 +9,7 @@ export EVENTS=20
 export THREADS=1
 export SLOTS=1
 export INPUT="ttbar"
-export JOBOPTION="TrigUpgradeTest/full_menu.py"
+export JOBOPTION="TriggerJobOpts/runHLT_standalone.py"
 export EXTRA="doL1Sim=True;doEmptyMenu=True;doWriteBS=False;doWriteRDOTrigger=True;"
 
 # This test doesn't produce any output useful for RegTest, so do a dummy reference comparison
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_full_menu_build.sh b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_full_menu_build.sh
index 8b0922b0f1454a8a86689811608b127b38f51825..64d4050404fd05d91214989d4b40dbfabb357df2 100755
--- a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_full_menu_build.sh
+++ b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_full_menu_build.sh
@@ -8,7 +8,7 @@
 export EVENTS=20
 export THREADS=1
 export SLOTS=1
-export JOBOPTION="TrigUpgradeTest/full_menu.py"
+export JOBOPTION="TriggerJobOpts/runHLT_standalone.py"
 export REGTESTEXP="TriggerSummaryStep.*HLT_.*|TriggerMonitorFinal.*HLT_.*|TrigSignatureMoniMT.*HLT_.*"
 export EXTRA="isOnline=True;doWriteBS=False;doWriteRDOTrigger=True;"
 
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_full_menu_deps_build.py b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_full_menu_deps_build.py
index bf7faa76309a1f34c542443eea69de9f0067834e..ad2580bde1983773dcd636b6b7209998dfe60c1d 100755
--- a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_full_menu_deps_build.py
+++ b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_full_menu_deps_build.py
@@ -10,7 +10,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athena'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'data'
 ex.args = '-c "isOnline=True;doWriteBS=False;doWriteRDOTrigger=True;failIfNoProxy=True;"'
 
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_full_menu_grid.sh b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_full_menu_grid.sh
index b31b3536613a7b38d96ad8a12c018c39ef34d7ce..9746f300736b469b9fe662b5260dbe2099f53a70 100755
--- a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_full_menu_grid.sh
+++ b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_full_menu_grid.sh
@@ -17,7 +17,7 @@
 export EVENTS=1000
 export THREADS=1
 export SLOTS=1
-export JOBOPTION="TrigUpgradeTest/full_menu.py"
+export JOBOPTION="TriggerJobOpts/runHLT_standalone.py"
 export REGTESTEXP="TriggerSummaryStep.*HLT_.*|TriggerMonitorFinal.*HLT_.*|TrigSignatureMoniMT.*HLT_.*"
 export EXTRA="doWriteBS=False;doWriteRDOTrigger=True;"
 
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_full_menu_mc_build.sh b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_full_menu_mc_build.sh
index fc9e2c8c2cad07d963aa6589d1dd429ac8a9f565..f7c1c83e77b94aad427310778bb492bc88719821 100755
--- a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_full_menu_mc_build.sh
+++ b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_full_menu_mc_build.sh
@@ -9,7 +9,7 @@ export EVENTS=20
 export THREADS=1
 export SLOTS=1
 export INPUT="ttbar"
-export JOBOPTION="TrigUpgradeTest/full_menu.py"
+export JOBOPTION="TriggerJobOpts/runHLT_standalone.py"
 export REGTESTEXP="TriggerSummaryStep.*HLT_.*|TriggerMonitorFinal.*HLT_.*|TrigSignatureMoniMT.*HLT_.*"
 export EXTRA="doL1Sim=True;doWriteBS=False;doWriteRDOTrigger=True;"
 
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_full_menu_mc_grid.sh b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_full_menu_mc_grid.sh
index c354bfc616409649d24331ed79b704645da60bf9..74b03d63b0589febb5501a676d59c86f753dc289 100755
--- a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_full_menu_mc_grid.sh
+++ b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_full_menu_mc_grid.sh
@@ -18,7 +18,7 @@ export INPUT="ttbar"
 export EVENTS=1000
 export THREADS=1
 export SLOTS=1
-export JOBOPTION="TrigUpgradeTest/full_menu.py"
+export JOBOPTION="TriggerJobOpts/runHLT_standalone.py"
 export REGTESTEXP="TriggerSummaryStep.*HLT_.*|TriggerMonitorFinal.*HLT_.*|TrigSignatureMoniMT.*HLT_.*"
 export EXTRA="doL1Sim=True;doWriteBS=False;doWriteRDOTrigger=True;"
 
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_full_menu_reverse_build.sh b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_full_menu_reverse_build.sh
index e83a1f154ae8dede0afc078a659e164517114df7..835a1867d41e27530b2e22b0c99fb55472dd3b71 100755
--- a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_full_menu_reverse_build.sh
+++ b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_full_menu_reverse_build.sh
@@ -8,7 +8,7 @@
 export EVENTS=20
 export THREADS=1
 export SLOTS=1
-export JOBOPTION="TrigUpgradeTest/full_menu.py"
+export JOBOPTION="TriggerJobOpts/runHLT_standalone.py"
 export REGTESTEXP="TriggerSummaryStep.*HLT_.*|TriggerMonitorFinal.*HLT_.*|TrigSignatureMoniMT.*HLT_.*"
 export EXTRA="isOnline=True;reverseViews=True;doWriteBS=False;doWriteRDOTrigger=True;"
 
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_py_full_menu_build.py b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_py_full_menu_build.py
index 5044adcb250378a4a34392556c563d75c105c668..58ca2512eac00785ceb87bd29d6ba276ae5308ad 100755
--- a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_py_full_menu_build.py
+++ b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_py_full_menu_build.py
@@ -10,7 +10,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athena'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'data'
 ex.args = '-c "isOnline=True;doWriteBS=False;doWriteRDOTrigger=True;"'
 
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_bjet_build.sh b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_bjet_build.sh
index f484210efab775dcddbaf560e7bb1a8817010b5a..60cee551bb026f8d991154e22202e84da51bbaa1 100755
--- a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_bjet_build.sh
+++ b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_bjet_build.sh
@@ -8,7 +8,7 @@
 export EVENTS=20
 export THREADS=1
 export SLOTS=1
-export JOBOPTION="TrigUpgradeTest/full_menu.py"
+export JOBOPTION="TriggerJobOpts/runHLT_standalone.py"
 export REGTESTEXP="TrigSignatureMoniMT.*HLT_.*"
 export EXTRA="doEmptyMenu=True;doBjetSlice=True;doWriteBS=False;doWriteRDOTrigger=True;"
 
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_bphysics_build.sh b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_bphysics_build.sh
index 90030a7eec4aa48fdbf5c0615d10d333c0e42e84..7faf47f5285488c89c920749e1d5dd0e05344063 100755
--- a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_bphysics_build.sh
+++ b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_bphysics_build.sh
@@ -8,7 +8,7 @@
 export EVENTS=20
 export THREADS=1
 export SLOTS=1
-export JOBOPTION="TrigUpgradeTest/full_menu.py"
+export JOBOPTION="TriggerJobOpts/runHLT_standalone.py"
 export REGTESTEXP="TriggerSummaryStep.*HLT_.*|TriggerMonitorFinal.*HLT_.*|TrigSignatureMoniMT.*HLT_.*"
 export EXTRA="doEmptyMenu=True;doBphysicsSlice=True;doWriteBS=False;doWriteRDOTrigger=True;"
 
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_egamma_build.sh b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_egamma_build.sh
index a7561fe931b39a0aae6492f122889bce40a5811e..b7b9602ecb908089cff97e230bdeee9969f13674 100755
--- a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_egamma_build.sh
+++ b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_egamma_build.sh
@@ -8,7 +8,7 @@
 export EVENTS=20
 export THREADS=1
 export SLOTS=1
-export JOBOPTION="TrigUpgradeTest/full_menu.py"
+export JOBOPTION="TriggerJobOpts/runHLT_standalone.py"
 export REGTESTEXP="TrigSignatureMoniMT.*HLT_.*"
 export EXTRA="doEmptyMenu=True;doEgammaSlice=True;doWriteBS=False;doWriteRDOTrigger=True;"
 
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_jet_build.sh b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_jet_build.sh
index 527c051e38c81b73fe5b297cd28a843b333f3e1b..a7e2942bfa3131b95bc11d161d92773dea459847 100755
--- a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_jet_build.sh
+++ b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_jet_build.sh
@@ -8,7 +8,7 @@
 export EVENTS=20
 export THREADS=1
 export SLOTS=1
-export JOBOPTION="TrigUpgradeTest/full_menu.py"
+export JOBOPTION="TriggerJobOpts/runHLT_standalone.py"
 export REGTESTEXP="TrigSignatureMoniMT.*HLT_.*"
 export EXTRA="isOnline=True;doEmptyMenu=True;doJetSlice=True;doWriteBS=False;doWriteRDOTrigger=True;"
 
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_met_build.sh b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_met_build.sh
index ae2858c7ba284ed9ee7c6d34143e693a9b57f4fd..9761b3739528f57e097ec19516a23adfd50e7c3a 100755
--- a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_met_build.sh
+++ b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_met_build.sh
@@ -8,7 +8,7 @@
 export EVENTS=20
 export THREADS=1
 export SLOTS=1
-export JOBOPTION="TrigUpgradeTest/full_menu.py"
+export JOBOPTION="TriggerJobOpts/runHLT_standalone.py"
 export REGTESTEXP="TrigSignatureMoniMT.*HLT_.*"
 export EXTRA="doEmptyMenu=True;doMETSlice=True;doWriteBS=False;doWriteRDOTrigger=True;"
 
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_met_mc_build.sh b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_met_mc_build.sh
index 7f4f1852906029db512d98acee1182103ef0bc11..e4014dc5b9262f8614069a172cab9466b266ca66 100755
--- a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_met_mc_build.sh
+++ b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_met_mc_build.sh
@@ -9,7 +9,7 @@ export EVENTS=20
 export THREADS=1
 export SLOTS=1
 export INPUT="ttbar"
-export JOBOPTION="TrigUpgradeTest/full_menu.py"
+export JOBOPTION="TriggerJobOpts/runHLT_standalone.py"
 export REGTESTEXP="TrigSignatureMoniMT.*HLT_.*"
 export EXTRA="doL1Sim=True;doEmptyMenu=True;doMETSlice=True;doWriteBS=False;doWriteRDOTrigger=True;"
 
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_minbias_build.sh b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_minbias_build.sh
index 415e3b1081e920de11354c07d7afa114126afa44..06505360ffc1165a9f5297b8d437266b8a8d837c 100755
--- a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_minbias_build.sh
+++ b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_minbias_build.sh
@@ -8,7 +8,7 @@
 export EVENTS=20
 export THREADS=1
 export SLOTS=1
-export JOBOPTION="TrigUpgradeTest/full_menu.py"
+export JOBOPTION="TriggerJobOpts/runHLT_standalone.py"
 export REGTESTEXP="TriggerSummaryStep.*HLT_.*|TriggerMonitorFinal.*HLT_.*|TrigSignatureMoniMT.*HLT_.*"
 export EXTRA="doEmptyMenu=True;doMinBiasSlice=True;doWriteBS=False;doWriteRDOTrigger=True;"
 
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_mu_build.sh b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_mu_build.sh
index 683861f8ca114499cc9f8957e9460ead080880fd..dd267222db0198164ff8372a626bfb3f40da46e4 100755
--- a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_mu_build.sh
+++ b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_mu_build.sh
@@ -8,7 +8,7 @@
 export EVENTS=20
 export THREADS=1
 export SLOTS=1
-export JOBOPTION="TrigUpgradeTest/full_menu.py"
+export JOBOPTION="TriggerJobOpts/runHLT_standalone.py"
 export REGTESTEXP="TriggerSummaryStep.*HLT_.*|TriggerMonitorFinal.*HLT_.*|TrigSignatureMoniMT.*HLT_.*"
 export EXTRA="doEmptyMenu=True;doMuonSlice=True;doWriteBS=False;doWriteRDOTrigger=True;"
 
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_mu_mc_build.sh b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_mu_mc_build.sh
index 4c85c316b9335db407c7c53d6deb94eaf876fe3a..00e3eebdea7cbc11e773a2820efa22bfb827a460 100755
--- a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_mu_mc_build.sh
+++ b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_mu_mc_build.sh
@@ -9,7 +9,7 @@ export EVENTS=20
 export THREADS=1
 export SLOTS=1
 export INPUT="ttbar"
-export JOBOPTION="TrigUpgradeTest/full_menu.py"
+export JOBOPTION="TriggerJobOpts/runHLT_standalone.py"
 export REGTESTEXP="TriggerSummaryStep.*HLT_.*|TriggerMonitorFinal.*HLT_.*|TrigSignatureMoniMT.*HLT_.*"
 export EXTRA="doL1Sim=True;doEmptyMenu=True;doMuonSlice=True;doWriteBS=False;doWriteRDOTrigger=True;"
 
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_mu_mc_grid.sh b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_mu_mc_grid.sh
index 44c8101bf700c6a337327b5aa9be54d62d567548..aea52bbc44c2142ef4d54c05e95e738581b8d7be 100755
--- a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_mu_mc_grid.sh
+++ b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_mu_mc_grid.sh
@@ -18,7 +18,7 @@ export EVENTS=1000
 export THREADS=1
 export SLOTS=1
 export INPUT="ttbar"
-export JOBOPTION="TrigUpgradeTest/full_menu.py"
+export JOBOPTION="TriggerJobOpts/runHLT_standalone.py"
 export REGTESTEXP="TriggerSummaryStep.*HLT_.*|TriggerMonitorFinal.*HLT_.*|TrigSignatureMoniMT.*HLT_.*"
 export EXTRA="doL1Sim=True;doEmptyMenu=True;doMuonSlice=True;doWriteBS=False;doWriteRDOTrigger=True;"
 
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_tau_build.sh b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_tau_build.sh
index c2d8a283002ff7ab2b6cd98f6335bb7a8e6e9f77..3ed7dcecd690807bd4a807d29f5e6d7fe74088d6 100755
--- a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_tau_build.sh
+++ b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_slice_tau_build.sh
@@ -8,7 +8,7 @@
 export EVENTS=20
 export THREADS=1
 export SLOTS=1
-export JOBOPTION="TrigUpgradeTest/full_menu.py"
+export JOBOPTION="TriggerJobOpts/runHLT_standalone.py"
 export REGTESTEXP="TriggerSummaryStep.*HLT_.*|TriggerMonitorFinal.*HLT_.*|TrigSignatureMoniMT.*HLT_.*"
 export EXTRA="doEmptyMenu=True;doTauSlice=True;doWriteBS=False;doWriteRDOTrigger=True;"
 
diff --git a/Trigger/TrigValidation/TriggerTest/share/testAthenaTrigRDO_standalone.py b/Trigger/TrigValidation/TriggerTest/share/testAthenaTrigRDO_standalone.py
index db3557ee08b0e9047852e19494098989c2a8cb70..b64ef95a8d1fcbcf2f3717564faf7fcb506c15bc 100644
--- a/Trigger/TrigValidation/TriggerTest/share/testAthenaTrigRDO_standalone.py
+++ b/Trigger/TrigValidation/TriggerTest/share/testAthenaTrigRDO_standalone.py
@@ -15,7 +15,7 @@ if not ('EvtMax' in dir()):
 
 ReadBS=False
 
-include("TriggerJobOpts/runHLT_standalone.py")
+include("TriggerJobOpts/runHLT_standalone_run2.py")
 
 MessageSvc.Format = "% F%48W%S%7W%R%T %0W%M"
 
diff --git a/Trigger/TrigValidation/TriggerTest/test/exec_athena_art_trigger_validation.sh b/Trigger/TrigValidation/TriggerTest/test/exec_athena_art_trigger_validation.sh
index 30a6a0730a686f2a899349efc682a95fb6545e51..3256fc2418a3742e1ba94405b5c1c3c66fe41fef 100755
--- a/Trigger/TrigValidation/TriggerTest/test/exec_athena_art_trigger_validation.sh
+++ b/Trigger/TrigValidation/TriggerTest/test/exec_athena_art_trigger_validation.sh
@@ -14,7 +14,7 @@ fi
 
 if [ -z ${JOBOPTION} ]; then
   if [[ $INPUT == "data" ]]; then
-    export JOBOPTION="TriggerJobOpts/runHLT_standalone.py"
+    export JOBOPTION="TriggerJobOpts/runHLT_standalone_run2.py"
   else
     export JOBOPTION="TriggerTest/testCommonSliceAthenaTrigRDO.py"
   fi
diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Cosmic_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Cosmic_build.py
index a7630da03ac1e55ba13048b3581aad26ac0bcd57..a9bc9cd5c33366ca8cc9b0c67fbca8d794b7d33f 100755
--- a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Cosmic_build.py
+++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Cosmic_build.py
@@ -10,7 +10,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athena'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'data_cos'
 ex.threads = 1
 ex.args = '-c "setMenu=\'Cosmic_pp_run3_v1\';doWriteBS=False;doWriteRDOTrigger=True;"'
diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Cosmic_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Cosmic_grid.py
index 01d0977f22ead6a7895d8c7e63b23b850742a60e..4ba89ba44a8c43ebf531947beae18a3db97921ea 100755
--- a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Cosmic_grid.py
+++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Cosmic_grid.py
@@ -20,7 +20,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athena'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'data_cos'
 ex.threads = 1
 ex.args = '-c "setMenu=\'Cosmic_pp_run3_v1\';doWriteBS=False;doWriteRDOTrigger=True;"'
diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_build.py
index 322c1114597d70fdd42f8792835715bcb2b9871a..e0be38810f869206bbc0af427cad9aaf1c7d5b58 100755
--- a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_build.py
+++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_build.py
@@ -10,7 +10,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athena'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'data'
 ex.threads = 1
 # LS2_v1 soon to be renamed to Dev_pp_run3_v1
diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_grid.py
index 478a4d585109af0f71e13d2b42b1485f6e8b8afc..7c8cd170f64837b1304661ec6cff50b1dc83620d 100755
--- a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_grid.py
+++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_grid.py
@@ -20,7 +20,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athena'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'data'
 ex.threads = 1
 # LS2_v1 soon to be renamed to Dev_pp_run3_v1
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 f282f92d9aded5ec8ba285884d644eafbee364b5..ca22e03efd40ba19df7b43464f9c231f0db1d37d 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
@@ -10,7 +10,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athena'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'data'
 ex.threads = 1
 # LS2_v1 soon to be renamed to Dev_pp_run3_v1
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 3e5270da2475f2263353bc6a12742c32cae5d84c..c30b911a3e52e07146d4b2c31bc9ba356b0037be 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
@@ -20,7 +20,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athena'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'data'
 ex.threads = 1
 # LS2_v1 soon to be renamed to Dev_pp_run3_v1
diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_build.py
index e919957793708ab074cd2eb7818576e89a1cee38..162f8bb514118dceb06985d31c39a5c61f49784e 100755
--- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_build.py
+++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_build.py
@@ -10,7 +10,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athena'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'ttbar'
 ex.threads = 1
 # LS2_v1 soon to be renamed to Dev_pp_run3_v1
diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_grid.py
index 632f6bbbe66ad40f604ef18c5265d93ce0bd94ec..8c5968fe9b38f23a2de2d7fed85994c220d53ef9 100755
--- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_grid.py
+++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_grid.py
@@ -20,7 +20,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athena'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'ttbar'
 ex.threads = 1
 # LS2_v1 soon to be renamed to Dev_pp_run3_v1
diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bjet_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bjet_build.py
index 8585267ecc946933f6d24a0d81bdbfe58fd45e98..d6fca0ae3d6b753707e98e6068e809b2740700d5 100755
--- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bjet_build.py
+++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bjet_build.py
@@ -10,7 +10,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athena'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'ttbar'
 ex.threads = 1
 # LS2_v1 soon to be renamed to Dev_pp_run3_v1
diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bjet_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bjet_grid.py
index ff7eac6c8472848c96f10d30aa79311b9a54bffc..e2c01b0ce292cde8636c61ffc189171b14cf2042 100755
--- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bjet_grid.py
+++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bjet_grid.py
@@ -20,7 +20,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athena'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'ttbar'
 ex.threads = 1
 # LS2_v1 soon to be renamed to Dev_pp_run3_v1
diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bphysics_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bphysics_build.py
index d452b9217dd8e06fc35920598e62753f1dd8e4c8..93c54b07d4cd3853a80ae56d8860d63b3fbd16a6 100755
--- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bphysics_build.py
+++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bphysics_build.py
@@ -10,7 +10,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athena'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'bphysics'
 ex.threads = 1
 # LS2_v1 soon to be renamed to Dev_pp_run3_v1
diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bphysics_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bphysics_grid.py
index 41a285a0171ca137393dcbf6fc4b6208535e0cb0..2f888dcfb97a7916486994e0089ddd29bb56ed49 100755
--- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bphysics_grid.py
+++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bphysics_grid.py
@@ -20,7 +20,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athena'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'bphysics'
 ex.threads = 1
 # LS2_v1 soon to be renamed to Dev_pp_run3_v1
diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bphysicsexo_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bphysicsexo_build.py
index ea4b430d3b9c9dbd81861c8446da29474d98cdc2..7ce089158bf0731727eeb17d58ff4f028bb94102 100755
--- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bphysicsexo_build.py
+++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bphysicsexo_build.py
@@ -10,7 +10,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athena'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'mubphysics'
 ex.threads = 1
 # LS2_v1 soon to be renamed to Dev_pp_run3_v1
diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bphysicsexo_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bphysicsexo_grid.py
index 6a70be835db5ec89b579302d5b7fb419402926b6..3a05520015391ac41d48387a673342d5d70717c0 100755
--- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bphysicsexo_grid.py
+++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bphysicsexo_grid.py
@@ -20,7 +20,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athena'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'mubphysics'
 ex.threads = 1
 # LS2_v1 soon to be renamed to Dev_pp_run3_v1
diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_egamma_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_egamma_build.py
index d00f5eb2931d8d4840cef2026c31aad9ad523b3d..2e3e91888e5cd59fae3788eb86ae2d4970563657 100755
--- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_egamma_build.py
+++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_egamma_build.py
@@ -10,7 +10,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athena'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'ttbar'
 ex.threads = 1
 # LS2_v1 soon to be renamed to Dev_pp_run3_v1
diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_egamma_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_egamma_grid.py
index e47a0f1a89641d6c7629f54fe0b76a16cb7f46fc..f558beb3afb50fd095e2c467454da30fa6bf9c5f 100755
--- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_egamma_grid.py
+++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_egamma_grid.py
@@ -20,7 +20,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athena'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'ttbar'
 ex.threads = 1
 # LS2_v1 soon to be renamed to Dev_pp_run3_v1
diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_jet_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_jet_build.py
index 0381e93ef9c9f7fc9663b254f5017b7f8bd4ae5c..a55912a125ccf7e48295ddb9baf7ee55f37244e8 100755
--- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_jet_build.py
+++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_jet_build.py
@@ -10,7 +10,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athena'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'ttbar'
 ex.threads = 1
 # LS2_v1 soon to be renamed to Dev_pp_run3_v1
diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_jet_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_jet_grid.py
index 3df8048125b0abf9c3b85eaf28181153ea979427..1611dcface31cfc3daec032d76c574c5d584aed7 100755
--- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_jet_grid.py
+++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_jet_grid.py
@@ -20,7 +20,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athena'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'ttbar'
 ex.threads = 1
 # LS2_v1 soon to be renamed to Dev_pp_run3_v1
diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_met_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_met_build.py
index e76b8266dd3135a657f330e8e3dbeed1d503b419..ce79b125d92eebdf73ed6fb9226c2e4d5eb2a9e1 100755
--- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_met_build.py
+++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_met_build.py
@@ -10,7 +10,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athena'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'ttbar'
 ex.threads = 1
 # LS2_v1 soon to be renamed to Dev_pp_run3_v1
diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_met_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_met_grid.py
index 7927c7f65e6cf4f3d55e4e8a16d06a917ca90577..92e8d0991bf2738f57a1aa83dec9d59f41127380 100755
--- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_met_grid.py
+++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_met_grid.py
@@ -20,7 +20,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athena'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'ttbar'
 ex.threads = 1
 # LS2_v1 soon to be renamed to Dev_pp_run3_v1
diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_muon_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_muon_build.py
index 87ebe2df6cb86aa1450d77137399645408c9fe97..7579bdf128673182082988030aa9b71fcc79b97f 100755
--- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_muon_build.py
+++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_muon_build.py
@@ -10,7 +10,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athena'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'ttbar'
 ex.threads = 1
 # LS2_v1 soon to be renamed to Dev_pp_run3_v1
diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_muon_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_muon_grid.py
index 8d39257fcd0eca4a56f63f7ed766a18a57e8eecd..0600e8cb69a13f90b6750443ad53c953c05eb06c 100755
--- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_muon_grid.py
+++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_muon_grid.py
@@ -20,7 +20,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athena'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'ttbar'
 ex.threads = 1
 # LS2_v1 soon to be renamed to Dev_pp_run3_v1
diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_reproducibility_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_reproducibility_build.py
index 62306cebe855f5db436fd1a95ec4c082e3c951a0..c6a11a4fea2e31216ad75b916fd40ba3a788f884 100755
--- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_reproducibility_build.py
+++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_reproducibility_build.py
@@ -14,7 +14,7 @@ import six
 Common.trigvalsteering_logging_level = logging.DEBUG
 ex = ExecStep.ExecStep('FullMenu')
 ex.type = 'athena'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'ttbar'
 ex.threads = 1
 # LS2_v1 soon to be renamed to Dev_pp_run3_v1
diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_tau_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_tau_build.py
index 313e8bd4f2d2f5a5da89eb948af282d4080e64de..6903a4818a012a1ec2150e6bd6b5795936eb7105 100755
--- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_tau_build.py
+++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_tau_build.py
@@ -10,7 +10,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athena'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'ttbar'
 ex.threads = 1
 # LS2_v1 soon to be renamed to Dev_pp_run3_v1
diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_tau_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_tau_grid.py
index 07156f012a0ec225e4071a7efa5955548e01b2d9..13ff3f4770b03dcde53f50f151b0289ab86a0872 100755
--- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_tau_grid.py
+++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_tau_grid.py
@@ -20,7 +20,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athena'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'ttbar'
 ex.threads = 1
 # LS2_v1 soon to be renamed to Dev_pp_run3_v1
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 1413a98837ab65dcb3bcc06e1dd6acb97ac9724e..597ae164854a64e23b500f36c902d7532fe2f808 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
@@ -10,7 +10,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athena'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'ttbar'
 ex.threads = 1
 # LS2_v1 soon to be renamed to Dev_pp_run3_v1
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 383cb3d5a667a8d014caabb1b2a6f1168a17e6c6..ba165362a3669e2efa0ecb4da900c13c9cb06b58 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
@@ -20,7 +20,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athena'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'ttbar'
 ex.threads = 1
 # LS2_v1 soon to be renamed to Dev_pp_run3_v1
diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1MC_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1MC_build.py
index 9bbf564f0b5d72fbcd2b0ae0bebdd0643db6060f..5f49e42321cbf1f6b2786d9a7997911d1becd5bb 100755
--- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1MC_build.py
+++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1MC_build.py
@@ -10,7 +10,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athena'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'ttbar'
 ex.threads = 1
 ex.args = '-c "setMenu=\'MC_pp_run3_v1\';doWriteBS=False;doWriteRDOTrigger=True;"'
diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1MC_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1MC_grid.py
index 92ddfa87ad560270d029e68b2693b2aecbca7829..0eaba53d790b492f8e75febd5adb3319a9812118 100755
--- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1MC_grid.py
+++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1MC_grid.py
@@ -20,7 +20,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athena'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'ttbar'
 ex.threads = 1
 ex.args = '-c "setMenu=\'MC_pp_run3_v1\';doWriteBS=False;doWriteRDOTrigger=True;"'
diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1PhysP1_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1PhysP1_build.py
index b96b2741d3ef6bd3798ad9939492e5648cdd60b4..fa358776cca395fa960a718c3ae3bbcf8965723b 100755
--- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1PhysP1_build.py
+++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1PhysP1_build.py
@@ -10,7 +10,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athena'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'ttbar'
 ex.threads = 1
 ex.args = '-c "setMenu=\'PhysicsP1_pp_run3_v1\';doWriteBS=False;doWriteRDOTrigger=True;"'
diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1PhysP1_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1PhysP1_grid.py
index 5e58db655f23170e2ccf396993c0e1491a0241ea..8c654fe68c6956d94713e8026781ea8e5f349f73 100755
--- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1PhysP1_grid.py
+++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1PhysP1_grid.py
@@ -20,7 +20,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athena'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'ttbar'
 ex.threads = 1
 ex.args = '-c "setMenu=\'PhysicsP1_pp_run3_v1\';doWriteBS=False;doWriteRDOTrigger=True;"'
diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Phys_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Phys_build.py
index 71129adb612f24976caa7fbe57493a9440738772..0ab72dab23925a3aa827e7a4f07bafc67319b9e0 100755
--- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Phys_build.py
+++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Phys_build.py
@@ -10,7 +10,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athena'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'ttbar'
 ex.threads = 1
 ex.args = '-c "setMenu=\'Physics_pp_run3_v1\';doWriteBS=False;doWriteRDOTrigger=True;"'
diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Phys_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Phys_grid.py
index 6a554479bce0c6a1073867325826c3ef0d594a1d..92eb3e42f21c8f9088755b005f3d455ed7b50e35 100755
--- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Phys_grid.py
+++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Phys_grid.py
@@ -20,7 +20,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
 
 ex = ExecStep.ExecStep()
 ex.type = 'athena'
-ex.job_options = 'TrigUpgradeTest/full_menu.py'
+ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'ttbar'
 ex.threads = 1
 ex.args = '-c "setMenu=\'Physics_pp_run3_v1\';doWriteBS=False;doWriteRDOTrigger=True;"'
diff --git a/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py b/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py
old mode 100755
new mode 100644
index 21e2ac7a8de8136a61a817566ff7f93383d316ca..d0277360b868b6c4922418ef5b3ab7e3b6d98f15
--- a/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py
+++ b/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py
@@ -1,305 +1,239 @@
-##############################################################
+# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+################################################################################
 # TriggerJobOpts/runHLT_standalone.py
 #
-#   jobOption file to run HLT standalone (independant of RecExCommon)
+#   Job options to run HLT standalone in AthenaMT
 #
-# Input could be Pool/RDO or BS
+#   The file can be used as an include in other JO:
+#      include('TriggerJobOpts/runHLT_standalone.py')
+#   or directly to run the HLT:
+#      athena --threads=1 --filesInput=input.pool.root TriggerJobOpts/runHLT_standalone.py
 #
-# Input file: (athena only)
-#   Pool: set by "PoolRDOInput"
-#   BS:   set by "BSRDOInput"
+# Several flags are supported on the command line to steer these job options, for example
+# by adding -c "setMenu='MC_pp_run3_v1'". See below for a complete list of all flags and their default
+# value. If used in athena.py the auto-configuration is used to setup most flags correctly.
 #
-# L1Topo/L1 configuration are fixed
-#   set by "setLVL1XML" 
+# Additional "modifiers" can be specified by using
+#   -c "myModifier=True/False"
+# Existing modifiers can be found in "TriggerJobOpts/python/Modifiers.py"
 #
-# HLT configuration uses Python configuration
-#   set by "setMenu" (can also include prescales)
-#   if used for MC, one needs to set "setupForMC" to True
-#   Individual slices can be run by doing "test<sliceName>=True"
-#   Individual signatures can be removed/added putting them in
-#     "removeSignatures" and "addSignatures"
-#     e.g. "addSignatures={'MuonSlice': ['mu6_ef']}"
-#
-# HLT configuration from existing XML file
-#   set by "setHLTXML"
-#
-# Geometry and conditions
-#   CommisDB         set by "useCOMCONDDB"
-#   Geometry         set by "setDetDescr"
-#   Conditions       set by "setGlobalTag"
-#   Folder overrides set by condOverride='{"Folder1":"Tag1", "Folder2":"Tag2"}'
-#
-# Special modifiers
-#   Currently certain options needs to be modified depending on the type of data
-#   Good defaults are provided for running on physics MC and cosmics Data
-#   Change by specifying list in "setModifiers" or turn modifiers on/off
-#    by doing "myModifier=True/False"
-#   Existing modifiers can be found in "TriggerJobOpts/python/Modifiers.py"
-#
-# Predefined setups
-#   certain menu configurations can be run just by doing
-#     testPhysicsV6=True or
-#     testMCV6=True or
-#     testPhysicsV6MC=True
-#   Note that for the addition of "MC" option. This is used for getting the MC setup.
-#
-# Usage:
-#  
-#   run with athenaHLT:
-#      athenaHLT -f input.data -c testPhysicsV6=True -l DEBUG -n 25 TriggerJobOpts/runHLT_standalone.py
-#      or with multiple files
-#      athenaHLT -f "['input1.data','input2.data']" -c testPhysicsV6=True -n 25 TriggerJobOpts/runHLT_standalone.py
-#      or, for writing BS output:
-#      athenaHLT -f input.data -c testPhysicsV6=True -n 25 -o outBS TriggerJobOpts/runHLT_standalone.py
-#      or, with online THistSvc
-#      athenaHLT -M -l DEBUG -c testPhysicsV6=True -n 25 TriggerJobOpts/runHLT_standalone.py
-#
-#   run with athena:
-#      BS input: athena.py -c "testPhysicsV6=True;BSRDOInput=['raw.data']" TriggerJobOpts/runHLT_standalone.py
-#      RDO input: athena.py -c "testPhysicsV6=True;PoolRDOInput=['file.pool.root']" TriggerJobOpts/runHLT_standalone.py
-#
-# Select slice(s) to test:
-#   set one or more of the following flags to True in the jo:
-#      testEgamma, testMuon, testTau, testJet, testBjet, testMET, testBphysics
-#    e.g.:
-#      athenaHLT -f input.data -l DEBUG -n 25 -c "testTau=True;testPhysicsV6=True" TriggerJobOpts/runHLT_standalone.py
+class opt:
+    setupForMC       = None           # force MC setup
+    setMenu          = 'LS2_v1'
+    setDetDescr      = None           # force geometry tag
+    setGlobalTag     = None           # force global conditions tag
+    useCONDBR2       = True           # if False, use run-1 conditions DB
+    condOverride     = {}             # overwrite conditions folder tags e.g. '{"Folder1":"Tag1", "Folder2":"Tag2"}'
+    doHLT            = True           # run HLT?
+    doID             = True           # TriggerFlags.doID
+    doCalo           = True           # TriggerFlags.doCalo
+    doMuon           = True           # TriggerFlags.doMuon
+    doDBConfig       = None           # dump trigger configuration
+    trigBase         = None           # file name for trigger config dump
+    enableCostD3PD   = False          # enable cost monitoring
+    doWriteRDOTrigger = False         # Write out RDOTrigger?
+    doWriteBS        = True           # Write out BS?
+    doL1Unpacking    = True           # decode L1 data in input file if True, else setup emulation
+    doL1Sim          = False          # (re)run L1 simulation
+    isOnline         = True           # isOnline flag
+    doEmptyMenu      = False          # Disable all chains, except those re-enabled by specific slices
+    createHLTMenuExternally = False   # Set to True if the menu is build manually outside runHLT_standalone.py
+    endJobAfterGenerate = False       # Finish job after menu generation
+    failIfNoProxy     = False         # Sets the SGInputLoader.FailIfNoProxy property
+    decodeLegacyL1 = True             # Decode L1 RoIs from legacy L1 systems through RoIBResult for HLT seeding
+    decodePhaseIL1 = False            # Decode L1 RoIs from Run-3 L1 systems through L1TriggerResult for HLT seeding
+#Individual slice flags
+    doEgammaSlice     = True
+    doMuonSlice       = True
+    doMinBiasSlice    = True
+    doJetSlice        = True
+    doMETSlice        = True
+    doBjetSlice       = True
+    doTauSlice        = True
+    doCombinedSlice   = True
+    doBphysicsSlice   = True
+    doStreamingSlice  = True
+    doMonitorSlice    = True
+    doBeamspotSlice   = True
+    reverseViews      = False
+    filterViews       = False
+    enabledSignatures = []
+    disabledSignatures = []
+
+
 #
-#===========================================================================================
+################################################################################
+from TriggerJobOpts.TriggerFlags import TriggerFlags
+from AthenaCommon.AppMgr import theApp, ServiceMgr as svcMgr
 from AthenaCommon.Logging import logging
 log = logging.getLogger('runHLT_standalone.py')
 
-#predefined menu setups accessible using 'test<NAME>[MC]=True' commandline
-menuMap={
-         #Run-3 preparation menu
-         'LS2V1':           ('LS2_v1',                  'TriggerMenuXML/LVL1config_LS2_v1.xml'),         
-
-         #2018 menus:       menu name                   L1 xml file
-         'HIV5':            ('Physics_HI_v5',           'TriggerMenuXML/LVL1config_Physics_HI_v5.xml'),
-         'MCHIV5':          ('MC_HI_v5',                'TriggerMenuXML/LVL1config_Physics_HI_v5.xml'),
-
-         #2017 menus:       menu name                   L1 xml file
-         'PhysicsV7':       ('Physics_pp_v7',           'TriggerMenuXML/LVL1config_Physics_pp_v7.xml'),
-         'MCV7':            ('MC_pp_v7',                'TriggerMenuXML/LVL1config_MC_pp_v7.xml'),
-
-         #2016 menus:       menu name                   L1 xml file
-         'PhysicsV6':       ('Physics_pp_v6',           'TriggerMenuXML/LVL1config_Physics_pp_v6.xml'),
-         'MCV6':            ('MC_pp_v6',                'TriggerMenuXML/LVL1config_MC_pp_v6.xml'),
-         'HIV4':            ('Physics_HI_v4',           'TriggerMenuXML/LVL1config_Physics_HI_v4.xml'),
-         'MCHIV4':          ('MC_HI_v4',                'TriggerMenuXML/LVL1config_Physics_HI_v4.xml'),
-
-         #2015 menus:       menu name                   L1 xml file
-         'PhysicsV5':       ('Physics_pp_v5',           'TriggerMenuXML/LVL1config_Physics_pp_v5.xml'),
-         'MCV5':            ('MC_pp_v5',                'TriggerMenuXML/LVL1config_MC_pp_v5.xml'),
-         'LS1V1':           ('LS1_v1',                  'TriggerMenuXML/LVL1config_Physics_pp_v4.xml'),
-         'DC14':            ('DC14',                    ''),
-         'HIV3':            ('Physics_HI_v3',           'TriggerMenuXML/LVL1config_Physics_HI_v3.xml'),
-         'MCHIV3':          ('MC_HI_v3',                'TriggerMenuXML/LVL1config_Physics_HI_v3.xml'),
-
-         #2012 menus:       menu name                   L1 xml file
-         'PhysicsV4':       ('Physics_pp_v4',           'TriggerMenuXML/LVL1config_Physics_pp_v4.xml'),
-         'MCV4':            ('MC_pp_v4',                'TriggerMenuXML/LVL1config_Physics_pp_v4.xml'),
-         'L1V4':            ('L1_pp_v4',                'TriggerMenuXML/LVL1config_L1_pp_v4.xml'),
-         'ALFAV2':          ('L1_alfa_v2',              'TriggerMenuXML/LVL1config_L1_alfa_v2.xml'),
-         'HIV2':            ('Physics_HI_v2',           'TriggerMenuXML/LVL1config_Physics_HI_v2.xml'),
-         'MCHIV2':          ('MC_HI_v2',                'TriggerMenuXML/LVL1config_Physics_HI_v2.xml'),
-
-         #2011 menus:          menu name                      L1 xml file
-         'CosmicPPV2':      ('Physics_pp_v2_cosmics_prescale',           'TriggerMenuXML/LVL1config_Physics_pp_v2.xml'),
-         'PhysicsV2':       ('Physics_pp_v2',           'TriggerMenuXML/LVL1config_Physics_pp_v2.xml'),
-         'MCV2':            ('MC_pp_v2',                'TriggerMenuXML/LVL1config_MC_pp_v2.xml'),
-         'L1V2':            ('L1_pp_v2',                'TriggerMenuXML/LVL1config_L1_pp_v2.xml'),
-         'HIV1':            ('Physics_HI_v1',           'TriggerMenuXML/LVL1config_Physics_HI_v1.xml'),
-         'MCHIV1':          ('MC_HI_v1',                'TriggerMenuXML/LVL1config_Physics_HI_v1.xml'),
-         'PhysicsV3':       ('Physics_pp_v3',           'TriggerMenuXML/LVL1config_Physics_pp_v3.xml'),
-         'MCV3':            ('MC_pp_v3',                'TriggerMenuXML/LVL1config_Physics_pp_v3.xml'),
-         'L1V3':            ('L1_pp_v3',                'TriggerMenuXML/LVL1config_L1_pp_v3.xml'),
-         'ALFAV1':          ('L1_alfa_v1',              'TriggerMenuXML/LVL1config_L1_alfa_v1.xml'),
-         
-         #2010 menus:          menu name                      L1 xml file
-         'InitialBeamV2':   ('InitialBeam_v2',          'TriggerMenuXML/LVL1config_InitialBeam_v2.xml'),
-         'MCInitialBeamV2': ('MC_InitialBeam_v2',       'TriggerMenuXML/LVL1config_InitialBeam_v2.xml'),
-         'CosmicV2':        ('Cosmic_v2',               'TriggerMenuXML/LVL1config_InitialBeam_v2.xml'),
-
-         'InitialBeamV3':   ('InitialBeam_v3',          'TriggerMenuXML/LVL1config_InitialBeam_v3.xml'),
-         'MCInitialBeamV3': ('MC_InitialBeam_v3',       'TriggerMenuXML/LVL1config_InitialBeam_v3.xml'),
-         'CosmicV3':        ('Cosmic_v3',               'TriggerMenuXML/LVL1config_InitialBeam_v3.xml'),
-
-         'PhysicsV1':       ('Physics_pp_v1',           'TriggerMenuXML/LVL1config_Physics_pp_v1.xml'),
-         'MCV1':            ('MC_pp_v1',                'TriggerMenuXML/LVL1config_Physics_pp_v1.xml'),
-         'CosmicPPV1':      ('Physics_pp_v1_cosmics_prescale','TriggerMenuXML/LVL1config_Physics_pp_v1.xml'),
-
-         #Upgrade menus:       menu name                   L1 xml file
-         'MCPhaseII':       ('MC_PhaseII',           'TriggerMenuXML/LVL1config_MC_PhaseII.xml'),
-}
-
-# Useful in job options beyond our control to always run the latest menu via 'testCurrentMenu=True'
-menuMap['CurrentMenu'] = menuMap['PhysicsV7']
-
-newMenuSetup=0
-for name in menuMap:
-    for key in ['','MC']:
-        if ('test'+name+key in dir()):
-            newMenuSetup+=1
-            setMenu=menuMap[name][0]
-            setLVL1XML=menuMap[name][1]
-            if len(menuMap[name])<=2:
-                # topo menu xml derived from l1 menu name
-                setL1TopoXML=menuMap[name][1].replace("/LVL1","/L1Topo")
-            else:
-                # topo menu xml explicitly given
-                setL1TopoXML=menuMap[name][2]
-                
-            if 'setupForMC' not in dir():
-                setupForMC=(key=='MC')
-                print 'Setting setupForMC = ',setupForMC
-
-if 'setupForMC' not in dir():
-    setupForMC=False
-
-if newMenuSetup>1:
-    log.fatal('More than one menu requested')
-    import sys
-    sys.exit(1)
-if newMenuSetup==0 and not ('setMenu' in dir()):
-    log.fatal('No trigger menu specified, use e.g. testPhysicsV6=True')
-    import sys
-    sys.exit(1)
-
-#setup options for standalone configurations
-
-defaultOptions={ 
-    'setMenu'          : setMenu,
-    'setupForMC'       : setupForMC,
-    'setLVL1XML'       : 'TriggerMenuXML',
-    'setL1TopoXML'     : 'TriggerMenuXML',
-    'setHLTXML'        : None,
-    'removeSignatures' : {},
-    'addSignatures'    : {},
-    'setDetDescr'      : None,
-    'setGlobalTag'     : None,
-    'useCONDBR2'       : True,
-    'condOverride'     : {},
-    'emptyMenu'        : False,
-    'PoolRDOInput'     : None,
-    'BSRDOInput'       : None,
-    'OutputLevel'      : INFO,
-    'HLTOutputLevel'   : INFO,
-    'EvtMax'           : -1,
-    'SkipEvents'       :  0,
-}
+#-------------------------------------------------------------
+# Setup options
+#-------------------------------------------------------------
+log.info('Setup options:')
+defaultOptions = [a for a in dir(opt) if not a.startswith('__')]
+for option in defaultOptions:
+    if option in globals():
+        setattr(opt, option, globals()[option])
+        print(' %20s = %s' % (option, getattr(opt, option)))
+    else:        
+        print(' %20s = (Default) %s' % (option, getattr(opt, option)))
+
+
+import re
+
+sliceRe = re.compile("^do.*Slice")
+slices = [a for a in dir(opt) if sliceRe.match(a)]
+if opt.doEmptyMenu is True:
+    log.info("Disabling all slices")
+    for s in slices:
+        if s in globals():
+            log.info("re-enabling %s ", s)
+            setattr(opt, s, globals()[s])
+        else:
+            setattr(opt, s, False)
+else:
+    for s in slices:
+        setattr(opt, s, True)
+
+# Setting the TriggerFlags.XXXSlice to use in TriggerMenuMT
+# This is temporary and will be re-worked for after M3.5
+for s in slices:
+    signature = s[2:].replace('Slice', '')
 
+    if eval('opt.'+s) is True:
+        enabledSig = 'TriggerFlags.'+signature+'Slice.setAll()'
+        opt.enabledSignatures.append( enabledSig )
+    else:
+        disabledSig = 'TriggerFlags.'+signature+'Slice.setAll()'
+        opt.disabledSignatures.append( disabledSig )
+
+#-------------------------------------------------------------
+# Setting Global Flags
+#-------------------------------------------------------------
+from AthenaCommon.GlobalFlags import globalflags
+from AthenaCommon.AthenaCommonFlags import athenaCommonFlags
+from AthenaCommon.BeamFlags import jobproperties
+import TriggerJobOpts.Modifiers
+
+# Auto-configuration for athena
+if len(athenaCommonFlags.FilesInput())>0:
+    import PyUtils.AthFile as athFile
+    af = athFile.fopen(athenaCommonFlags.FilesInput()[0])
+    globalflags.InputFormat = 'bytestream' if af.fileinfos['file_type']=='bs' else 'pool'
+    globalflags.DataSource = 'data' if af.fileinfos['evt_type'][0]=='IS_DATA' else 'geant4'
+    # Set isOnline=False for MC inputs unless specified in the options
+    if globalflags.DataSource() != 'data' and 'isOnline' not in globals():
+        log.info("Setting isOnline = False for MC input")
+        opt.isOnline = False
+    # Set geometry and conditions tags
+    if opt.setDetDescr is None:
+        opt.setDetDescr = af.fileinfos.get('geometry',None)
+    if opt.setGlobalTag is None:
+        opt.setGlobalTag = af.fileinfos.get('conditions_tag',None) or \
+            (TriggerFlags.OnlineCondTag() if opt.isOnline else 'CONDBR2-BLKPA-2018-13')
+    TriggerJobOpts.Modifiers._run_number = af.fileinfos['run_number'][0]
+
+else:   # athenaHLT
+    globalflags.InputFormat = 'bytestream'
+    globalflags.DataSource = 'data' if not opt.setupForMC else 'data'
+    if '_run_number' not in dir():
+        import PyUtils.AthFile as athFile
+        from AthenaCommon.AthenaCommonFlags import athenaCommonFlags
+        af = athFile.fopen(athenaCommonFlags.BSRDOInput()[0])
+        _run_number = af.run_number[0]
+
+    TriggerJobOpts.Modifiers._run_number = _run_number   # noqa, set by athenaHLT
+
+    from RecExConfig.RecFlags import rec
+    rec.RunNumber =_run_number
+    del _run_number
+
+
+# Set final Cond/Geo tag based on input file, command line or default
+globalflags.DetDescrVersion = opt.setDetDescr or TriggerFlags.OnlineGeoTag()
+globalflags.ConditionsTag = opt.setGlobalTag or TriggerFlags.OnlineCondTag()
+
+# Other defaults
+jobproperties.Beam.beamType = 'collisions'
+jobproperties.Beam.bunchSpacing = 25
+globalflags.DatabaseInstance='CONDBR2' if opt.useCONDBR2 else 'COMP200'
+athenaCommonFlags.isOnline.set_Value_and_Lock(opt.isOnline)
+
+log.info('Configured the following global flags:')
+globalflags.print_JobProperties()
+
+# Set default doL1Sim option depending on input type (if not set explicitly)
+if 'doL1Sim' not in globals():
+    opt.doL1Sim = globalflags.DataSource != 'data'
+    log.info('Setting default doL1Sim=%s because globalflags.DataSource=%s', opt.doL1Sim, globalflags.DataSource())
 
 #-------------------------------------------------------------
 # Transfer flags into TriggerFlags
 #-------------------------------------------------------------
-from TriggerJobOpts.TriggerFlags import TriggerFlags
 
 # To turn off HLT for athena running
-TriggerFlags.doHLT = True
-if 'doHLT' in dir():
-    TriggerFlags.doHLT = bool(doHLT)
-    del doHLT
+TriggerFlags.doHLT = bool(opt.doHLT)
     
 # To extract the Trigger configuration
-if "doDBConfig" in dir():
-    TriggerFlags.Online.doDBConfig = bool(doDBConfig)
-    del doDBConfig
-if "trigBase" in dir():
-    TriggerFlags.Online.doDBConfigBaseName = trigBase
-    del trigBase
-
-
-#set geometry and conditions
-if setupForMC:   # for MC
-    defaultOptions['useCOMCONDDB']=False
-else:            # for data
-    defaultOptions['useCOMCONDDB']=True
-    defaultOptions['setDetDescr']=TriggerFlags.OnlineGeoTag()
-    defaultOptions['setGlobalTag']=TriggerFlags.OnlineCondTag()
+TriggerFlags.Online.doDBConfig = bool(opt.doDBConfig)
+if opt.trigBase is not None:
+    TriggerFlags.Online.doDBConfigBaseName = opt.trigBase
 
 # Setup list of modifiers
-defaultOptions['setModifiers']=[#Common modifiers for MC and data
-                                'noLArCalibFolders',
-                                'ForceMuonDataType',
-                                'useNewRPCCabling',
-                                'enableCostMonitoring', 
-                                'enableCoherentPS',
-                                'useOracle',
-                                'detailedErrorStreams',
-                                'optimizeChainOrder',    
-                                'enableHotIDMasking',
-                                'openThresholdRPCCabling',
-                                #special streaming setup
-                                #'enable7BitL1TTStreaming',
+# Common modifiers for MC and data
+setModifiers = ['noLArCalibFolders',
+                'ForceMuonDataType',
+                'useNewRPCCabling',
+                'enableCostMonitoring',
+                #'enableCoherentPS',
+                'useOracle',
+                'enableHotIDMasking',
+                'openThresholdRPCCabling',
 ]
 
-if setupForMC:  # MC modifiers
-    defaultOptions['setModifiers']+=['BFieldFromDCS']
+if globalflags.DataSource.is_geant4():  # MC modifiers
+    setModifiers += ['BFieldFromDCS']
 else:           # More data modifiers
-    defaultOptions['setModifiers']+=[
-                                'allowCOOLUpdates',
-                                'useHLTMuonAlign',
-                                #Check for beamspot quality flag
-                                'UseBeamSpotFlagForBjet',
-                                'UseParamFromDataForBjet',
-                                #Use online luminosity
-                                'useOnlineLumi',
-                                #for running with real data
-                                'DisableMdtT0Fit',
-                                #Setup mufast tuning for data
-                                'UseLUTFromDataForMufast',
-                                'UseRPCTimeDelayFromDataForMufast',
-                                #Set muComb/muIso Backextrapolator tuned for real data
-                                'UseBackExtrapolatorDataForMuIso',
-                                #Monitoring for L1 muon group
-                                'muCTPicheck',
-                                #Monitoring L1Topo at ROB level
-                                'L1TopoCheck',
-                                'forceTileRODMap',
-                                #for tests with data:
-                                #'ignoreErrorStream', #nothing goes to debug stream
-                                #'inclusiveErrorStream', #errors go to both debug and physics streams
-                                #'ignoreL1Vetos',  #also run L2 prescaled and disabled L1 items
-                                #'disablePixels',
-                                #'disableSCTBarrel',
-                                'useDynamicAlignFolders',
-                                'enableALFAMon',
+    setModifiers += ['allowCOOLUpdates',
+                     'BFieldAutoConfig',
+                     'useHLTMuonAlign',
+                     #Check for beamspot quality flag
+                     'UseBeamSpotFlagForBjet',
+                     'UseParamFromDataForBjet',
+                     #Use online luminosity
+                     'useOnlineLumi',
+                     #for running with real data
+                     'DisableMdtT0Fit',
+                     #Setup mufast tuning for data
+                     'UseLUTFromDataForMufast',
+                     'UseRPCTimeDelayFromDataForMufast',
+                     #Set muComb/muIso Backextrapolator tuned for real data
+                     'UseBackExtrapolatorDataForMuIso',
+                     #Monitoring for L1 muon group
+                     #'muCTPicheck',
+                     #Monitoring L1Topo at ROB level
+                     #'L1TopoCheck',
+                     'forceTileRODMap',
     ]
 
 #make some more common trig cost operations easier to setup
-if 'enableCostD3PD' in dir() or 'enableRateD3PD' in dir():
+if opt.enableCostD3PD:
     enableCostMonitoring = True # This goes without saying!
     enableCostForCAF = True # This sets the cost mon to monitor every event and always export the data.
 
-#-------------------------------------------------------------
-# Setup options
-#-------------------------------------------------------------
-log.info('Setup options:')
-for option in defaultOptions:
-    if option in dir():
-        print ' %20s = %s' % (option,str(globals()[option]))
-    else:
-        globals()[option]=defaultOptions[option]
-        print ' %20s = (Default) %s' % (option,str(globals()[option]))
 
-#we don't want anything further on to depend on these flags
-del newMenuSetup
-del setupForMC
+TriggerFlags.doID = opt.doID
+TriggerFlags.doMuon = opt.doMuon
+TriggerFlags.doCalo = opt.doCalo
 
 #-------------------------------------------------------------
 # Modifiers
 #-------------------------------------------------------------
-
 modifierList=[]
-import TriggerJobOpts.Modifiers
-if '_run_number' in dir(): TriggerJobOpts.Modifiers._run_number = _run_number
-
-try:  # Temporary backwards compatible hack
-    from TrigConfigSvc.TrigConfMetaData import TrigConfMetaData
-    meta = TrigConfMetaData()
-except:
-    log.warning("TrigConfigSvc.TrigConfMetaData not available in this release")
-    meta = None
+from TrigConfigSvc.TrigConfMetaData import TrigConfMetaData
+meta = TrigConfMetaData()
     
 for mod in dir(TriggerJobOpts.Modifiers):
     if not hasattr(getattr(TriggerJobOpts.Modifiers,mod),'preSetup'): continue
@@ -311,153 +245,45 @@ for mod in dir(TriggerJobOpts.Modifiers):
             if mod in setModifiers: setModifiers.remove(mod)
     if mod in setModifiers:
         modifierList+=[getattr(TriggerJobOpts.Modifiers,mod)()]
-        if meta: meta.Modifiers += [mod]    # store in trig conf meta data
+        meta.Modifiers += [mod]    # store in trig conf meta data
         setModifiers.remove(mod)
 
 if setModifiers:
     log.error('Unknown modifier(s): '+str(setModifiers))
 
 
-#-------------------------------------------------------------
-# Setting TriggerFlags
-#-------------------------------------------------------------
+# never include this
 include.block("RecExCond/RecExCommon_flags.py")
-log = logging.getLogger('runHLT_standalone.py')
-
-TriggerFlags.doHLTpersistency=False
-TriggerFlags.writeBS=True
-TriggerFlags.abortOnConfigurationError=True
-
-TriggerFlags.triggerMenuSetup=setMenu
-
-def stripPrescales(menu):
-    import re
-    m = re.match('(.*v\d(?:_primaries)?).*', menu)
-    return m.groups()[0] if m else menu
-
-# L1 Topo
-if setL1TopoXML=='TriggerMenuXML':    
-    setL1TopoXML='TriggerMenuXML/L1Topoconfig_'+stripPrescales(setMenu)+'.xml'
-TriggerFlags.inputL1TopoConfigFile   = setL1TopoXML
-TriggerFlags.readL1TopoConfigFromXML = True
-TriggerFlags.outputL1TopoConfigFile  = None
-
-# LVL1 config
-if setLVL1XML=='TriggerMenuXML':
-    setLVL1XML='TriggerMenuXML/LVL1config_'+stripPrescales(setMenu)+'.xml'
-TriggerFlags.inputLVL1configFile=setLVL1XML
-TriggerFlags.readLVL1configFromXML=True
-TriggerFlags.outputLVL1configFile=None
-
-# HLT config
-TriggerFlags.enableMonitoring = ['Online']
-TriggerFlags.readHLTconfigFromXML=False
-if setHLTXML!=None:
-    TriggerFlags.readHLTconfigFromXML=True
-    TriggerFlags.inputHLTconfigFile = setHLTXML
-
-log.info("Trigger xml files L1Topo : in = %s , out = %s (read from XML = %s)" % (TriggerFlags.inputL1TopoConfigFile(), TriggerFlags.outputL1TopoConfigFile(), TriggerFlags.readL1TopoConfigFromXML() ) )
-log.info("Trigger xml files LVL1   : in = %s , out = %s (read from XML = %s)" % (TriggerFlags.inputLVL1configFile(),   TriggerFlags.outputLVL1configFile(), TriggerFlags.readLVL1configFromXML() ) )
-log.info("Trigger xml files HLT    : in = %s , out = %s (read from XML = %s)" % (TriggerFlags.inputHLTconfigFile(),    TriggerFlags.outputHLTconfigFile(), TriggerFlags.readHLTconfigFromXML() ) )
-
-
-
-# define a unique HLT configuration xml when running in a partition
-import os
-if "TDAQ_PARTITION" in os.environ:
-    from TriggerJobOpts import Utils
-    ident = Utils.uniqueFileName()
-    TriggerFlags.outputHLTconfigFile ="outputHLTconfig_%s.xml" % ident
-    TriggerFlags.inputHLTconfigFile  ="outputHLTconfig_%s.xml" % ident
-
-### detector flags - we always run with everything on now
-TriggerFlags.doID=True
-TriggerFlags.doMuon=True
-TriggerFlags.doCalo=True
-
-from AthenaCommon.AthenaCommonFlags import athenaCommonFlags
-athenaCommonFlags.isOnline = True
-
-#TriggerFlags.CosmicSlice.testCosmic=False #Makes cosmic slice more quiet by default
 
 #-------------------------------------------------------------
-# Setting Global Flags
+# Setting DetFlags
 #-------------------------------------------------------------
-from AthenaCommon.GlobalFlags import globalflags
-globalflags.InputFormat='bytestream'  # default for athenaMT/PT
-
-# Input format and file for athena running
-if BSRDOInput!=None:
-    globalflags.InputFormat='bytestream'
-    if type(BSRDOInput)==type(''):
-        athenaCommonFlags.BSRDOInput=[BSRDOInput]
-    else:
-        athenaCommonFlags.BSRDOInput=BSRDOInput
-    athenaCommonFlags.FilesInput = athenaCommonFlags.BSRDOInput()
-elif PoolRDOInput!=None:    
-    globalflags.InputFormat='pool'
-    if type(PoolRDOInput)==type(''):
-        athenaCommonFlags.PoolRDOInput=[PoolRDOInput]
-    else:
-        athenaCommonFlags.PoolRDOInput=PoolRDOInput
-    athenaCommonFlags.FilesInput = athenaCommonFlags.PoolRDOInput()
-
-# Conditions and geometry tag
-if globalflags.InputFormat.is_pool() and (setDetDescr==None or setGlobalTag==None):
-    import PyUtils.AthFile as athFile
-    af = athFile.fopen(athenaCommonFlags.PoolRDOInput()[0])
-    if setDetDescr==None:
-        setDetDescr=af.fileinfos.get('geometry',None)
-        log.info('Geometry tag not specified. Setting from file meta data: setDetDescr="%s"' % setDetDescr)
-    if setGlobalTag==None:
-        setGlobalTag=af.fileinfos.get('conditions_tag',None)
-        log.info('Global conditions tag not specified. Setting from file meta data: setGlobalTag="%s"' % setGlobalTag)
-
-if setDetDescr==None:
-    raise RuntimeError('No geometry tag specified. Please use "setDetDescr" to set it.')
-if setGlobalTag==None:
-    raise RuntimeError('No global conditions tag specified. Please use "setGlobalTag" to set it.')
-
-if useCOMCONDDB:
-    globalflags.DetGeo='commis'
-    globalflags.DataSource='data'
-    if useCONDBR2:
-        if hasattr(globalflags,'DatabaseInstance'):
-            globalflags.DatabaseInstance='CONDBR2'
-        else:
-            log.error('This release does not support the use of CONDBR2')
-    else:
-        if hasattr(globalflags,'DatabaseInstance'):
-            globalflags.DatabaseInstance='COMP200'
+if globalflags.InputFormat.is_bytestream():
+    TriggerFlags.doLVL1 = False
+
+from AthenaCommon.DetFlags import DetFlags
+if TriggerFlags.doLVL1():
+    DetFlags.detdescr.all_setOn()
+if TriggerFlags.doID():
+    DetFlags.detdescr.ID_setOn()
+    DetFlags.makeRIO.ID_setOn()
 else:
-    globalflags.DetGeo='atlas'
-    globalflags.DataSource='geant4'
-        
-globalflags.DetDescrVersion=setDetDescr
-globalflags.Luminosity='zero'
-globalflags.ConditionsTag=setGlobalTag
-
-from AthenaCommon.BeamFlags import jobproperties
-if ('Cosmic' in setMenu) or ('LS1_v1' in setMenu):
-    jobproperties.Beam.beamType = 'cosmics'
+    DetFlags.ID_setOff()
+if TriggerFlags.doMuon():
+    DetFlags.detdescr.Muon_setOn()
+    DetFlags.makeRIO.all_setOn()
 else:
-    jobproperties.Beam.beamType = 'collisions'
-
-if globalflags.InputFormat=='bytestream':
-    if '_run_number' not in dir():
-        import PyUtils.AthFile as athFile
-        from AthenaCommon.AthenaCommonFlags import athenaCommonFlags
-        af = athFile.fopen(athenaCommonFlags.BSRDOInput()[0])
-        _run_number = af.run_number[0]
-
-    from RecExConfig.RecFlags import rec
-    rec.RunNumber =_run_number
-
-    if _run_number>=276073:       #start of periodD1, 25ns bunch spacing 
-        jobproperties.Beam.bunchSpacing=25
-        log.info('Bunch spacing set to %dns for a bytestream input. It can be overriden by BunchSpacing50ns=True'
-                 % jobproperties.Beam.bunchSpacing())
+    DetFlags.Muon_setOff()
+if TriggerFlags.doCalo():
+    DetFlags.detdescr.Calo_setOn()
+    from LArConditionsCommon.LArCondFlags import larCondFlags
+    larCondFlags.LoadElecCalib.set_Value_and_Lock(False)
+    from TrigT2CaloCommon.CaloDef import setMinimalCaloSetup
+    setMinimalCaloSetup()
+else:
+    DetFlags.Calo_setOff()
 
+DetFlags.Print()
 
 # RecEx flags
 from RecExConfig.RecFlags import rec
@@ -468,79 +294,217 @@ rec.doESD = False
 rec.doAOD = False
 rec.doTruth = False
 
-#-------------------------------------------------------------
-# Menu
-#  - allow to run individual slices by simply doing testSliceName=True
-#  - for more detailed control use "addSignatures" and "removeSignatures" directly
-#-------------------------------------------------------------
-sliceList=[]
-slicesToRun=[]
-for prop in dir(TriggerFlags):
-    if prop[-5:]=='Slice':
-        sliceName=prop
-        sliceList+=[sliceName]
-        if dir().count('test'+sliceName[:-5]) and globals()['test'+sliceName[:-5]]:
-            slicesToRun+=[sliceName]
-
-if slicesToRun or emptyMenu:
-    slicesToDisable=set(sliceList).difference(slicesToRun)
-    #make a list of slices to disable once the menu has been setup
-    for slice in slicesToDisable:
-        removeSignatures[slice]='ALL'
-else:
-    slicesToRun=['All']
-
 #-------------------------------------------------------------
 # Apply modifiers
 #-------------------------------------------------------------
 for mod in modifierList:
     mod.preSetup()
 
+#--------------------------------------------------------------
+# Conditions setup.
+#--------------------------------------------------------------
+from IOVDbSvc.CondDB import conddb #This import will also set up CondInputLoader
+conddb.setGlobalTag(globalflags.ConditionsTag())
+
+from AthenaCommon.AlgSequence import AlgSequence
+topSequence = AlgSequence()
+
+#--------------------------------------------------------------
+# Increase scheduler checks and verbosity
+#--------------------------------------------------------------
+from AthenaCommon.AlgScheduler import AlgScheduler
+AlgScheduler.CheckDependencies( True )
+AlgScheduler.ShowControlFlow( True )
+AlgScheduler.ShowDataDependencies( True )
+AlgScheduler.EnableVerboseViews( True )
+
+#--------------------------------------------------------------
+# Set the FailIfNoProxy property of SGInputLoader
+#--------------------------------------------------------------
+if not hasattr(topSequence,"SGInputLoader"):
+    log.error('Cannot set FailIfNoProxy property because SGInputLoader not found in topSequence')
+    theApp.exit(1)
+topSequence.SGInputLoader.FailIfNoProxy = opt.failIfNoProxy
+
+
+#--------------------------------------------------------------
+# Event Info setup
+#--------------------------------------------------------------
+# If no xAOD::EventInfo is found in a POOL file, schedule conversion from old EventInfo
+if globalflags.InputFormat.is_pool():
+    from RecExConfig.ObjKeyStore import objKeyStore
+    from PyUtils.MetaReaderPeeker import convert_itemList
+    objKeyStore.addManyTypesInputFile(convert_itemList(layout='#join'))
+    if ( not objKeyStore.isInInput("xAOD::EventInfo") ) and ( not hasattr(topSequence, "xAODMaker::EventInfoCnvAlg") ):
+        from xAODEventInfoCnv.xAODEventInfoCnvAlgDefault import xAODEventInfoCnvAlgDefault
+        xAODEventInfoCnvAlgDefault(sequence=topSequence)
 
-# should maybe implement the actual filter with regular expressions for added flexibility 
-def enableDisableChains():
-    # this functions is called in menu generations after the
-    # default signatures have been setup according to choice of menu
-    for s in sliceList:
-        slice=getattr(TriggerFlags,s)
-        if s in removeSignatures:
-            remove=removeSignatures[s]
-            log.warn('Disabling '+str(remove)+' of '+s)
-            if remove=='ALL':
-                signatures_all = slice.signatures.get_Value()  # Save the chain definitions
-                slice.signatures.set_Value([])                 # Remove all chains
-            else:
-                slice.disableSignatures(remove)
-        if s in addSignatures:
-            add=addSignatures[s]            
-            slice.enableSignatures([sig for sig in signatures_all if sig[0] in add])
-            log.info('Enabled '+str(add)+' in '+s)
-
-
-from TriggerMenu.menu.GenerateMenu import GenerateMenu
+# ----------------------------------------------------------------
+# Detector geometry 
+# ----------------------------------------------------------------
+# Always enable AtlasFieldSvc
+from AthenaCommon.DetFlags import DetFlags
+DetFlags.BField_setOn()
+include ("RecExCond/AllDet_detDescr.py")
 
-GenerateMenu.overwriteSignaturesWith(enableDisableChains)
+from RegionSelector.RegSelSvcDefault import RegSelSvcDefault
+svcMgr += RegSelSvcDefault()
 
+if TriggerFlags.doID():
+    include( "InDetRecExample/InDetRecCabling.py" )
 
-log.info("=============== Running slices: ===============")
-for s in slicesToRun:
-    log.info(s)
-log.info("===============================================")
+if TriggerFlags.doCalo():
+    from TrigT2CaloCommon.TrigT2CaloCommonConfig import TrigDataAccess
+    svcMgr.ToolSvc += TrigDataAccess()
+    if globalflags.InputFormat.is_pool():
+        TriggerFlags.doTransientByteStream = True # enable transient BS if TrigDataAccess is used with pool data
 
+if TriggerFlags.doMuon():
+    TriggerFlags.MuonSlice.doTrigMuonConfig=True
+    import MuonCnvExample.MuonCablingConfig  # noqa: F401
+    import MuonRecExample.MuonReadCalib      # noqa: F401
+    if globalflags.InputFormat.is_pool():
+        include( "MuonByteStreamCnvTest/jobOptions_MuonRDOToDigit.py" )
 
-#-------------------------------------------------------------
-# Setup trigger
-#-------------------------------------------------------------
-include("TriggerJobOpts/Trigger_topOptions_standalone.py")
-log = logging.getLogger('runHLT_standalone.py')
+    include ("MuonRecExample/MuonRecLoadTools.py")
 
 # ----------------------------------------------------------------
-# Number of events to be processed - for athena
+# Pool input
 # ----------------------------------------------------------------
-theApp.EvtMax = EvtMax
-if hasattr(svcMgr,"EventSelector"):
-    svcMgr.EventSelector.SkipEvents = SkipEvents 
-    
+if globalflags.InputFormat.is_pool():
+    import AthenaPoolCnvSvc.ReadAthenaPool   # noqa
+    svcMgr.AthenaPoolCnvSvc.PoolAttributes = [ "DEFAULT_BUFFERSIZE = '2048'" ]
+    svcMgr.PoolSvc.AttemptCatalogPatch=True
+    # enable transient BS 
+    if TriggerFlags.doTransientByteStream():
+        log.info("setting up transient BS")
+        include( "TriggerJobOpts/jobOfragment_TransBS_standalone.py" )
+     
+# ----------------------------------------------------------------
+# ByteStream input
+# ----------------------------------------------------------------
+elif globalflags.InputFormat.is_bytestream():
+
+    # This is only needed running athena (as opposed to athenaHLT)
+    if not hasattr(svcMgr,"ByteStreamCnvSvc"):
+        from ByteStreamCnvSvc import ReadByteStream   # noqa
+        # Define the input
+        svcMgr.ByteStreamInputSvc.FullFileName = athenaCommonFlags.FilesInput()
+        theApp.ExtSvc += [ "ByteStreamCnvSvc"]
+
+    # Online specific setup of BS converters
+    include( "TriggerJobOpts/jobOfragment_ReadBS_standalone.py" )    
+
+
+# ---------------------------------------------------------------
+# Trigger config
+# ---------------------------------------------------------------
+TriggerFlags.triggerMenuSetup = opt.setMenu
+TriggerFlags.readLVL1configFromXML = True
+TriggerFlags.outputLVL1configFile = None
+
+from TrigConfigSvc.TrigConfigSvcCfg import generateL1Menu
+l1JsonFile = generateL1Menu()
+
+from TrigConfigSvc.TrigConfigSvcCfg import getL1ConfigSvc
+svcMgr += getL1ConfigSvc()
+
+
+# ---------------------------------------------------------------
+# Level 1 simulation
+# ---------------------------------------------------------------
+if opt.doL1Sim:
+    from TriggerJobOpts.Lvl1SimulationConfig import Lvl1SimulationSequence
+    topSequence += Lvl1SimulationSequence()
+
+
+# ---------------------------------------------------------------
+# HLT prep: RoIBResult and L1Decoder
+# ---------------------------------------------------------------
+l1decoder = None
+if opt.doL1Unpacking:
+    if globalflags.InputFormat.is_bytestream():
+        # Create inputs for L1Decoder from ByteStream
+        from TrigT1ResultByteStream.TrigT1ResultByteStreamConfig import L1ByteStreamDecodersRecExSetup
+        L1ByteStreamDecodersRecExSetup(
+            enableRun2L1=opt.decodeLegacyL1,
+            enableRun3L1=opt.decodePhaseIL1)
+    if globalflags.InputFormat.is_bytestream() or opt.doL1Sim:
+        from L1Decoder.L1DecoderConfig import L1Decoder
+        l1decoder = L1Decoder("L1Decoder")
+        if not opt.decodeLegacyL1:
+            l1decoder.RoIBResult = ""
+        if not opt.decodePhaseIL1:
+            l1decoder.L1TriggerResult = ""
+        topSequence += l1decoder
+    else:
+        from TrigUpgradeTest.TestUtils import L1EmulationTest
+        topSequence += L1EmulationTest()
+
+
+# ---------------------------------------------------------------
+# HLT generation
+# ---------------------------------------------------------------
+
+if not opt.createHLTMenuExternally:
+
+    from TriggerMenuMT.HLTMenuConfig.Menu.GenerateMenuMT import GenerateMenuMT
+    menu = GenerateMenuMT()
+
+    # define the function that enable the signatures
+    def signaturesToGenerate():
+        TriggerFlags.Slices_all_setOff()
+        for sig in opt.enabledSignatures:
+            eval(sig)
+
+    menu.overwriteSignaturesWith(signaturesToGenerate)
+
+    # generating the HLT structure requires 
+    # the L1Decoder to be defined in the topSequence
+    menu.generateMT()
+
+    if opt.endJobAfterGenerate:
+        import sys
+        sys.exit(0)
+
+
+
+from TrigConfigSvc.TrigConfigSvcCfg import getHLTConfigSvc, setupHLTPrescaleCondAlg
+svcMgr += getHLTConfigSvc()
+setupHLTPrescaleCondAlg()
+
+if not opt.createHLTMenuExternally:
+    # the generation of the prescale set file from the menu (with all prescales set to 1)
+    # is not really needed. If no file is provided all chains are either enabled or disabled,
+    # depending on the property L1Decoder.PrescalingTool.KeepUnknownChains being True or False
+    from TrigConfigSvc.TrigConfigSvcCfg import createHLTPrescalesFileFromMenu
+    createHLTPrescalesFileFromMenu()
+
+
+
+# ---------------------------------------------------------------
+# ID conditions
+# ---------------------------------------------------------------
+
+if TriggerFlags.doID:
+    from InDetTrigRecExample.InDetTrigFlags import InDetTrigFlags
+    InDetTrigFlags.doPixelClusterSplitting = False
+  
+    # PixelLorentzAngleSvc and SCTLorentzAngleSvc
+    from AthenaCommon.Include import include
+    include("InDetRecExample/InDetRecConditionsAccess.py")
+
+
+# ---------------------------------------------------------------
+# Monitoring
+# ---------------------------------------------------------------
+if not hasattr(svcMgr, 'THistSvc'):
+    from GaudiSvc.GaudiSvcConf import THistSvc
+    svcMgr += THistSvc()
+if hasattr(svcMgr.THistSvc, "Output"):
+    from TriggerJobOpts.HLTTriggerGetter import setTHistSvcOutput
+    setTHistSvcOutput(svcMgr.THistSvc.Output)
+
 #-------------------------------------------------------------
 # Apply modifiers
 #-------------------------------------------------------------
@@ -550,14 +514,106 @@ for mod in modifierList:
 #-------------------------------------------------------------
 # Conditions overrides
 #-------------------------------------------------------------    
-if len(condOverride)>0:
-    from IOVDbSvc.CondDB import conddb    
-    for folder,tag in condOverride.iteritems():
-        log.warn('Overriding folder %s with tag %s' % (folder,tag))
+if len(opt.condOverride)>0:
+    for folder,tag in opt.condOverride.iteritems():
+        log.warning('Overriding folder %s with tag %s', folder, tag)
         conddb.addOverride(folder,tag)
-                
-if not TriggerFlags.Online.doValidation():  # Suppress this printout in ATN tests
+
+if svcMgr.MessageSvc.OutputLevel<INFO:
     from AthenaCommon.JobProperties import jobproperties
     jobproperties.print_JobProperties('tree&value')
-    print AlgSequence
-    print ServiceMgr
+    print(svcMgr)
+
+#-------------------------------------------------------------
+# Use parts of NewJO
+#-------------------------------------------------------------
+from AthenaCommon.Configurable import Configurable
+Configurable.configurableRun3Behavior+=1
+from TriggerJobOpts.TriggerConfig import triggerIDCCacheCreatorsCfg
+from AthenaConfiguration.AllConfigFlags import ConfigFlags
+
+# Output flags
+isPartition = len(ConfigFlags.Trigger.Online.partitionName) > 0
+if opt.doWriteRDOTrigger:
+    if isPartition:
+        log.error('Cannot use doWriteRDOTrigger in athenaHLT or partition')
+        theApp.exit(1)
+    rec.doWriteRDO = False  # RecExCommon flag
+    ConfigFlags.Output.doWriteRDO = True  # new JO flag
+    ConfigFlags.Output.RDOFileName = 'RDO_TRIG.pool.root'  # new JO flag
+if opt.doWriteBS:
+    rec.doWriteBS = True  # RecExCommon flag
+    TriggerFlags.writeBS = True  # RecExCommon flag
+    ConfigFlags.Output.doWriteBS = True  # new JO flag
+    ConfigFlags.Trigger.writeBS = True  # new JO flag
+
+# ID Cache Creators
+ConfigFlags.lock()
+triggerIDCCacheCreatorsCfg(ConfigFlags).appendToGlobals()
+Configurable.configurableRun3Behavior-=1
+
+# Trigger output
+if opt.doWriteBS or opt.doWriteRDOTrigger:
+    from TriggerJobOpts.TriggerConfig import collectHypos, collectFilters, collectDecisionObjects, collectHypoDecisionObjects, triggerOutputCfg
+    from AthenaCommon.CFElements import findAlgorithm,findSubSequence
+    hypos = collectHypos(findSubSequence(topSequence, "HLTAllSteps"))
+    filters = collectFilters(findSubSequence(topSequence, "HLTAllSteps"))
+
+    summaryMakerAlg = findAlgorithm(topSequence, "DecisionSummaryMakerAlg")
+    if not summaryMakerAlg:
+        log.warning("Failed to find DecisionSummaryMakerAlg")
+
+    if l1decoder and summaryMakerAlg:
+        decObj = collectDecisionObjects( hypos, filters, l1decoder, summaryMakerAlg )
+        decObjHypoOut = collectHypoDecisionObjects(hypos, inputs=False, outputs=True)
+        log.debug("Decision Objects to write to output [hack method - should be replaced with triggerRunCfg()]")
+        log.debug(decObj)
+    else:
+        log.warning("Failed to find L1Decoder or DecisionSummaryMakerAlg, cannot determine Decision names for output configuration")
+        decObj = []
+        decObjHypoOut = []
+
+    Configurable.configurableRun3Behavior+=1
+    acc, edmSet = triggerOutputCfg(ConfigFlags, decObj, decObjHypoOut, summaryMakerAlg)
+    Configurable.configurableRun3Behavior-=1
+    acc.appendToGlobals()
+
+#-------------------------------------------------------------
+# Non-ComponentAccumulator Cost Monitoring
+#-------------------------------------------------------------
+from AthenaCommon.AppMgr import ServiceMgr
+from TrigCostMonitorMT.TrigCostMonitorMTConf import TrigCostMTAuditor, TrigCostMTSvc
+
+# This should be temporary, it is doing the same job as TrigCostMonitorMTConfig but without using a ComponentAccumulator
+if ConfigFlags.Trigger.CostMonitoring.doCostMonitoring:
+    trigCostService = TrigCostMTSvc()
+    trigCostService.MonitorAllEvents = ConfigFlags.Trigger.CostMonitoring.monitorAllEvents
+    trigCostService.SaveHashes = True # This option will go away once the TrigConfigSvc is fully up & running
+    ServiceMgr += trigCostService
+    #
+    ServiceMgr.AuditorSvc += TrigCostMTAuditor()
+    theApp.AuditAlgorithms=True
+
+#-------------------------------------------------------------
+# Debugging for view cross-dependencies
+#-------------------------------------------------------------
+if opt.reverseViews or opt.filterViews:
+    from TriggerJobOpts.TriggerConfig import collectViewMakers
+    viewMakers = collectViewMakers( topSequence )
+    theFilter = []
+    if opt.filterViews:
+        theFilter = [ "Cache", "EventInfo", "HLT_EFHistoPrmVtx" ]
+    for alg in viewMakers:
+        alg.ReverseViewsDebug = opt.reverseViews
+        alg.FallThroughFilter = theFilter
+
+#-------------------------------------------------------------
+# Disable overly verbose and problematic ChronoStatSvc print-out
+#-------------------------------------------------------------
+include("TriggerTest/disableChronoStatSvcPrintout.py")
+
+#-------------------------------------------------------------
+# Print top sequence
+#-------------------------------------------------------------
+from AthenaCommon.AlgSequence import dumpSequence
+dumpSequence(topSequence)
diff --git a/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone_run2.py b/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone_run2.py
new file mode 100755
index 0000000000000000000000000000000000000000..21e2ac7a8de8136a61a817566ff7f93383d316ca
--- /dev/null
+++ b/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone_run2.py
@@ -0,0 +1,563 @@
+##############################################################
+# TriggerJobOpts/runHLT_standalone.py
+#
+#   jobOption file to run HLT standalone (independant of RecExCommon)
+#
+# Input could be Pool/RDO or BS
+#
+# Input file: (athena only)
+#   Pool: set by "PoolRDOInput"
+#   BS:   set by "BSRDOInput"
+#
+# L1Topo/L1 configuration are fixed
+#   set by "setLVL1XML" 
+#
+# HLT configuration uses Python configuration
+#   set by "setMenu" (can also include prescales)
+#   if used for MC, one needs to set "setupForMC" to True
+#   Individual slices can be run by doing "test<sliceName>=True"
+#   Individual signatures can be removed/added putting them in
+#     "removeSignatures" and "addSignatures"
+#     e.g. "addSignatures={'MuonSlice': ['mu6_ef']}"
+#
+# HLT configuration from existing XML file
+#   set by "setHLTXML"
+#
+# Geometry and conditions
+#   CommisDB         set by "useCOMCONDDB"
+#   Geometry         set by "setDetDescr"
+#   Conditions       set by "setGlobalTag"
+#   Folder overrides set by condOverride='{"Folder1":"Tag1", "Folder2":"Tag2"}'
+#
+# Special modifiers
+#   Currently certain options needs to be modified depending on the type of data
+#   Good defaults are provided for running on physics MC and cosmics Data
+#   Change by specifying list in "setModifiers" or turn modifiers on/off
+#    by doing "myModifier=True/False"
+#   Existing modifiers can be found in "TriggerJobOpts/python/Modifiers.py"
+#
+# Predefined setups
+#   certain menu configurations can be run just by doing
+#     testPhysicsV6=True or
+#     testMCV6=True or
+#     testPhysicsV6MC=True
+#   Note that for the addition of "MC" option. This is used for getting the MC setup.
+#
+# Usage:
+#  
+#   run with athenaHLT:
+#      athenaHLT -f input.data -c testPhysicsV6=True -l DEBUG -n 25 TriggerJobOpts/runHLT_standalone.py
+#      or with multiple files
+#      athenaHLT -f "['input1.data','input2.data']" -c testPhysicsV6=True -n 25 TriggerJobOpts/runHLT_standalone.py
+#      or, for writing BS output:
+#      athenaHLT -f input.data -c testPhysicsV6=True -n 25 -o outBS TriggerJobOpts/runHLT_standalone.py
+#      or, with online THistSvc
+#      athenaHLT -M -l DEBUG -c testPhysicsV6=True -n 25 TriggerJobOpts/runHLT_standalone.py
+#
+#   run with athena:
+#      BS input: athena.py -c "testPhysicsV6=True;BSRDOInput=['raw.data']" TriggerJobOpts/runHLT_standalone.py
+#      RDO input: athena.py -c "testPhysicsV6=True;PoolRDOInput=['file.pool.root']" TriggerJobOpts/runHLT_standalone.py
+#
+# Select slice(s) to test:
+#   set one or more of the following flags to True in the jo:
+#      testEgamma, testMuon, testTau, testJet, testBjet, testMET, testBphysics
+#    e.g.:
+#      athenaHLT -f input.data -l DEBUG -n 25 -c "testTau=True;testPhysicsV6=True" TriggerJobOpts/runHLT_standalone.py
+#
+#===========================================================================================
+from AthenaCommon.Logging import logging
+log = logging.getLogger('runHLT_standalone.py')
+
+#predefined menu setups accessible using 'test<NAME>[MC]=True' commandline
+menuMap={
+         #Run-3 preparation menu
+         'LS2V1':           ('LS2_v1',                  'TriggerMenuXML/LVL1config_LS2_v1.xml'),         
+
+         #2018 menus:       menu name                   L1 xml file
+         'HIV5':            ('Physics_HI_v5',           'TriggerMenuXML/LVL1config_Physics_HI_v5.xml'),
+         'MCHIV5':          ('MC_HI_v5',                'TriggerMenuXML/LVL1config_Physics_HI_v5.xml'),
+
+         #2017 menus:       menu name                   L1 xml file
+         'PhysicsV7':       ('Physics_pp_v7',           'TriggerMenuXML/LVL1config_Physics_pp_v7.xml'),
+         'MCV7':            ('MC_pp_v7',                'TriggerMenuXML/LVL1config_MC_pp_v7.xml'),
+
+         #2016 menus:       menu name                   L1 xml file
+         'PhysicsV6':       ('Physics_pp_v6',           'TriggerMenuXML/LVL1config_Physics_pp_v6.xml'),
+         'MCV6':            ('MC_pp_v6',                'TriggerMenuXML/LVL1config_MC_pp_v6.xml'),
+         'HIV4':            ('Physics_HI_v4',           'TriggerMenuXML/LVL1config_Physics_HI_v4.xml'),
+         'MCHIV4':          ('MC_HI_v4',                'TriggerMenuXML/LVL1config_Physics_HI_v4.xml'),
+
+         #2015 menus:       menu name                   L1 xml file
+         'PhysicsV5':       ('Physics_pp_v5',           'TriggerMenuXML/LVL1config_Physics_pp_v5.xml'),
+         'MCV5':            ('MC_pp_v5',                'TriggerMenuXML/LVL1config_MC_pp_v5.xml'),
+         'LS1V1':           ('LS1_v1',                  'TriggerMenuXML/LVL1config_Physics_pp_v4.xml'),
+         'DC14':            ('DC14',                    ''),
+         'HIV3':            ('Physics_HI_v3',           'TriggerMenuXML/LVL1config_Physics_HI_v3.xml'),
+         'MCHIV3':          ('MC_HI_v3',                'TriggerMenuXML/LVL1config_Physics_HI_v3.xml'),
+
+         #2012 menus:       menu name                   L1 xml file
+         'PhysicsV4':       ('Physics_pp_v4',           'TriggerMenuXML/LVL1config_Physics_pp_v4.xml'),
+         'MCV4':            ('MC_pp_v4',                'TriggerMenuXML/LVL1config_Physics_pp_v4.xml'),
+         'L1V4':            ('L1_pp_v4',                'TriggerMenuXML/LVL1config_L1_pp_v4.xml'),
+         'ALFAV2':          ('L1_alfa_v2',              'TriggerMenuXML/LVL1config_L1_alfa_v2.xml'),
+         'HIV2':            ('Physics_HI_v2',           'TriggerMenuXML/LVL1config_Physics_HI_v2.xml'),
+         'MCHIV2':          ('MC_HI_v2',                'TriggerMenuXML/LVL1config_Physics_HI_v2.xml'),
+
+         #2011 menus:          menu name                      L1 xml file
+         'CosmicPPV2':      ('Physics_pp_v2_cosmics_prescale',           'TriggerMenuXML/LVL1config_Physics_pp_v2.xml'),
+         'PhysicsV2':       ('Physics_pp_v2',           'TriggerMenuXML/LVL1config_Physics_pp_v2.xml'),
+         'MCV2':            ('MC_pp_v2',                'TriggerMenuXML/LVL1config_MC_pp_v2.xml'),
+         'L1V2':            ('L1_pp_v2',                'TriggerMenuXML/LVL1config_L1_pp_v2.xml'),
+         'HIV1':            ('Physics_HI_v1',           'TriggerMenuXML/LVL1config_Physics_HI_v1.xml'),
+         'MCHIV1':          ('MC_HI_v1',                'TriggerMenuXML/LVL1config_Physics_HI_v1.xml'),
+         'PhysicsV3':       ('Physics_pp_v3',           'TriggerMenuXML/LVL1config_Physics_pp_v3.xml'),
+         'MCV3':            ('MC_pp_v3',                'TriggerMenuXML/LVL1config_Physics_pp_v3.xml'),
+         'L1V3':            ('L1_pp_v3',                'TriggerMenuXML/LVL1config_L1_pp_v3.xml'),
+         'ALFAV1':          ('L1_alfa_v1',              'TriggerMenuXML/LVL1config_L1_alfa_v1.xml'),
+         
+         #2010 menus:          menu name                      L1 xml file
+         'InitialBeamV2':   ('InitialBeam_v2',          'TriggerMenuXML/LVL1config_InitialBeam_v2.xml'),
+         'MCInitialBeamV2': ('MC_InitialBeam_v2',       'TriggerMenuXML/LVL1config_InitialBeam_v2.xml'),
+         'CosmicV2':        ('Cosmic_v2',               'TriggerMenuXML/LVL1config_InitialBeam_v2.xml'),
+
+         'InitialBeamV3':   ('InitialBeam_v3',          'TriggerMenuXML/LVL1config_InitialBeam_v3.xml'),
+         'MCInitialBeamV3': ('MC_InitialBeam_v3',       'TriggerMenuXML/LVL1config_InitialBeam_v3.xml'),
+         'CosmicV3':        ('Cosmic_v3',               'TriggerMenuXML/LVL1config_InitialBeam_v3.xml'),
+
+         'PhysicsV1':       ('Physics_pp_v1',           'TriggerMenuXML/LVL1config_Physics_pp_v1.xml'),
+         'MCV1':            ('MC_pp_v1',                'TriggerMenuXML/LVL1config_Physics_pp_v1.xml'),
+         'CosmicPPV1':      ('Physics_pp_v1_cosmics_prescale','TriggerMenuXML/LVL1config_Physics_pp_v1.xml'),
+
+         #Upgrade menus:       menu name                   L1 xml file
+         'MCPhaseII':       ('MC_PhaseII',           'TriggerMenuXML/LVL1config_MC_PhaseII.xml'),
+}
+
+# Useful in job options beyond our control to always run the latest menu via 'testCurrentMenu=True'
+menuMap['CurrentMenu'] = menuMap['PhysicsV7']
+
+newMenuSetup=0
+for name in menuMap:
+    for key in ['','MC']:
+        if ('test'+name+key in dir()):
+            newMenuSetup+=1
+            setMenu=menuMap[name][0]
+            setLVL1XML=menuMap[name][1]
+            if len(menuMap[name])<=2:
+                # topo menu xml derived from l1 menu name
+                setL1TopoXML=menuMap[name][1].replace("/LVL1","/L1Topo")
+            else:
+                # topo menu xml explicitly given
+                setL1TopoXML=menuMap[name][2]
+                
+            if 'setupForMC' not in dir():
+                setupForMC=(key=='MC')
+                print 'Setting setupForMC = ',setupForMC
+
+if 'setupForMC' not in dir():
+    setupForMC=False
+
+if newMenuSetup>1:
+    log.fatal('More than one menu requested')
+    import sys
+    sys.exit(1)
+if newMenuSetup==0 and not ('setMenu' in dir()):
+    log.fatal('No trigger menu specified, use e.g. testPhysicsV6=True')
+    import sys
+    sys.exit(1)
+
+#setup options for standalone configurations
+
+defaultOptions={ 
+    'setMenu'          : setMenu,
+    'setupForMC'       : setupForMC,
+    'setLVL1XML'       : 'TriggerMenuXML',
+    'setL1TopoXML'     : 'TriggerMenuXML',
+    'setHLTXML'        : None,
+    'removeSignatures' : {},
+    'addSignatures'    : {},
+    'setDetDescr'      : None,
+    'setGlobalTag'     : None,
+    'useCONDBR2'       : True,
+    'condOverride'     : {},
+    'emptyMenu'        : False,
+    'PoolRDOInput'     : None,
+    'BSRDOInput'       : None,
+    'OutputLevel'      : INFO,
+    'HLTOutputLevel'   : INFO,
+    'EvtMax'           : -1,
+    'SkipEvents'       :  0,
+}
+
+
+#-------------------------------------------------------------
+# Transfer flags into TriggerFlags
+#-------------------------------------------------------------
+from TriggerJobOpts.TriggerFlags import TriggerFlags
+
+# To turn off HLT for athena running
+TriggerFlags.doHLT = True
+if 'doHLT' in dir():
+    TriggerFlags.doHLT = bool(doHLT)
+    del doHLT
+    
+# To extract the Trigger configuration
+if "doDBConfig" in dir():
+    TriggerFlags.Online.doDBConfig = bool(doDBConfig)
+    del doDBConfig
+if "trigBase" in dir():
+    TriggerFlags.Online.doDBConfigBaseName = trigBase
+    del trigBase
+
+
+#set geometry and conditions
+if setupForMC:   # for MC
+    defaultOptions['useCOMCONDDB']=False
+else:            # for data
+    defaultOptions['useCOMCONDDB']=True
+    defaultOptions['setDetDescr']=TriggerFlags.OnlineGeoTag()
+    defaultOptions['setGlobalTag']=TriggerFlags.OnlineCondTag()
+
+# Setup list of modifiers
+defaultOptions['setModifiers']=[#Common modifiers for MC and data
+                                'noLArCalibFolders',
+                                'ForceMuonDataType',
+                                'useNewRPCCabling',
+                                'enableCostMonitoring', 
+                                'enableCoherentPS',
+                                'useOracle',
+                                'detailedErrorStreams',
+                                'optimizeChainOrder',    
+                                'enableHotIDMasking',
+                                'openThresholdRPCCabling',
+                                #special streaming setup
+                                #'enable7BitL1TTStreaming',
+]
+
+if setupForMC:  # MC modifiers
+    defaultOptions['setModifiers']+=['BFieldFromDCS']
+else:           # More data modifiers
+    defaultOptions['setModifiers']+=[
+                                'allowCOOLUpdates',
+                                'useHLTMuonAlign',
+                                #Check for beamspot quality flag
+                                'UseBeamSpotFlagForBjet',
+                                'UseParamFromDataForBjet',
+                                #Use online luminosity
+                                'useOnlineLumi',
+                                #for running with real data
+                                'DisableMdtT0Fit',
+                                #Setup mufast tuning for data
+                                'UseLUTFromDataForMufast',
+                                'UseRPCTimeDelayFromDataForMufast',
+                                #Set muComb/muIso Backextrapolator tuned for real data
+                                'UseBackExtrapolatorDataForMuIso',
+                                #Monitoring for L1 muon group
+                                'muCTPicheck',
+                                #Monitoring L1Topo at ROB level
+                                'L1TopoCheck',
+                                'forceTileRODMap',
+                                #for tests with data:
+                                #'ignoreErrorStream', #nothing goes to debug stream
+                                #'inclusiveErrorStream', #errors go to both debug and physics streams
+                                #'ignoreL1Vetos',  #also run L2 prescaled and disabled L1 items
+                                #'disablePixels',
+                                #'disableSCTBarrel',
+                                'useDynamicAlignFolders',
+                                'enableALFAMon',
+    ]
+
+#make some more common trig cost operations easier to setup
+if 'enableCostD3PD' in dir() or 'enableRateD3PD' in dir():
+    enableCostMonitoring = True # This goes without saying!
+    enableCostForCAF = True # This sets the cost mon to monitor every event and always export the data.
+
+#-------------------------------------------------------------
+# Setup options
+#-------------------------------------------------------------
+log.info('Setup options:')
+for option in defaultOptions:
+    if option in dir():
+        print ' %20s = %s' % (option,str(globals()[option]))
+    else:
+        globals()[option]=defaultOptions[option]
+        print ' %20s = (Default) %s' % (option,str(globals()[option]))
+
+#we don't want anything further on to depend on these flags
+del newMenuSetup
+del setupForMC
+
+#-------------------------------------------------------------
+# Modifiers
+#-------------------------------------------------------------
+
+modifierList=[]
+import TriggerJobOpts.Modifiers
+if '_run_number' in dir(): TriggerJobOpts.Modifiers._run_number = _run_number
+
+try:  # Temporary backwards compatible hack
+    from TrigConfigSvc.TrigConfMetaData import TrigConfMetaData
+    meta = TrigConfMetaData()
+except:
+    log.warning("TrigConfigSvc.TrigConfMetaData not available in this release")
+    meta = None
+    
+for mod in dir(TriggerJobOpts.Modifiers):
+    if not hasattr(getattr(TriggerJobOpts.Modifiers,mod),'preSetup'): continue
+    if mod in dir():  #allow turning on and off modifiers by variable of same name
+        if globals()[mod]:
+            if mod not in setModifiers:
+                setModifiers+=[mod]
+        else:
+            if mod in setModifiers: setModifiers.remove(mod)
+    if mod in setModifiers:
+        modifierList+=[getattr(TriggerJobOpts.Modifiers,mod)()]
+        if meta: meta.Modifiers += [mod]    # store in trig conf meta data
+        setModifiers.remove(mod)
+
+if setModifiers:
+    log.error('Unknown modifier(s): '+str(setModifiers))
+
+
+#-------------------------------------------------------------
+# Setting TriggerFlags
+#-------------------------------------------------------------
+include.block("RecExCond/RecExCommon_flags.py")
+log = logging.getLogger('runHLT_standalone.py')
+
+TriggerFlags.doHLTpersistency=False
+TriggerFlags.writeBS=True
+TriggerFlags.abortOnConfigurationError=True
+
+TriggerFlags.triggerMenuSetup=setMenu
+
+def stripPrescales(menu):
+    import re
+    m = re.match('(.*v\d(?:_primaries)?).*', menu)
+    return m.groups()[0] if m else menu
+
+# L1 Topo
+if setL1TopoXML=='TriggerMenuXML':    
+    setL1TopoXML='TriggerMenuXML/L1Topoconfig_'+stripPrescales(setMenu)+'.xml'
+TriggerFlags.inputL1TopoConfigFile   = setL1TopoXML
+TriggerFlags.readL1TopoConfigFromXML = True
+TriggerFlags.outputL1TopoConfigFile  = None
+
+# LVL1 config
+if setLVL1XML=='TriggerMenuXML':
+    setLVL1XML='TriggerMenuXML/LVL1config_'+stripPrescales(setMenu)+'.xml'
+TriggerFlags.inputLVL1configFile=setLVL1XML
+TriggerFlags.readLVL1configFromXML=True
+TriggerFlags.outputLVL1configFile=None
+
+# HLT config
+TriggerFlags.enableMonitoring = ['Online']
+TriggerFlags.readHLTconfigFromXML=False
+if setHLTXML!=None:
+    TriggerFlags.readHLTconfigFromXML=True
+    TriggerFlags.inputHLTconfigFile = setHLTXML
+
+log.info("Trigger xml files L1Topo : in = %s , out = %s (read from XML = %s)" % (TriggerFlags.inputL1TopoConfigFile(), TriggerFlags.outputL1TopoConfigFile(), TriggerFlags.readL1TopoConfigFromXML() ) )
+log.info("Trigger xml files LVL1   : in = %s , out = %s (read from XML = %s)" % (TriggerFlags.inputLVL1configFile(),   TriggerFlags.outputLVL1configFile(), TriggerFlags.readLVL1configFromXML() ) )
+log.info("Trigger xml files HLT    : in = %s , out = %s (read from XML = %s)" % (TriggerFlags.inputHLTconfigFile(),    TriggerFlags.outputHLTconfigFile(), TriggerFlags.readHLTconfigFromXML() ) )
+
+
+
+# define a unique HLT configuration xml when running in a partition
+import os
+if "TDAQ_PARTITION" in os.environ:
+    from TriggerJobOpts import Utils
+    ident = Utils.uniqueFileName()
+    TriggerFlags.outputHLTconfigFile ="outputHLTconfig_%s.xml" % ident
+    TriggerFlags.inputHLTconfigFile  ="outputHLTconfig_%s.xml" % ident
+
+### detector flags - we always run with everything on now
+TriggerFlags.doID=True
+TriggerFlags.doMuon=True
+TriggerFlags.doCalo=True
+
+from AthenaCommon.AthenaCommonFlags import athenaCommonFlags
+athenaCommonFlags.isOnline = True
+
+#TriggerFlags.CosmicSlice.testCosmic=False #Makes cosmic slice more quiet by default
+
+#-------------------------------------------------------------
+# Setting Global Flags
+#-------------------------------------------------------------
+from AthenaCommon.GlobalFlags import globalflags
+globalflags.InputFormat='bytestream'  # default for athenaMT/PT
+
+# Input format and file for athena running
+if BSRDOInput!=None:
+    globalflags.InputFormat='bytestream'
+    if type(BSRDOInput)==type(''):
+        athenaCommonFlags.BSRDOInput=[BSRDOInput]
+    else:
+        athenaCommonFlags.BSRDOInput=BSRDOInput
+    athenaCommonFlags.FilesInput = athenaCommonFlags.BSRDOInput()
+elif PoolRDOInput!=None:    
+    globalflags.InputFormat='pool'
+    if type(PoolRDOInput)==type(''):
+        athenaCommonFlags.PoolRDOInput=[PoolRDOInput]
+    else:
+        athenaCommonFlags.PoolRDOInput=PoolRDOInput
+    athenaCommonFlags.FilesInput = athenaCommonFlags.PoolRDOInput()
+
+# Conditions and geometry tag
+if globalflags.InputFormat.is_pool() and (setDetDescr==None or setGlobalTag==None):
+    import PyUtils.AthFile as athFile
+    af = athFile.fopen(athenaCommonFlags.PoolRDOInput()[0])
+    if setDetDescr==None:
+        setDetDescr=af.fileinfos.get('geometry',None)
+        log.info('Geometry tag not specified. Setting from file meta data: setDetDescr="%s"' % setDetDescr)
+    if setGlobalTag==None:
+        setGlobalTag=af.fileinfos.get('conditions_tag',None)
+        log.info('Global conditions tag not specified. Setting from file meta data: setGlobalTag="%s"' % setGlobalTag)
+
+if setDetDescr==None:
+    raise RuntimeError('No geometry tag specified. Please use "setDetDescr" to set it.')
+if setGlobalTag==None:
+    raise RuntimeError('No global conditions tag specified. Please use "setGlobalTag" to set it.')
+
+if useCOMCONDDB:
+    globalflags.DetGeo='commis'
+    globalflags.DataSource='data'
+    if useCONDBR2:
+        if hasattr(globalflags,'DatabaseInstance'):
+            globalflags.DatabaseInstance='CONDBR2'
+        else:
+            log.error('This release does not support the use of CONDBR2')
+    else:
+        if hasattr(globalflags,'DatabaseInstance'):
+            globalflags.DatabaseInstance='COMP200'
+else:
+    globalflags.DetGeo='atlas'
+    globalflags.DataSource='geant4'
+        
+globalflags.DetDescrVersion=setDetDescr
+globalflags.Luminosity='zero'
+globalflags.ConditionsTag=setGlobalTag
+
+from AthenaCommon.BeamFlags import jobproperties
+if ('Cosmic' in setMenu) or ('LS1_v1' in setMenu):
+    jobproperties.Beam.beamType = 'cosmics'
+else:
+    jobproperties.Beam.beamType = 'collisions'
+
+if globalflags.InputFormat=='bytestream':
+    if '_run_number' not in dir():
+        import PyUtils.AthFile as athFile
+        from AthenaCommon.AthenaCommonFlags import athenaCommonFlags
+        af = athFile.fopen(athenaCommonFlags.BSRDOInput()[0])
+        _run_number = af.run_number[0]
+
+    from RecExConfig.RecFlags import rec
+    rec.RunNumber =_run_number
+
+    if _run_number>=276073:       #start of periodD1, 25ns bunch spacing 
+        jobproperties.Beam.bunchSpacing=25
+        log.info('Bunch spacing set to %dns for a bytestream input. It can be overriden by BunchSpacing50ns=True'
+                 % jobproperties.Beam.bunchSpacing())
+
+
+# RecEx flags
+from RecExConfig.RecFlags import rec
+rec.doWriteESD = False
+rec.doWriteAOD = False
+rec.doWriteTAG = False
+rec.doESD = False
+rec.doAOD = False
+rec.doTruth = False
+
+#-------------------------------------------------------------
+# Menu
+#  - allow to run individual slices by simply doing testSliceName=True
+#  - for more detailed control use "addSignatures" and "removeSignatures" directly
+#-------------------------------------------------------------
+sliceList=[]
+slicesToRun=[]
+for prop in dir(TriggerFlags):
+    if prop[-5:]=='Slice':
+        sliceName=prop
+        sliceList+=[sliceName]
+        if dir().count('test'+sliceName[:-5]) and globals()['test'+sliceName[:-5]]:
+            slicesToRun+=[sliceName]
+
+if slicesToRun or emptyMenu:
+    slicesToDisable=set(sliceList).difference(slicesToRun)
+    #make a list of slices to disable once the menu has been setup
+    for slice in slicesToDisable:
+        removeSignatures[slice]='ALL'
+else:
+    slicesToRun=['All']
+
+#-------------------------------------------------------------
+# Apply modifiers
+#-------------------------------------------------------------
+for mod in modifierList:
+    mod.preSetup()
+
+
+# should maybe implement the actual filter with regular expressions for added flexibility 
+def enableDisableChains():
+    # this functions is called in menu generations after the
+    # default signatures have been setup according to choice of menu
+    for s in sliceList:
+        slice=getattr(TriggerFlags,s)
+        if s in removeSignatures:
+            remove=removeSignatures[s]
+            log.warn('Disabling '+str(remove)+' of '+s)
+            if remove=='ALL':
+                signatures_all = slice.signatures.get_Value()  # Save the chain definitions
+                slice.signatures.set_Value([])                 # Remove all chains
+            else:
+                slice.disableSignatures(remove)
+        if s in addSignatures:
+            add=addSignatures[s]            
+            slice.enableSignatures([sig for sig in signatures_all if sig[0] in add])
+            log.info('Enabled '+str(add)+' in '+s)
+
+
+from TriggerMenu.menu.GenerateMenu import GenerateMenu
+
+GenerateMenu.overwriteSignaturesWith(enableDisableChains)
+
+
+log.info("=============== Running slices: ===============")
+for s in slicesToRun:
+    log.info(s)
+log.info("===============================================")
+
+
+#-------------------------------------------------------------
+# Setup trigger
+#-------------------------------------------------------------
+include("TriggerJobOpts/Trigger_topOptions_standalone.py")
+log = logging.getLogger('runHLT_standalone.py')
+
+# ----------------------------------------------------------------
+# Number of events to be processed - for athena
+# ----------------------------------------------------------------
+theApp.EvtMax = EvtMax
+if hasattr(svcMgr,"EventSelector"):
+    svcMgr.EventSelector.SkipEvents = SkipEvents 
+    
+#-------------------------------------------------------------
+# Apply modifiers
+#-------------------------------------------------------------
+for mod in modifierList:
+    mod.postSetup()
+
+#-------------------------------------------------------------
+# Conditions overrides
+#-------------------------------------------------------------    
+if len(condOverride)>0:
+    from IOVDbSvc.CondDB import conddb    
+    for folder,tag in condOverride.iteritems():
+        log.warn('Overriding folder %s with tag %s' % (folder,tag))
+        conddb.addOverride(folder,tag)
+                
+if not TriggerFlags.Online.doValidation():  # Suppress this printout in ATN tests
+    from AthenaCommon.JobProperties import jobproperties
+    jobproperties.print_JobProperties('tree&value')
+    print AlgSequence
+    print ServiceMgr
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/scripts/generateMenuMT.py b/Trigger/TriggerCommon/TriggerMenuMT/scripts/generateMenuMT.py
index d37c4af5d851c218933c1d241df4bd42c422abed..c98b0ae0c8cec78fb52f3ff326cd241d834dabbe 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/scripts/generateMenuMT.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/scripts/generateMenuMT.py
@@ -1,7 +1,9 @@
-# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 
 # import flags
-include("TrigUpgradeTest/testHLT_MT.py")  # noqa: F821
+doWriteRDOTrigger = False
+doWriteBS = False
+include("TriggerJobOpts/runHLT_standalone.py")  # noqa: F821
 
 #################################
 # Configure L1Decoder
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/share/generateMT.py b/Trigger/TriggerCommon/TriggerMenuMT/share/generateMT.py
index eac3b0e4bcb1c33e99ca2796f484a08755156c21..9f5039fe5a8d35d0942a26ec1af5698299978df6 100755
--- a/Trigger/TriggerCommon/TriggerMenuMT/share/generateMT.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/share/generateMT.py
@@ -1,8 +1,10 @@
-# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 
 setMenu             = "LS2_v1"
+doWriteRDOTrigger   = False
+doWriteBS           = False
 endJobAfterGenerate = False
 from TriggerJobOpts.TriggerFlags import TriggerFlags
 TriggerFlags.generateMenuDiagnostics = True
-include("TrigUpgradeTest/testHLT_MT.py")
+include("TriggerJobOpts/runHLT_standalone.py")