diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigFlags.py b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigFlags.py
index 2b72c2132477a88d514e8ff1435950400320b372..f1864901ec8fc8d90400025a7fb579f1e69b79a6 100644
--- a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigFlags.py
+++ b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigFlags.py
@@ -196,14 +196,27 @@ def createTriggerFlags():
     # generate or not the L1 configuration
     flags.addFlag('Trigger.generateL1Menu', False)
     
-    # L1 XML file name 
-    flags.addFlag('Trigger.LVL1ConfigFile',
-                  lambda prevFlags: 'LVL1config_'+prevFlags.Trigger.triggerMenuSetup+'_' + prevFlags.Trigger.menuVersion + '.xml')
+    def _deriveL1ConfigName(prevFlags):
+        import re
+        log = logging.getLogger('TrigConfigSvcCfg')
+        pattern = re.compile(r'_v\d+|DC14')
+        menuName=prevFlags.Trigger.triggerMenuSetup
+        patternPos = pattern.search(menuName)
+        if patternPos:
+            menuName=menuName[:patternPos.end()]
+        else:
+            log.info('Can\'t find pattern to shorten menu name, either non-existent in name or not implemented.')
+        
+        return "LVL1config_"+menuName+"_" + prevFlags.Trigger.menuVersion + ".xml"
 
+    # L1 XML file name 
+    flags.addFlag('Trigger.LVL1ConfigFile', _deriveL1ConfigName)
+   
     # L1 Json file name 
     flags.addFlag('Trigger.L1MenuFile',
                   lambda prevFlags: 'L1Menu_'+prevFlags.Trigger.triggerMenuSetup+'_' + prevFlags.Trigger.menuVersion + '.json')
     
+
     # L1 topo XML file name
     def _deriveTopoConfigName(prevFlags):
         import re
diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerFlags.py b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerFlags.py
index afd3585c5d422213c5d3cf1211906e1d389e4f4c..f1e8904f0dc06c4eef1be91e1e475897ce60a4e3 100644
--- a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerFlags.py
+++ b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerFlags.py
@@ -518,8 +518,10 @@ class readLVL1configFromXML(JobProperty):
             import TriggerMenu.l1.Lvl1Flags  # noqa: F401
         
         if self.get_Value() is False:
-            TriggerFlags.inputLVL1configFile = TriggerFlags.outputLVL1configFile()
+            #TriggerFlags.inputLVL1configFile = TriggerFlags.outputLVL1configFile()
+            TriggerFlags.inputLVL1configFile = "LVL1config_"+_getMenuBaseName(TriggerFlags.triggerMenuSetup())+"_" + TriggerFlags.menuVersion() + ".xml"
             TriggerFlags.Lvl1.items.set_On()
+            log.info("Input LVL1 config is:  \""+TriggerFlags.inputLVL1configFile+"\"")
         else:
             xmlFile=TriggerFlags.inputLVL1configFile()
             from TrigConfigSvc.TrigConfigSvcConfig import findFileInXMLPATH
@@ -703,7 +705,7 @@ class inputLVL1configFile(JobProperty):
             return "LVL1config_"+_getMenuBaseName(TriggerFlags.triggerMenuSetup())+"_" + TriggerFlags.menuVersion() + ".xml"
         else:
             return self.get_Value()
-        
+
 _flags.append(inputLVL1configFile)
 
 # remove prescale suffixes
@@ -864,7 +866,9 @@ class triggerMenuSetup(JobProperty):
             
         # filenames for LVL1 and HLT
         if TriggerFlags.readLVL1configFromXML() is True:
