diff --git a/HLT/Trigger/TrigControl/TrigExamples/TrigExPartialEB/python/MTCalibPebConfig.py b/HLT/Trigger/TrigControl/TrigExamples/TrigExPartialEB/python/MTCalibPebConfig.py
index 54c2ac3e3f1e2318f9bffd35cc2c20852309eb13..578160983896df3f99fe3975bdfd2acd4d038b4d 100644
--- a/HLT/Trigger/TrigControl/TrigExamples/TrigExPartialEB/python/MTCalibPebConfig.py
+++ b/HLT/Trigger/TrigControl/TrigExamples/TrigExPartialEB/python/MTCalibPebConfig.py
@@ -97,7 +97,8 @@ class MTCalibPebHypoOptions:
         self.PEBROBList = []
         self.PEBSubDetList = []
         self.CreateRandomData = {}
-        self.EnableL1Phase1 = False  # Sets ConfigFlags.Trigger.enableL1Phase1
+        self.EnableL1CaloPhase1 = False  # Sets ConfigFlags.Trigger.enableL1CaloPhase1
+        self.EnableL1MuonPhase1 = False  # Sets ConfigFlags.Trigger.enableL1MuonPhase1
         self.EnableL1CaloLegacy = True  # Sets ConfigFlags.Trigger.enableL1CaloLegacy
 
 
@@ -111,7 +112,8 @@ def set_flags(flags, options=default_options):
     flags.IOVDb.DatabaseInstance = 'CONDBR2'
     flags.IOVDb.GlobalTag = flags.Trigger.OnlineCondTag
     flags.Trigger.triggerMenuSetup = 'LS2_v1'
-    flags.Trigger.enableL1Phase1 = options.EnableL1Phase1
+    flags.Trigger.enableL1MuonPhase1 = options.EnableL1MuonPhase1
+    flags.Trigger.enableL1CaloPhase1 = options.EnableL1CaloPhase1
     flags.Trigger.enableL1CaloLegacy = options.EnableL1CaloLegacy
     flags.Trigger.L1Decoder.forceEnableAllChains = True
 
