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