-            TriggerFlags.inputLVL1configFile = "LVL1config_"+self.get_Value()+"_" + TriggerFlags.menuVersion() + ".xml"
+            #TriggerFlags.inputLVL1configFile = "LVL1config_"+self.get_Value()+"_" + TriggerFlags.menuVersion() + ".xml"
+            TriggerFlags.inputLVL1configFile = "LVL1config_"+_getMenuBaseName(TriggerFlags.triggerMenuSetup())+"_" + TriggerFlags.menuVersion() + ".xml"
+            self._log.info("TriggerFlags.inputLVL1configFile set to '%s'", TriggerFlags.inputLVL1configFile)
         if TriggerFlags.readHLTconfigFromXML() is True and (TriggerFlags.inputHLTconfigFile=="" or TriggerFlags.inputHLTconfigFile is None):
             TriggerFlags.inputHLTconfigFile = "HLTconfig_"+self.get_Value()+"_" + TriggerFlags.menuVersion() + ".xml"
 
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTPrescaleJSON.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTPrescaleJSON.py
index 6062f6f503cece43bd7d9d8bbaa593c31c9dd4cb..ca03f5a7ac1a562ac8dc4ddd45492a183de944ed 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTPrescaleJSON.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTPrescaleJSON.py
@@ -52,7 +52,6 @@ def __generateJSON( chainDicts, chainConfigs, menuName, fileName ):
 def generateJSON():
     __log.info("Generating HLT Prescale JSON in the rec-ex-common job")
     from AthenaConfiguration.AllConfigFlags import ConfigFlags