diff --git a/HLT/Trigger/TrigControl/TrigExamples/TrigExPartialEB/share/MTCalibPeb.py b/HLT/Trigger/TrigControl/TrigExamples/TrigExPartialEB/share/MTCalibPeb.py
index 5632f4d9792ef963c32114ffd4a337a7b29f9015..eebfc16195d565c1c065e118f68aacb4b63d8c55 100644
--- a/HLT/Trigger/TrigControl/TrigExamples/TrigExPartialEB/share/MTCalibPeb.py
+++ b/HLT/Trigger/TrigControl/TrigExamples/TrigExPartialEB/share/MTCalibPeb.py
@@ -27,7 +27,8 @@ MTCalibPebConfig.default_options.TimeBetweenROBReqMillisec = get_opt('TimeBetwee
 MTCalibPebConfig.default_options.PEBROBList = get_opt('PEBROBList', [])
 MTCalibPebConfig.default_options.PEBSubDetList = get_opt('PEBSubDetList', [])
 MTCalibPebConfig.default_options.CreateRandomData = get_opt('CreateRandomData', {})
-MTCalibPebConfig.default_options.EnableL1Phase1 = get_opt('EnableL1Phase1', False)
+MTCalibPebConfig.default_options.EnableL1CaloPhase1 = get_opt('EnableL1CaloPhase1', False)
+MTCalibPebConfig.default_options.EnableL1MuonPhase1 = get_opt('EnableL1MuonPhase1', False)
 MTCalibPebConfig.default_options.EnableL1CaloLegacy = get_opt('EnableL1CaloLegacy', True)
 
 # SGInputLoader takes care of unmet input dependencies (e.g. triggering conversion from BS)
diff --git a/MuonSpectrometer/MuonCnv/MuonCnvExample/python/MuonCablingConfig.py b/MuonSpectrometer/MuonCnv/MuonCnvExample/python/MuonCablingConfig.py
index 8131f42c4d5dd42cea9b96a6fc8d3ac82778dc84..807b207393b968807e515d9c3b9e4b83bbb012ca 100644
--- a/MuonSpectrometer/MuonCnv/MuonCnvExample/python/MuonCablingConfig.py
+++ b/MuonSpectrometer/MuonCnv/MuonCnvExample/python/MuonCablingConfig.py
@@ -49,8 +49,8 @@ if DetFlags.readRDOBS.RPC_on() or DetFlags.readRDOPool.RPC_on() or DetFlags.read
     # without the following line, the MuonRPC_CablingSvc is not part of the ServiceMgr, thus add flake8 ignore flag
     import MuonRPC_Cabling.MuonRPC_CablingConfig # noqa: F401
     from AthenaConfiguration.AllConfigFlags import ConfigFlags
-    enableL1Phase1 = ConfigFlags.Trigger.enableL1Phase1 if ConfigFlags.Trigger.enableL1Phase1 is not None else False
-    if enableL1Phase1:
+    enableL1MuonPhase1 = ConfigFlags.Trigger.enableL1MuonPhase1 if ConfigFlags.Trigger.enableL1MuonPhase1 is not None else False
+    if enableL1MuonPhase1:
         ServiceMgr.MuonRPC_CablingSvc.RPCTriggerRoadsfromCool = False
         from PathResolver import PathResolver
         ServiceMgr.MuonRPC_CablingSvc.DatabaseRepository=PathResolver.FindCalibDirectory("MuonRPC_Cabling/RUN3_roads_4_6_8_10_12")
diff --git a/MuonSpectrometer/MuonConfig/python/MuonCablingConfig.py b/MuonSpectrometer/MuonConfig/python/MuonCablingConfig.py
index b5c9eaf53ee5448e7e733d53644ef6ca30cc31b8..aa3b05ba07cc98af64986a83f9c8beb41fa53a34 100644
--- a/MuonSpectrometer/MuonConfig/python/MuonCablingConfig.py
+++ b/MuonSpectrometer/MuonConfig/python/MuonCablingConfig.py
@@ -30,7 +30,7 @@ def RPCCablingConfigCfg(flags):
     rpcCablingSvc.ConfFileName = 'LVL1confAtlas.data' # this should come from config flag maybe ???
     rpcCablingSvc.CorrFileName = 'LVL1confAtlas.corr' 
     rpcCablingSvc.ConfFilePath = 'MuonRPC_Cabling/'
-    if flags.Trigger.enableL1Phase1:
+    if flags.Trigger.enableL1MuonPhase1:
         rpcCablingSvc.RPCTriggerRoadsfromCool = False
         from PathResolver import PathResolver
         rpcCablingSvc.DatabaseRepository=PathResolver.FindCalibDirectory("MuonRPC_Cabling/RUN3_roads_4_6_8_10_12")
diff --git a/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/python/AnalysisTriggerAlgsCAConfig.py b/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/python/AnalysisTriggerAlgsCAConfig.py
index 367c811d0eaf93a532b2d5a49395eeea25483e59..eded8d08d1094d4a11a687e81f24eb3cd0f63fe0 100644
--- a/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/python/AnalysisTriggerAlgsCAConfig.py
+++ b/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/python/AnalysisTriggerAlgsCAConfig.py
@@ -4,13 +4,13 @@ from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
 from AthenaConfiguration.ComponentFactory import CompFactory
 
 def RoIBResultToxAODCfg(flags):
-    if flags.Trigger.enableL1Phase1 and not flags.Trigger.enableL1CaloLegacy:
+    if (flags.Trigger.enableL1MuonPhase1 and flags.Trigger.enableL1CaloPhase1) and not flags.Trigger.enableL1CaloLegacy:
         # No Run-2 L1 RoIs -> nothing to covert to xAOD -> don't add RoIBResultToxAOD
         return ComponentAccumulator()
 
     acc = ComponentAccumulator()
     alg = CompFactory.RoIBResultToxAOD('RoIBResultToxAOD')
-    alg.DoMuon = not flags.Trigger.enableL1Phase1
+    alg.DoMuon = not flags.Trigger.enableL1MuonPhase1
     alg.DoCalo = flags.Trigger.enableL1CaloLegacy
     acc.addEventAlgo(alg)
 
diff --git a/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/python/AnalysisTriggerAlgsConfig.py b/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/python/AnalysisTriggerAlgsConfig.py
index b1becc3b3145ed7f62f1c4965b92f95151d415ec..76dcee35f7b3195fbcaf0cd2b5a361e725d5ff10 100644
--- a/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/python/AnalysisTriggerAlgsConfig.py
+++ b/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/python/AnalysisTriggerAlgsConfig.py
@@ -60,9 +60,9 @@ class DefaultRoIBResultToAOD( genConfRoIBResultToAOD ):
             #TGC and RPC RecRoiTools
             from TrigT1MuonRecRoiTool.TrigT1MuonRecRoiToolConf import LVL1__TrigT1RPCRecRoiTool, LVL1__TrigT1TGCRecRoiTool
             from AthenaConfiguration.AllConfigFlags import ConfigFlags
-            rpcRecRoiTool = LVL1__TrigT1RPCRecRoiTool("RPCRecRoiTool", UseRun3Config=ConfigFlags.Trigger.enableL1Phase1)
+            rpcRecRoiTool = LVL1__TrigT1RPCRecRoiTool("RPCRecRoiTool", UseRun3Config=ConfigFlags.Trigger.enableL1MuonPhase1)
             self.RecRpcRoiTool = rpcRecRoiTool
-            tgcRecRoiTool = LVL1__TrigT1TGCRecRoiTool("TGCRecRoiTool", UseRun3Config=ConfigFlags.Trigger.enableL1Phase1)
+            tgcRecRoiTool = LVL1__TrigT1TGCRecRoiTool("TGCRecRoiTool", UseRun3Config=ConfigFlags.Trigger.enableL1MuonPhase1)
             self.RecTgcRoiTool = tgcRecRoiTool
         else:
             self.RecRpcRoiTool=""
diff --git a/Simulation/Digitization/share/LVL1Digitization.py b/Simulation/Digitization/share/LVL1Digitization.py
index 92f0ce869753f8ba3e3ff03f349ba913a5ed40ec..894db71b8de87b41cd401916f8728fe9c3bd95d1 100755
--- a/Simulation/Digitization/share/LVL1Digitization.py
+++ b/Simulation/Digitization/share/LVL1Digitization.py
@@ -115,7 +115,7 @@ if DetFlags.digitize.LVL1_on():
     #--------------------------------------------------------------
     if DetFlags.simulateLVL1.RPC_on() or DetFlags.simulateLVL1.TGC_on():
         from AthenaConfiguration.AllConfigFlags import ConfigFlags
-        if ConfigFlags.Trigger.enableL1Phase1:
+        if ConfigFlags.Trigger.enableL1MuonPhase1:
             from TrigT1MuctpiPhase1.TrigT1MuctpiPhase1Config import L1MuctpiPhase1
             topSequence += L1MuctpiPhase1()
         else:
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/python/TrigL2MuonSAConfig.py b/Trigger/TrigAlgorithms/TrigL2MuonSA/python/TrigL2MuonSAConfig.py
index a563c6b6e355a76f64c53d17e05a09a1726ded6c..695c2511fe4d42b1c9d44100acaa6e542463a547 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/python/TrigL2MuonSAConfig.py
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/python/TrigL2MuonSAConfig.py
@@ -13,7 +13,7 @@ log = logging.getLogger('TrigL2MuonSAConfig')
 theStationFitter     = MuonSA.TrigL2MuonSA__MuFastStationFitter(PtFromAlphaBeta = MuonSA.TrigL2MuonSA__PtFromAlphaBeta())
 
 from TrigT1MuonRecRoiTool.TrigT1MuonRecRoiToolConf import LVL1__TrigT1RPCRecRoiTool
-trigRpcRoiTool = LVL1__TrigT1RPCRecRoiTool("RPCRecRoiTool", UseRun3Config=ConfigFlags.Trigger.enableL1Phase1)
+trigRpcRoiTool = LVL1__TrigT1RPCRecRoiTool("RPCRecRoiTool", UseRun3Config=ConfigFlags.Trigger.enableL1MuonPhase1)
 
 theDataPreparator    = MuonSA.TrigL2MuonSA__MuFastDataPreparator()
 theDataPreparator.RPCDataPreparator  = MuonSA.TrigL2MuonSA__RpcDataPreparator( TrigT1RPCRecRoiTool = trigRpcRoiTool)
diff --git a/Trigger/TrigSteer/L1Decoder/python/L1DecoderConfig.py b/Trigger/TrigSteer/L1Decoder/python/L1DecoderConfig.py
index 35938737cc29c3364b08fd0bbb79f696dbed40b6..363b10ac66d6462761d96def6f520108daddc354 100644
--- a/Trigger/TrigSteer/L1Decoder/python/L1DecoderConfig.py
+++ b/Trigger/TrigSteer/L1Decoder/python/L1DecoderConfig.py
@@ -96,8 +96,8 @@ def createMuonRoIUnpackers(flags):
         Decisions = mapThresholdToL1DecisionCollection("MU"),
         OutputTrigRoIs = recordable(mapThresholdToL1RoICollection("MU")))
 
-    muUnpacker.OutputRecRoIs = "" if flags.Trigger.enableL1Phase1 else "HLT_RecMURoIs"
-    muUnpacker.MuRoILinkName = "LVL1MuonRoIs" if flags.Trigger.enableL1Phase1 else ""
+    muUnpacker.OutputRecRoIs = "" if flags.Trigger.enableL1MuonPhase1 else "HLT_RecMURoIs"
+    muUnpacker.MuRoILinkName = "LVL1MuonRoIs" if flags.Trigger.enableL1MuonPhase1 else ""
     muUnpacker.MonTool = RoIsUnpackingMonitoring( prefix="MU", maxCount=20 )
 
     return [muUnpacker]
@@ -114,14 +114,20 @@ def createKeyWriterTool():
     keyWriter.IncludeL1PrescaleKey = False
     return keyWriter
 
-def getL1TriggerResultMaker():
+def getL1TriggerResultMaker(flags):
     l1trMaker = CompFactory.L1TriggerResultMaker()
 
     # Muon RoIs
-    l1trMaker.MuRoIKey = "LVL1MuonRoIs"
+    if flags.Trigger.enableL1MuonPhase1:
+       l1trMaker.MuRoIKey = "LVL1MuonRoIs"
+    else:
+       l1trMaker.MuRoIKey = ""
 
     # L1Calo RoIs