-    from TriggerJobOpts.TriggerFlags import TriggerFlags
     from TriggerMenuMT.HLTMenuConfig.Menu.TriggerConfigHLT import TriggerConfigHLT
 
     return __generateJSON( TriggerConfigHLT.dictsList(),
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
index 65f64887b1e6ee2349c3180bb95cbd1efe3013de..bf25a7f3a72d8e4a48f22a9c753970327fed14a0 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
@@ -9,7 +9,7 @@
 #['name', 'L1chainParts'=[], 'stream', 'groups', 'merging'=[], 'topoStartFrom'=False],
 
 from TriggerMenuMT.HLTMenuConfig.Menu.ChainDefInMenu import ChainProp
-from TriggerMenuMT.HLTMenuConfig.Menu.MenuPrescaleConfig import addSliceChainsToPrescales,addOnlineChains
+from TriggerMenuMT.HLTMenuConfig.Menu.MenuPrescaleConfig import addSliceChainsToPrescales,disableChains
 
 import TriggerMenuMT.HLTMenuConfig.Menu.MC_pp_run3_v1 as mc_menu
 import TriggerMenuMT.HLTMenuConfig.Menu.PhysicsP1_pp_run3_v1 as p1_menu
@@ -27,6 +27,8 @@ def setupMenu():
     log.info('setupMenu ...')
 
 
+   
+
     TriggerFlags.TestSlice.signatures = TriggerFlags.TestSlice.signatures() + []
 
 
@@ -299,24 +301,26 @@ def setupMenu():
     # Random Seeded EB chains which select at the HLT based on L1 TBP bits
     TriggerFlags.EnhancedBiasSlice.signatures = TriggerFlags.EnhancedBiasSlice.signatures() + [ ]
 
+    # --------------------------------------------------
+    # ---- Defining specific prescales to this menu ----
+    # --------------------------------------------------
+
+    Prescales = mc_menu.Prescales
+
+    ## Cosmics
 
     addSliceChainsToPrescales(TriggerFlags, Prescales.HLTPrescales_cosmics)
 
-    #addOnlineChains(TriggerFlags, Prescales.HLTPrescales_trigvalid_mc_prescale)
+    ## Trigger Validation (disabling high CPU chains)
+
+    Prescales.L1Prescales_trigvalid_mc_prescale  = dict([(ctpid,1) for ctpid in Prescales.L1Prescales])  # setting all L1 prescales to 1
 
-Prescales = mc_menu.Prescales
+    Prescales.HLTPrescales_trigvalid_mc_prescale = {}
 
-ps_online_list=[
-    'HLT_mb_sptrk_L1RD0_FILLED',
-    'HLT_timeburner_L1All'
-]
+    disableChains(TriggerFlags, Prescales.HLTPrescales_trigvalid_mc_prescale, "Online")
+    
+    # --------------------------------------------------
 
-Prescales.L1Prescales_trigvalid_mc_prescale  = dict([(ctpid,1) for ctpid in Prescales.L1Prescales])  # setting all L1 prescales to 1
-#for HLT only need to store any chains that have a prescale different from 1
-Prescales.HLTPrescales_trigvalid_mc_prescale = {}
+    return Prescales
 
-disable_chain_list=ps_online_list
-#disable_chain_list=[]
-#addOnlineChains(TriggerFlags, disable_chain_list)
-Prescales.HLTPrescales_trigvalid_mc_prescale.update(zip(disable_chain_list,len(disable_chain_list)*[ [-1, 0,-1] ]))
 
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MC_pp_run3_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MC_pp_run3_v1.py
index 3524f7694768c0887a8508d29b503875ec4fa9c2..75404628bb588d6dbdcc889e5bfd0e1a4f6e857a 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MC_pp_run3_v1.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MC_pp_run3_v1.py
@@ -22,6 +22,8 @@ def setupMenu():
 
     physics_menu.setupMenu()
 
+    
+
     TriggerFlags.TestSlice.signatures = TriggerFlags.TestSlice.signatures() + []
 
     TriggerFlags.MuonSlice.signatures = TriggerFlags.MuonSlice.signatures() + [
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuPrescaleConfig.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuPrescaleConfig.py
index db0ad05d249e74ebdfe26e770dfb08fe7f8fd8cd..bfc30cd0783f603f0ea84c1f710bd15e6fddaf76 100755
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuPrescaleConfig.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuPrescaleConfig.py
@@ -26,8 +26,8 @@ def MenuPrescaleConfig(triggerConfigHLT):
 
     if menu_name.startswith('LS2_v1'):
         log.info('LS2_v1 menu setup')
-        from TriggerMenuMT.HLTMenuConfig.Menu.LS2_v1 import setupMenu, Prescales
-        setupMenu()
+        from TriggerMenuMT.HLTMenuConfig.Menu.LS2_v1 import setupMenu
+        Prescales = setupMenu()
         if 'cosmics_prescale' in menu_name:
             L1Prescales = Prescales.L1Prescales_cosmics
             HLTPrescales = Prescales.HLTPrescales_cosmics
@@ -113,8 +113,8 @@ def MenuPrescaleConfig(triggerConfigHLT):
 
     elif menu_name.startswith('LS2_emu_v1'):
         log.info('LS2_v1 menu setup')
-        from TriggerMenuMT.HLTMenuConfig.Menu.LS2_v1 import setupMenu, Prescales
-        setupMenu()
+        from TriggerMenuMT.HLTMenuConfig.Menu.LS2_v1 import setupMenu
+        Prescales = setupMenu()
         if 'cosmics_prescale' in menu_name:
             L1Prescales = Prescales.L1Prescales_cosmics
             HLTPrescales = Prescales.HLTPrescales_cosmics
@@ -158,7 +158,7 @@ def addSliceChainsToPrescales(flags, cosmic_prescales):
     from copy import deepcopy
     cosmic_prescales = deepcopy(combined)
 
-def addOnlineChains(flags, trigvalid_prescales):
+def disableChains(flags, trigvalid_prescales, type_group):
     signatures = []
     slice_props = [prop for prop in dir(flags) if prop.endswith("Slice")]
     for slice_prop in slice_props:
@@ -168,17 +168,15 @@ def addOnlineChains(flags, trigvalid_prescales):
         else:
             log.debug('SKIPPING ' + str(slice_prop))
 
-    s_online_list=[]
+    chain_online_list=[]
 
-    for s in signatures:
-        if s.groups=='Online':
-            print(s.name)
-            s_online_list.extend(s.name)
+    for chain in signatures:
+        if type_group in chain.groups:
+            print(chain.name)
+            chain_online_list.append(chain.name)
 
-    trigvalid_prescales.update(zip(s_online_list,len(s_online_list)*[ [-1, 0,-1] ]))
+    trigvalid_prescales.update(zip(chain_online_list,len(chain_online_list)*[ [-1, 0,-1] ]))
 
-    
-    #return s_online_list
 
 def applyHLTPrescale(triggerPythonConfig, HLTPrescale, signaturesOverwritten):
     for item, prescales in iteritems(HLTPrescale):