-    l1trMaker.eFexEMRoIKey = "L1_eEMRoI"
+    if flags.Trigger.enableL1CaloPhase1:
+       l1trMaker.eFexEMRoIKey = "L1_eEMRoI"
+    else:
+       l1trMaker.eFexEMRoIKey = ""
 
     # Placeholder for other L1 xAOD outputs:
     # - CTP result
@@ -150,7 +156,7 @@ class L1Decoder(CompFactory.L1Decoder) :
                                             OutputTrigRoIs = recordable(mapThresholdToL1RoICollection("FSNOSEED") )) ]
         # EM unpacker
         if TriggerFlags.doID() or TriggerFlags.doCalo():
-            if flags.Trigger.enableL1Phase1:
+            if flags.Trigger.enableL1CaloPhase1:
                 self.xAODRoIUnpackers += createCaloRoIUnpackers()
             if flags.Trigger.enableL1CaloLegacy:
                 self.RoIBRoIUnpackers += createLegacyCaloRoIUnpackers()
@@ -158,7 +164,7 @@ class L1Decoder(CompFactory.L1Decoder) :
         # MU unpacker
         if TriggerFlags.doMuon():
             unpackers = createMuonRoIUnpackers(flags)
-            if flags.Trigger.enableL1Phase1:
+            if flags.Trigger.enableL1MuonPhase1:
                 self.xAODRoIUnpackers += unpackers
             else:
                 self.RoIBRoIUnpackers += unpackers
@@ -185,8 +191,8 @@ def L1DecoderCfg(flags, seqName = None):
         acc = ComponentAccumulator()
     from L1Decoder.L1DecoderMonitoring import CTPUnpackingMonitoring
     decoderAlg = CompFactory.L1Decoder()
-    decoderAlg.RoIBResult = "RoIBResult" if flags.Trigger.enableL1CaloLegacy or not flags.Trigger.enableL1Phase1 else ""
-    decoderAlg.L1TriggerResult = "L1TriggerResult" if flags.Trigger.enableL1Phase1 else ""
+    decoderAlg.RoIBResult = "RoIBResult" if flags.Trigger.enableL1CaloLegacy or not flags.Trigger.enableL1MuonPhase1 else ""
+    decoderAlg.L1TriggerResult = "L1TriggerResult" if flags.Trigger.enableL1MuonPhase1 or flags.Trigger.enableL1CaloPhase1 else ""
     decoderAlg.L1DecoderSummaryKey = "L1DecoderSummary" # Transient, consumed by DecisionSummaryMakerAlg
     decoderAlg.ctpUnpacker = CompFactory.CTPUnpackingTool( ForceEnableAllChains = flags.Trigger.L1Decoder.forceEnableAllChains,
                                                            MonTool = CTPUnpackingMonitoring(512, 200) )
@@ -202,14 +208,14 @@ def L1DecoderCfg(flags, seqName = None):
                                         OutputTrigRoIs = recordable(mapThresholdToL1RoICollection("FSNOSEED")) ) ]
 
     if flags.Trigger.doCalo:
-        if flags.Trigger.enableL1Phase1:
+        if flags.Trigger.enableL1CaloPhase1:
             decoderAlg.xAODRoIUnpackers += createCaloRoIUnpackers()
         if flags.Trigger.enableL1CaloLegacy:
             decoderAlg.RoIBRoIUnpackers += createLegacyCaloRoIUnpackers()
 
     if flags.Trigger.doMuon:
         unpackers = createMuonRoIUnpackers(flags)
-        if flags.Trigger.enableL1Phase1:
+        if flags.Trigger.enableL1MuonPhase1:
             decoderAlg.xAODRoIUnpackers += unpackers
         else:
             decoderAlg.RoIBRoIUnpackers += unpackers
@@ -228,8 +234,8 @@ def L1DecoderCfg(flags, seqName = None):
         acc.merge( L1TriggerByteStreamDecoderCfg(flags), sequenceName = seqName )
 
     # Add the algorithm creating L1TriggerResult which is the input to L1Decoder (Run-3 L1)
-    if flags.Trigger.enableL1Phase1:
-        acc.addEventAlgo( getL1TriggerResultMaker(), sequenceName = seqName )
+    if flags.Trigger.enableL1MuonPhase1 or flags.Trigger.enableL1CaloPhase1:
+        acc.addEventAlgo( getL1TriggerResultMaker(flags), sequenceName = seqName )
 
     acc.addEventAlgo( decoderAlg, sequenceName = seqName )
 
diff --git a/Trigger/TrigT1/L1Topo/L1TopoSimulation/python/L1TopoSimulationConfig.py b/Trigger/TrigT1/L1Topo/L1TopoSimulation/python/L1TopoSimulationConfig.py
index c9daf9272ca6ef71946f40ef9e3f963aec5a54d8..7d4ceaf1454f7aa69c28da2ffa4ac26151f3d1d1 100644
--- a/Trigger/TrigT1/L1Topo/L1TopoSimulation/python/L1TopoSimulationConfig.py
+++ b/Trigger/TrigT1/L1Topo/L1TopoSimulation/python/L1TopoSimulationConfig.py
@@ -25,7 +25,7 @@ def L1TopoSimulationMCCfg(flags):
     acc = ComponentAccumulator()
 
     #Grab the MUCTPI tool
-    if flags.Trigger.enableL1Phase1:
+    if flags.Trigger.enableL1MuonPhase1:
         from TrigT1MuctpiPhase1.TrigT1MuctpiPhase1Config import MUCTPI_AthToolCfg
         muctpiTool = MUCTPI_AthToolCfg("MUCTPI_AthTool")
         acc.addPublicTool(muctpiTool, primary=True)
@@ -44,8 +44,8 @@ def L1TopoSimulationMCCfg(flags):
 
     #Configure the MuonRoiTools for the MIP
     from TrigT1MuonRecRoiTool.TrigT1MuonRecRoiToolConfig import getRun3RPCRecRoiTool, getRun3TGCRecRoiTool
-    muProvider.RecRpcRoiTool = getRun3RPCRecRoiTool("RPCRecRoiTool", useRun3Config = flags.Trigger.enableL1Phase1)
-    muProvider.RecTgcRoiTool = getRun3TGCRecRoiTool("TGCRecRoiTool", useRun3Config = flags.Trigger.enableL1Phase1)
+    muProvider.RecRpcRoiTool = getRun3RPCRecRoiTool("RPCRecRoiTool", useRun3Config = flags.Trigger.enableL1MuonPhase1)
+    muProvider.RecTgcRoiTool = getRun3TGCRecRoiTool("TGCRecRoiTool", useRun3Config = flags.Trigger.enableL1MuonPhase1)
 
     emtauProvider = CompFactory.LVL1.EMTauInputProvider("EMTauInputProvider")
 
diff --git a/Trigger/TrigT1/TrigT1CTMonitoring/share/TrigT1CTMonitoringJobOptions.py b/Trigger/TrigT1/TrigT1CTMonitoring/share/TrigT1CTMonitoringJobOptions.py
index db46dee51cd8ebbcc291eab8d16d3939c0b70bd6..07b77be7c84b9b4d0a8324fc9ab4b5b355e3d4fc 100644
--- a/Trigger/TrigT1/TrigT1CTMonitoring/share/TrigT1CTMonitoringJobOptions.py
+++ b/Trigger/TrigT1/TrigT1CTMonitoring/share/TrigT1CTMonitoringJobOptions.py
@@ -201,7 +201,7 @@ elif RunSimOnData:
     #writes this to the usual MuCTPICTP storegate location
 
     from AthenaConfiguration.AllConfigFlags import ConfigFlags
-    if ConfigFlags.Trigger.enableL1Phase1:
+    if ConfigFlags.Trigger.enableL1MuonPhase1:
         from TrigT1MuctpiPhase1.TrigT1MuctpiPhase1Config import L1MuctpiPhase1
         topSequence += L1MuctpiPhase1_on_Data()
     else:
diff --git a/Trigger/TrigT1/TrigT1CTMonitoring/share/TrigT1CTMonitoringJobOptions_forRecExCommission.py b/Trigger/TrigT1/TrigT1CTMonitoring/share/TrigT1CTMonitoringJobOptions_forRecExCommission.py
index 54429f44839f247acef874f4b40a5d678cd06cd2..6dd48ab1140f5a51cdd529daba6f0942b381f06d 100644
--- a/Trigger/TrigT1/TrigT1CTMonitoring/share/TrigT1CTMonitoringJobOptions_forRecExCommission.py
+++ b/Trigger/TrigT1/TrigT1CTMonitoring/share/TrigT1CTMonitoringJobOptions_forRecExCommission.py
@@ -191,7 +191,7 @@ if jp.ConcurrencyFlags.NumThreads() == 0: #no monitoring for multithreaded code
             #svcMgr.DSConfigSvc.readLVL1BG=True
 
             from AthenaConfiguration.AllConfigFlags import ConfigFlags
-            if ConfigFlags.Trigger.enableL1Phase1:
+            if ConfigFlags.Trigger.enableL1MuonPhase1:
                 from TrigT1MuctpiPhase1.TrigT1MuctpiPhase1Config import L1MuctpiPhase1_on_Data
                 topSequence += L1MuctpiPhase1_on_Data()
             else:
diff --git a/Trigger/TrigT1/TrigT1CTP/python/CTPSimulationConfig.py b/Trigger/TrigT1/TrigT1CTP/python/CTPSimulationConfig.py
index 5694728897b8a651146ab608f81a0d44ce5fcd84..71d222741fc6e7b69eb941f6c7705d179783823e 100644
--- a/Trigger/TrigT1/TrigT1CTP/python/CTPSimulationConfig.py
+++ b/Trigger/TrigT1/TrigT1CTP/python/CTPSimulationConfig.py
@@ -27,10 +27,10 @@ def CTPMCSimulationCfg(flags):
                                                         LegacyTopoInput = ""
                                                         ))
     log.info("Not all part of CTP simulation are enabled yet")
-    if flags.Trigger.enableL1CaloLegacy or not flags.Trigger.enableL1Phase1:
+    if flags.Trigger.enableL1CaloLegacy or not flags.Trigger.enableL1MuonPhase1:
         roib = CompFactory.ROIB.RoIBuilder("RoIBuilder",
                                             DoCalo = flags.Trigger.enableL1CaloLegacy,
-                                            DoMuon = not flags.Trigger.enableL1Phase1)
+                                            DoMuon = not flags.Trigger.enableL1MuonPhase1)
         acc.addEventAlgo(roib)
 
 
diff --git a/Trigger/TrigT1/TrigT1ResultByteStream/python/TrigT1ResultByteStreamConfig.py b/Trigger/TrigT1/TrigT1ResultByteStream/python/TrigT1ResultByteStreamConfig.py
index f0e4123081656b5e1addb387525562348f5a514c..b317b50683efa7f0b8e58e83181790114cf2a5d2 100644
--- a/Trigger/TrigT1/TrigT1ResultByteStream/python/TrigT1ResultByteStreamConfig.py
+++ b/Trigger/TrigT1/TrigT1ResultByteStream/python/TrigT1ResultByteStreamConfig.py
@@ -57,9 +57,9 @@ def MuonRoIByteStreamToolCfg(name, flags, writeBS=False):
     tool.MuonRoIContainerReadKey=""
     tool.MuonRoIContainerWriteKey="LVL1MuonRoIs"
 
-  tool.UseRun3Config = flags.Trigger.enableL1Phase1
-  tool.RPCRecRoiTool = getRun3RPCRecRoiTool(name="RPCRecRoiTool",useRun3Config=flags.Trigger.enableL1Phase1)
-  tool.TGCRecRoiTool = getRun3TGCRecRoiTool(name="TGCRecRoiTool",useRun3Config=flags.Trigger.enableL1Phase1)
+  tool.UseRun3Config = flags.Trigger.enableL1MuonPhase1
+  tool.RPCRecRoiTool = getRun3RPCRecRoiTool(name="RPCRecRoiTool",useRun3Config=flags.Trigger.enableL1MuonPhase1)
+  tool.TGCRecRoiTool = getRun3TGCRecRoiTool(name="TGCRecRoiTool",useRun3Config=flags.Trigger.enableL1MuonPhase1)
   tool.TrigThresholdDecisionTool = getTrigThresholdDecisionTool(name="TrigThresholdDecisionTool")
 
   return tool
@@ -71,11 +71,11 @@ def L1TriggerByteStreamDecoderCfg(flags):
 
   decoderTools = []
   if not flags.Trigger.doLVL1: #if we rerun L1, don't decode the original RoIBResult
-    if flags.Trigger.enableL1CaloLegacy or not flags.Trigger.enableL1Phase1:
+    if flags.Trigger.enableL1CaloLegacy or not flags.Trigger.enableL1MuonPhase1:
       roibResultTool = RoIBResultByteStreamToolCfg(name="RoIBResultBSDecoderTool", writeBS=False)
       decoderTools += [roibResultTool]
 
-  if flags.Trigger.enableL1Phase1:
+  if flags.Trigger.enableL1MuonPhase1:
     muonRoiTool = MuonRoIByteStreamToolCfg(name="L1MuonBSDecoderTool", flags=flags, writeBS=False)
     decoderTools += [muonRoiTool]
 
@@ -91,11 +91,11 @@ def L1TriggerByteStreamDecoderCfg(flags):
 def L1TriggerByteStreamEncoderCfg(flags):
   acc = ComponentAccumulator()
 
-  if flags.Trigger.enableL1CaloLegacy or not flags.Trigger.enableL1Phase1:
+  if flags.Trigger.enableL1CaloLegacy or not flags.Trigger.enableL1MuonPhase1:
     roibResultTool = RoIBResultByteStreamToolCfg(name="RoIBResultBSEncoderTool", writeBS=True)
     acc.addPublicTool(roibResultTool)
 
-  if flags.Trigger.enableL1Phase1:
+  if flags.Trigger.enableL1MuonPhase1:
     muonRoiTool = MuonRoIByteStreamToolCfg(name="L1MuonBSEncoderTool", flags=flags, writeBS=True)
     acc.addPublicTool(muonRoiTool)
 
diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_rerunL1Only_phase1_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_rerunL1Only_phase1_build.py
index e70014d8a15d1ef77717799060be144b658b8af8..4eb4268e396c244b83a40e7e76173e1472d39273 100755
--- a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_rerunL1Only_phase1_build.py
+++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_rerunL1Only_phase1_build.py
@@ -17,7 +17,8 @@ ex.threads = 1
 precommand = ''.join([
   "setMenu='LS2_v1';",  # LS2_v1 soon to be renamed to Dev_pp_run3_v1
   "doL1Sim=True;",
-  "enableL1Phase1=True;",
+  "enableL1MuonPhase1=True;",
+  "enableL1CaloPhase1=True;",
   "doEmptyMenu=True;",
   "doWriteBS=False;",
   "doWriteRDOTrigger=True;",
diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_L1SimOnly_phase1_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_L1SimOnly_phase1_build.py
index 452219637c6e2f3eb70ab0d1b3cef69183dadce5..9ad2f1c06ece4242dfefd215c361b7abceaefdbd 100755
--- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_L1SimOnly_phase1_build.py
+++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_L1SimOnly_phase1_build.py
@@ -17,7 +17,8 @@ ex.threads = 1
 precommand = ''.join([
   "setMenu='LS2_v1';",  # LS2_v1 soon to be renamed to Dev_pp_run3_v1
   "doL1Sim=True;",
-  "enableL1Phase1=True;",
+  "enableL1MuonPhase1=True;",
+  "enableL1CaloPhase1=True;",
   "enableL1CaloLegacy=True;",
   "doEmptyMenu=True;",
   "doWriteBS=False;",
diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_muon_phase1_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_muon_phase1_build.py
index ed69c0267929c2cc53e5514a2f81b6ecea17c5ae..cc4a85f49c52f885d7a43dab6908b734885fc291 100755
--- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_muon_phase1_build.py
+++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_muon_phase1_build.py
@@ -16,7 +16,7 @@ ex.input = 'ttbar_phase1'
 ex.threads = 1
 precommand = ''.join([
   "setMenu='LS2_v1';",
-  "enableL1Phase1=True;",
+  "enableL1MuonPhase1=True;",
   "enableL1CaloLegacy=True;",  # TODO: fix LvlSimulationConfig to be able to disable this
   "doEmptyMenu=True;",
   "doMuonSlice=True;",
diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/Lvl1MuonSimulationConfigOldStyle.py b/Trigger/TriggerCommon/TriggerJobOpts/python/Lvl1MuonSimulationConfigOldStyle.py
index 8856a1772943ea0730e4dc9615bf7e0b2e62e9dd..6ea381afebe24c3821f5cddcb6d0d5c43ff85228 100644
--- a/Trigger/TriggerCommon/TriggerJobOpts/python/Lvl1MuonSimulationConfigOldStyle.py
+++ b/Trigger/TriggerCommon/TriggerJobOpts/python/Lvl1MuonSimulationConfigOldStyle.py
@@ -167,12 +167,12 @@ def TGCTriggerConfig(flags):
     tgc = CompFactory.LVL1TGCTrigger__LVL1TGCTrigger("LVL1TGCTrigger",
                                                      InputData_perEvent  = "TGC_DIGITS_L1",
                                                      MaskFileName12      = "TrigT1TGCMaskedChannel._12.db",
-                                                     useRun3Config = flags.Trigger.enableL1Phase1,
+                                                     useRun3Config = flags.Trigger.enableL1MuonPhase1,
                                                      TileMuRcv_Input = tmdbInput )
     from IOVDbSvc.CondDB import conddb
     from AthenaCommon.AlgSequence import AthSequencer
     condSeq = AthSequencer("AthCondSeq")
-    if flags.Trigger.enableL1Phase1:
+    if flags.Trigger.enableL1MuonPhase1:
         if flags.Trigger.L1MuonSim.EmulateNSWA or flags.Trigger.L1MuonSim.EmulateNSWC:
             tgc.MuctpiPhase1LocationTGC = "L1MuctpiStoreTGCint"
         tgc.TILEMU = True
@@ -214,7 +214,7 @@ def Lvl1EndcapMuonSequence(flags):
     tmdb = TMDBSimulationSequence(flags)
     tgc = TGCTriggerConfig(flags)
     from AthenaCommon.CFElements import seqAND
-    if flags.Trigger.enableL1Phase1 and ( flags.Trigger.L1MuonSim.EmulateNSWA or flags.Trigger.L1MuonSim.EmulateNSWC ):
+    if flags.Trigger.enableL1MuonPhase1 and ( flags.Trigger.L1MuonSim.EmulateNSWA or flags.Trigger.L1MuonSim.EmulateNSWC ):
         rdo2prd = MuonRdo2PrdSequence(flags)
         recoSegment = RecoMuonSegmentSequence(flags)
         tgcmod = TGCModifierConfig(flags)
@@ -230,7 +230,7 @@ def Lvl1BarrelMuonSequence(flags):
                                 RPCbytestream     = False,
                                 RPCbytestreamFile = "",
                                 RPCDigitContainer = "RPC_DIGITS_L1",
-                                useRun3Config = flags.Trigger.enableL1Phase1 )
+                                useRun3Config = flags.Trigger.enableL1MuonPhase1 )
 
     from IOVDbSvc.CondDB import conddb
     if flags.Trigger.doLVL1 and not flags.Input.isMC:
@@ -249,7 +249,7 @@ def Lvl1BarrelMuonSequence(flags):
     return l1MuBarrelSim
 
 def Lvl1MuctpiConfig(flags):
-    if flags.Trigger.enableL1Phase1:
+    if flags.Trigger.enableL1MuonPhase1:
         rpcRecRoiTool = CompFactory.LVL1__TrigT1RPCRecRoiTool("TrigT1RPCRecRoiTool", UseRun3Config=True)
         tgcRecRoiTool = CompFactory.LVL1__TrigT1TGCRecRoiTool("TrigT1TGCRecRoiTool", UseRun3Config=True)
         muctpiTool = CompFactory.LVL1MUCTPIPHASE1__MUCTPI_AthTool(name="MUCTPI_AthTool")
diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/Lvl1SimulationConfig.py b/Trigger/TriggerCommon/TriggerJobOpts/python/Lvl1SimulationConfig.py
index 62b709503a9e1fd22cc18e9bc5c19f7c41eda794..9be27439e8803611963d4fdc29650890406282a4 100644
--- a/Trigger/TriggerCommon/TriggerJobOpts/python/Lvl1SimulationConfig.py
+++ b/Trigger/TriggerCommon/TriggerJobOpts/python/Lvl1SimulationConfig.py
@@ -51,7 +51,7 @@ def Lvl1SimulationSequence_Data( ConfigFlags ):
             CfgMgr.LVL1__RoIROD( 'RoIROD' ),
         ])
 
-    if ConfigFlags.Trigger.enableL1Phase1:
+    if ConfigFlags.Trigger.enableL1CaloPhase1:
         # Placeholder for phase-I L1Calo simulation
         log.info("Configuring Phase-I L1Calo simulation on data - not yet implemented")
 
@@ -75,18 +75,45 @@ def Lvl1SimulationSequence_Data( ConfigFlags ):
     ##################################################
     # L1 Topo rerun on data
     ##################################################
+
+    from AthenaCommon.AppMgr import ToolSvc
+    l1TopoSimDataSeq = None
+    from L1TopoSimulation.L1TopoSimulationConfig import L1TopoSimulation
+    l1TopoSimDataSeq = L1TopoSimulation()
+    l1TopoSimDataSeq.MuonInputProvider.ROIBResultLocation = "" #disable input from RoIBResult
+    
+    if ConfigFlags.Trigger.enableL1MuonPhase1:
+        from TrigT1MuctpiPhase1.TrigT1MuctpiPhase1Config import L1MuctpiPhase1Tool
+        ToolSvc += L1MuctpiPhase1Tool("MUCTPI_AthTool")
+        l1TopoSimDataSeq.MuonInputProvider.MuctpiSimTool = ToolSvc.MUCTPI_AthTool
+        from TrigT1MuonRecRoiTool.TrigT1MuonRecRoiToolConfig import getRun3RPCRecRoiTool, getRun3TGCRecRoiTool
+        l1TopoSimDataSeq.MuonInputProvider.RecRpcRoiTool = getRun3RPCRecRoiTool(useRun3Config=True)
+        l1TopoSimDataSeq.MuonInputProvider.RecTgcRoiTool = getRun3TGCRecRoiTool(useRun3Config=True)
+    else:
+        from TrigT1Muctpi.TrigT1MuctpiConfig import L1MuctpiTool
+        ToolSvc += L1MuctpiTool("L1MuctpiTool")
+        ToolSvc.L1MuctpiTool.LVL1ConfigSvc = svcMgr.LVL1ConfigSvc
+        l1TopoSimDataSeq.MuonInputProvider.MuctpiSimTool = ToolSvc.L1MuctpiTool
+
+    #TODO: is this meant to be final?
+    from AthenaCommon.GlobalFlags  import globalflags
+    if globalflags.DataSource()!='data':
+        l1TopoSimDataSeq.MuonInputProvider.MuonEncoding = 1
+    else:
+        l1TopoSimDataSeq.MuonInputProvider.MuonEncoding = 0
+
+    l1TopoSimDataSeq.MuonInputProvider.UseNewConfig = ConfigFlags.Trigger.readLVL1FromJSON
+
     isL1TopoLegacyOutputProvided = False
     if ConfigFlags.Trigger.enableL1CaloLegacy:
-        # Placeholder for phase-I L1Calo simulation
-        log.info("Configuring legacy L1Topo simulation on data - not yet implemented")
-        isL1TopoLegacyOutputProvided = False
-
+        isL1TopoLegacyOutputProvided = True
+        # TODO disable L1Topo sim not ready yet with json file
+        l1TopoSimDataSeq = None
     isL1TopoOutputProvided = False
-    if ConfigFlags.Trigger.enableL1Phase1:
-        # Placeholder for phase-I L1Muon simulation
-        log.info("Configuring Phase-I L1Topo simulation on data - not yet implemented")
+    if ConfigFlags.Trigger.enableL1MuonPhase1 or ConfigFlags.Trigger.enableL1CaloPhase1:
         isL1TopoOutputProvided = False
-
+        # TODO disable L1Topo sim with Phase1, not ready yet
+        l1TopoSimDataSeq = None
 
     ##################################################
     # CTP rerun on data
@@ -98,8 +125,7 @@ def Lvl1SimulationSequence_Data( ConfigFlags ):
     ctp             = CTPSimulationInReco("CTPSimulation")
     ctp.DoLUCID     = False
     ctp.DoBCM       = False
-    ctp.DoL1Topo    = not ConfigFlags.Trigger.enableL1Phase1
-    ctp.UseCondL1Menu = False
+    #ctp.UseNewConfig = ConfigFlags.Trigger.readLVL1FromJSON  #TODO
     ctp.TrigConfigSvc = svcMgr.LVL1ConfigSvc
     ctp.DoL1CaloLegacy = ConfigFlags.Trigger.enableL1CaloLegacy # to en/disable all L1CaloLegacy treatment (Mult and Topo)
     # muon input
@@ -120,14 +146,17 @@ def Lvl1SimulationSequence_Data( ConfigFlags ):
     ctp.eFexTauInput = ""
     ctpSimDataSeq = seqAND("CTPSimDataSeq", [ctp])
 
-    if ConfigFlags.Trigger.enableL1CaloLegacy or not ConfigFlags.Trigger.enableL1Phase1:
+    if ConfigFlags.Trigger.enableL1CaloLegacy or not ConfigFlags.Trigger.enableL1MuonPhase1:
         from TrigT1RoIB.TrigT1RoIBConfig import RoIBuilder
         roib = RoIBuilder("RoIBuilder")
         roib.DoCalo = ConfigFlags.Trigger.enableL1CaloLegacy
-        roib.DoMuon = not ConfigFlags.Trigger.enableL1Phase1
+        roib.DoMuon = not ConfigFlags.Trigger.enableL1MuonPhase1
         ctpSimDataSeq += [roib]
 
-    l1SimDataSeq = seqAND("L1SimDataSeq", [l1CaloSimDataSeq, l1MuonSimDataSeq, ctpSimDataSeq] )
+    if l1TopoSimDataSeq:
+      l1SimDataSeq = seqAND("L1SimDataSeq", [l1CaloSimDataSeq, l1MuonSimDataSeq, l1TopoSimDataSeq, ctpSimDataSeq] )
+    else:
+      l1SimDataSeq = seqAND("L1SimDataSeq", [l1CaloSimDataSeq, l1MuonSimDataSeq, ctpSimDataSeq] )
     return l1SimDataSeq
 
 
@@ -189,7 +218,7 @@ def Lvl1SimulationSequence_MC( ConfigFlags ):
         for l1calofolder in L1CaloFolderList:
             conddb.addFolder( "TRIGGER_OFL", l1calofolder )
 
-    if ConfigFlags.Trigger.enableL1Phase1:
+    if ConfigFlags.Trigger.enableL1CaloPhase1:
         #from AthenaCommon import CfgMgr
         l1CaloSim += CfgMgr.LVL1__eFEXDriver('MyeFEXDriver')
         
@@ -213,14 +242,15 @@ def Lvl1SimulationSequence_MC( ConfigFlags ):
     from L1TopoSimulation.L1TopoSimulationConfig import L1TopoSimulation
     l1TopoSim = L1TopoSimulation()
     l1TopoSim.MuonInputProvider.ROIBResultLocation = "" #disable input from RoIBResult
-    if ConfigFlags.Trigger.enableL1Phase1:
+    if ConfigFlags.Trigger.enableL1CaloPhase1:
+        l1TopoSim.EMTAUInputProvider = 'LVL1::EMTauInputProviderFEX/EMTauInputProviderFEX'
+    if ConfigFlags.Trigger.enableL1MuonPhase1:
         from TrigT1MuctpiPhase1.TrigT1MuctpiPhase1Config import L1MuctpiPhase1Tool
         ToolSvc += L1MuctpiPhase1Tool("MUCTPI_AthTool")
         l1TopoSim.MuonInputProvider.MuctpiSimTool = ToolSvc.MUCTPI_AthTool
         from TrigT1MuonRecRoiTool.TrigT1MuonRecRoiToolConfig import getRun3RPCRecRoiTool, getRun3TGCRecRoiTool
         l1TopoSim.MuonInputProvider.RecRpcRoiTool = getRun3RPCRecRoiTool(useRun3Config=True)
         l1TopoSim.MuonInputProvider.RecTgcRoiTool = getRun3TGCRecRoiTool(useRun3Config=True)
-        l1TopoSim.EMTAUInputProvider = 'LVL1::EMTauInputProviderFEX/EMTauInputProviderFEX'
     else:
         from TrigT1Muctpi.TrigT1MuctpiConfig import L1MuctpiTool
         ToolSvc += L1MuctpiTool("L1MuctpiTool")
@@ -243,17 +273,16 @@ def Lvl1SimulationSequence_MC( ConfigFlags ):
     ctp             = CTPSimulationInReco("CTPSimulation")
     ctp.DoLUCID     = False
     ctp.DoBCM       = False
-    ctp.DoL1Topo    = not ConfigFlags.Trigger.enableL1Phase1
     ctp.DoL1CaloLegacy = ConfigFlags.Trigger.enableL1CaloLegacy # to en/disable all L1CaloLegacy treatment (Mult and Topo)
     ctp.UseNewConfig = ConfigFlags.Trigger.readLVL1FromJSON
     ctp.TrigConfigSvc = svcMgr.LVL1ConfigSvc
     ctpSim      = seqAND("CTPSimSeq", [ctp])
 
-    if ConfigFlags.Trigger.enableL1CaloLegacy or not ConfigFlags.Trigger.enableL1Phase1:
+    if ConfigFlags.Trigger.enableL1CaloLegacy or not ConfigFlags.Trigger.enableL1MuonPhase1:
         from TrigT1RoIB.TrigT1RoIBConfig import RoIBuilder
         roib = RoIBuilder("RoIBuilder")
         roib.DoCalo = ConfigFlags.Trigger.enableL1CaloLegacy
-        roib.DoMuon = not ConfigFlags.Trigger.enableL1Phase1
+        roib.DoMuon = not ConfigFlags.Trigger.enableL1MuonPhase1
         ctpSim += [roib]
 
 
diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/Modifiers.py b/Trigger/TriggerCommon/TriggerJobOpts/python/Modifiers.py
index d661ecf2486888b4288cf40d34ae377c5f63e831..89d77a4f9f882b0e9366b30aa9ce7256c19b77af 100644
--- a/Trigger/TriggerCommon/TriggerJobOpts/python/Modifiers.py
+++ b/Trigger/TriggerCommon/TriggerJobOpts/python/Modifiers.py
@@ -450,7 +450,7 @@ class rerunLVL1(_modifier):
         #rederive MuCTPI inputs to CTP from muon RDO
         #writes this to the usual MuCTPICTP storegate location
         from AthenaConfiguration.AllConfigFlags import ConfigFlags
-        if ConfigFlags.Trigger.enableL1Phase1:
+        if ConfigFlags.Trigger.enableL1MuonPhase1:
             from TrigT1MuctpiPhase1.TrigT1MuctpiPhase1Config import L1MuctpiPhase1_on_RDO as L1Muctpi_on_RDO
         else:
             from TrigT1Muctpi.TrigT1MuctpiConfig import L1Muctpi_on_RDO
@@ -465,7 +465,7 @@ class rerunLVL1(_modifier):
             topSequence += L1TopoSimulation()
             log.info( "adding L1TopoSimulation() to topSequence" )
 
-            if ConfigFlags.Trigger.enableL1Phase1:
+            if ConfigFlags.Trigger.enableL1MuonPhase1:
                 from TrigT1MuctpiPhase1.TrigT1MuctpiPhase1Config import L1MuctpiPhase1Tool as L1MuctpiTool
             else:
                 from TrigT1Muctpi.TrigT1MuctpiConfig import L1MuctpiTool
@@ -557,7 +557,7 @@ class rerunDMLVL1(_modifier):
          #rederive MuCTPI inputs to CTP from muon RDO
          #writes this to the usual MuCTPICTP storegate location
          from AthenaConfiguration.AllConfigFlags import ConfigFlags
-         if ConfigFlags.Trigger.enableL1Phase1:
+         if ConfigFlags.Trigger.enableL1MuonPhase1:
              from TrigT1MuctpiPhase1.TrigT1MuctpiPhase1Config import L1MuctpiPhase1_on_RDO as L1Muctpi_on_RDO
          else:
              from TrigT1Muctpi.TrigT1MuctpiConfig import L1MuctpiPhase1_on_RDO as L1Muctpi_on_RDO
@@ -611,9 +611,9 @@ class rewriteLVL1(_modifier):
             # online
             from AthenaCommon.AppMgr import ServiceMgr as svcMgr
             svcMgr.HltEventLoopMgr.RewriteLVL1 = True
-            if ConfigFlags.Trigger.enableL1Phase1:
+            if ConfigFlags.Trigger.enableL1MuonPhase1 or ConfigFlags.Trigger.enableL1CaloPhase1:
                 svcMgr.HltEventLoopMgr.L1TriggerResultRHKey = 'L1TriggerResult'
-            if ConfigFlags.Trigger.enableL1CaloLegacy or not ConfigFlags.Trigger.enableL1Phase1:
+            if ConfigFlags.Trigger.enableL1CaloLegacy or not ConfigFlags.Trigger.enableL1MuonPhase1:
                 svcMgr.HltEventLoopMgr.RoIBResultRHKey = 'RoIBResult'
         else:
             # offline
@@ -621,10 +621,10 @@ class rewriteLVL1(_modifier):
             from AthenaCommon.CFElements import findAlgorithm
             seq = AthSequencer('AthOutSeq')
             streamBS = findAlgorithm(seq, 'BSOutputStreamAlg')
-            if ConfigFlags.Trigger.enableL1Phase1:
+            if ConfigFlags.Trigger.enableL1MuonPhase1 or ConfigFlags.Trigger.enableL1CaloPhase1:
                 streamBS.ExtraInputs += [ ('xAOD::TrigCompositeContainer', 'StoreGateSvc+L1TriggerResult') ]
                 streamBS.ItemList += [ 'xAOD::TrigCompositeContainer#L1TriggerResult' ]
-            if ConfigFlags.Trigger.enableL1CaloLegacy or not ConfigFlags.Trigger.enableL1Phase1:
+            if ConfigFlags.Trigger.enableL1CaloLegacy or not ConfigFlags.Trigger.enableL1MuonPhase1:
                 streamBS.ExtraInputs += [ ('ROIB::RoIBResult', 'StoreGateSvc+RoIBResult') ]
                 streamBS.ItemList += [ 'ROIB::RoIBResult#RoIBResult' ]
 
diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigFlags.py b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigFlags.py
index 918a9f83c8e83d8e1f7453ac9bf576bf88b35d5e..9638cc4b2b28d2cc3eb14736bd322888bfe12c8d 100644
--- a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigFlags.py
+++ b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigFlags.py
@@ -26,8 +26,14 @@ def createTriggerFlags():
     # changes decoding of L1 so that allways all configured chains are enabled, testing mode
     flags.addFlag("Trigger.L1Decoder.forceEnableAllChains", False)
 
-    # Enable Run-3 LVL1 simulation and/or decoding
-    flags.addFlag('Trigger.enableL1Phase1', False)
+#    # Enable Run-3 LVL1 simulation and/or decoding
+#    flags.addFlag('Trigger.enableL1Phase1', False)
+
+    # Enable Run-3 LVL1 muon simulation and/or decoding
+    flags.addFlag('Trigger.enableL1MuonPhase1', False)
+
+    # Enable Run-3 LVL1 calo simulation and/or decoding
+    flags.addFlag('Trigger.enableL1CaloPhase1', False)
 
     # Enable usage of new L1 menu   
     flags.addFlag('Trigger.readLVL1FromJSON', True)
diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerTransBSConfig.py b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerTransBSConfig.py
index d0e5e3752886da1d217c670ee0a8611f13a64126..2b5a6fd1381cf88fd8468fa4118711d56bf5bb40 100644
--- a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerTransBSConfig.py
+++ b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerTransBSConfig.py
@@ -21,12 +21,12 @@ def triggerTransBSCfg(flags, seqName="AthAlgSeq"):
     from TrigT1ResultByteStream.TrigT1ResultByteStreamConfig import L1TriggerByteStreamEncoderCfg
     acc.merge(L1TriggerByteStreamEncoderCfg(flags))
 
-    if flags.Trigger.enableL1CaloLegacy or not flags.Trigger.enableL1Phase1:
+    if flags.Trigger.enableL1CaloLegacy or not flags.Trigger.enableL1MuonPhase1:
         itemList += ["ROIB::RoIBResult#RoIBResult"]
         typeNames += ["MuCTPI_RDO/MUCTPI_RDO"]
         extraInputs += [('ROIB::RoIBResult', 'StoreGateSvc+RoIBResult')]
 
-    if flags.Trigger.enableL1Phase1:
+    if flags.Trigger.enableL1MuonPhase1 or flags.Trigger.enableL1CaloPhase1:
         itemList += ["xAOD::TrigCompositeContainer#L1TriggerResult"]
         extraInputs += [('xAOD::TrigCompositeContainer', 'StoreGateSvc+L1TriggerResult')]
 
diff --git a/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py b/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py
index 9208d8f072ad01a3e9383f873bfd0b063a7af6a5..0832330da484cad40d358c86ad2c830442e05c06 100644
--- a/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py
+++ b/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py
@@ -41,7 +41,9 @@ class opt:
     endJobAfterGenerate = False       # Finish job after menu generation
     failIfNoProxy     = False         # Sets the SGInputLoader.FailIfNoProxy property
     forceEnableAllChains = False      # if True, all HLT chains will run even if the L1 item is false
-    enableL1Phase1   = False          # Enable Run-3 LVL1 simulation and/or decoding
+#    enableL1Phase1   = False          # Enable Run-3 LVL1 simulation and/or decoding
+    enableL1MuonPhase1   = False          # Enable Run-3 LVL1 muon simulation and/or decoding
+    enableL1CaloPhase1   = False          # Enable Run-3 LVL1 calo simulation and/or decoding
     enableL1CaloLegacy = True         # Enable Run-2 L1Calo simulation and/or decoding (possible even if enablePhase1 is True)
 #Individual slice flags
     doCalibSlice        = True
@@ -197,7 +199,9 @@ if 'doL1Sim' not in globals():
 
 # Translate opts to flags for LVL1
 ConfigFlags.Trigger.doLVL1 = opt.doL1Sim
-ConfigFlags.Trigger.enableL1Phase1 = opt.enableL1Phase1
+#ConfigFlags.Trigger.enableL1Phase1 = opt.enableL1Phase1
+ConfigFlags.Trigger.enableL1MuonPhase1 = opt.enableL1MuonPhase1
+ConfigFlags.Trigger.enableL1CaloPhase1 = opt.enableL1CaloPhase1
 ConfigFlags.Trigger.enableL1CaloLegacy = opt.enableL1CaloLegacy
 
 #-------------------------------------------------------------
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSetup.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSetup.py
index 2af104885688b8158079380f4ab73e55651896ac..e6ca3fe0add15b40dbce7ebf453db8c3ad0bad1c 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSetup.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSetup.py
@@ -390,7 +390,7 @@ def muFastRecoSequence( RoIs, doFullScanID = False, InsideOutMode=False, extraLo
   else:
     ViewVerify.DataObjects += [( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+%s' % RoIs )]
   ViewVerify.DataObjects += [( 'xAOD::EventInfo' , 'StoreGateSvc+EventInfo' )]
-  if ConfigFlags.Trigger.enableL1Phase1:
+  if ConfigFlags.Trigger.enableL1MuonPhase1:
     ViewVerify.DataObjects += [( 'xAOD::MuonRoIContainer' , 'StoreGateSvc+LVL1MuonRoIs' )]
   else:
     ViewVerify.DataObjects += [( 'DataVector< LVL1::RecMuonRoI >' , 'StoreGateSvc+HLT_RecMURoIs' )]
@@ -414,7 +414,7 @@ def muFastRecoSequence( RoIs, doFullScanID = False, InsideOutMode=False, extraLo
   L2MdtDataPreparator.RegSel_MDT = makeRegSelTool_MDT()
 
   from TrigT1MuonRecRoiTool.TrigT1MuonRecRoiToolConf import LVL1__TrigT1RPCRecRoiTool
-  trigRpcRoiTool = LVL1__TrigT1RPCRecRoiTool("RPCRecRoiTool", UseRun3Config=ConfigFlags.Trigger.enableL1Phase1)
+  trigRpcRoiTool = LVL1__TrigT1RPCRecRoiTool("RPCRecRoiTool", UseRun3Config=ConfigFlags.Trigger.enableL1MuonPhase1)
 
   ### RPC RDO data - turn off the data decoding here ###
   from TrigL2MuonSA.TrigL2MuonSAConf import TrigL2MuonSA__RpcDataPreparator
@@ -497,7 +497,7 @@ def muFastRecoSequence( RoIs, doFullScanID = False, InsideOutMode=False, extraLo
     muFastAlg.multitrackMode = True
     muFastAlg.doEndcapForl2mt = False
 
-  if ConfigFlags.Trigger.enableL1Phase1:
+  if ConfigFlags.Trigger.enableL1MuonPhase1:
     muFastAlg.UseRun3Config = True
   else:
     muFastAlg.UseRun3Config = False
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/generateMuon.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/generateMuon.py
index 1e6ff10965b35fb9b97d8f1b5b2751bd6a26c082..4d36bde459510c9fa135299fe33146c639b8c50e 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/generateMuon.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/generateMuon.py
@@ -88,7 +88,7 @@ def MuFastViewDataVerifier():
                    ( 'CscRawDataCollection_Cache' , 'StoreGateSvc+CscRdoCache' ),
                    ( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+L2MuFastRecoRoIs' )]
     from AthenaConfiguration.AllConfigFlags import ConfigFlags
-    if ConfigFlags.Trigger.enableL1Phase1:
+    if ConfigFlags.Trigger.enableL1MuonPhase1:
         dataobjects += [( 'xAOD::MuonRoIContainer' , 'StoreGateSvc+LVL1MuonRoIs' )]
     else:
         dataobjects += [( 'DataVector< LVL1::RecMuonRoI >' , 'StoreGateSvc+HLT_RecMURoIs' )]