diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py index fa7e32f0ef0bdcbafa21d4f8a94ed7d4403de4a2..f5f6bc50aee4ba2a250683e8e2c204efbe0ebafc 100755 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py @@ -16,7 +16,7 @@ from TriggerMenuMT.HLTMenuConfig.Menu.DictFromChainName import dictFromChainName from TriggerMenuMT.HLTMenuConfig.Menu.ChainDictTools import splitInterSignatureChainDict from TriggerMenuMT.HLTMenuConfig.Menu.MenuPrescaleConfig import MenuPrescaleConfig from TriggerMenuMT.HLTMenuConfig.Menu.ChainMerging import mergeChainDefs - +from TriggerMenuMT.HLTMenuConfig.Menu.MenuUtil import applyHLTPrescale from AthenaCommon.Logging import logging log = logging.getLogger( __name__ ) @@ -99,8 +99,6 @@ class GenerateMenuMT(object): == Setup of menu in terms of prescales and overwrite function """ # go over the slices and put together big list of signatures requested - #(L1Prescales, HLTPrescales, streamConfig) = MenuPrescaleConfig(self.triggerPythonConfig) - # that does not seem to work (self.L1Prescales, self.HLTPrescales) = MenuPrescaleConfig(TriggerConfigHLT) global _func_to_modify_signatures if _func_to_modify_signatures is not None: @@ -171,6 +169,9 @@ class GenerateMenuMT(object): chainCounter += 1 chainDict['chainCounter'] = chainCounter + #set default chain prescale + chainDict['prescale'] = 1 + log.debug("Next: getting chain configuration for chain %s ", chain.name) chainConfig= self.__generateChainConfig(chainDict) @@ -366,6 +367,9 @@ class GenerateMenuMT(object): makeHLTTree(newJO=False, triggerConfigHLT = TriggerConfigHLT) # the return values used for debugging, might be removed later + # Having built the Menu add prescales for disabling items (e.g. MC production) + applyHLTPrescale(TriggerConfigHLT, self.HLTPrescales, self.signaturesOverwritten) + from TriggerMenuMT.HLTMenuConfig.Menu.HLTMenuJSON import generateJSON generateJSON() diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py index f2231c9363bf6451ca3e051989b0284fcc918984..9d3da3b959d0311f64bd64536e7b0b8c96539870 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py @@ -268,14 +268,14 @@ def setupMenu(): Prescales = mc_menu.Prescales ps_online_list=[ - 'mb_sptrk_L1RD0_FILLED', - 'timeburner_L1All' + 'HLT_mb_sptrk_L1RD0_FILLED', + 'HLT_timeburner_L1All' ] + 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 = {} - -chain_list=ps_online_list - -Prescales.HLTPrescales_trigvalid_mc_prescale.update(zip(chain_list,len(chain_list)*[ [-1, 0,-1] ])) +disable_chain_list=ps_online_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/MenuUtil.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuUtil.py index 17f31b2d8ffc2eda9ce0f0e7b0eba06a79320382..9474a783b1bf914da8942b9bb52680c4437f045e 100755 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuUtil.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuUtil.py @@ -2,8 +2,11 @@ from TriggerJobOpts.TriggerFlags import TriggerFlags from AthenaCommon.Logging import logging +from six import iteritems + log = logging.getLogger(__name__) + def getStreamTagForRerunChains(triggerPythonConfig, HLTPrescale): list=[] for item, prescales in HLTPrescale.iteritems(): @@ -30,29 +33,30 @@ def getStreamTagForRerunChains(triggerPythonConfig, HLTPrescale): -def applyHLTPrescale(triggerPythonConfig, HLTPrescale): - for item, prescales in HLTPrescale.iteritems(): +def applyHLTPrescale(triggerPythonConfig, HLTPrescale, signaturesOverwritten): + for item, prescales in iteritems(HLTPrescale): # prescales is a list of 3 integers [HLT_prescale, HLT_pass_through, rerun_prescale] - if item not in triggerPythonConfig.allChains.keys(): - if triggerPythonConfig.signaturesOverwritten: + if item not in triggerPythonConfig.dicts().keys(): + if signaturesOverwritten: log.warning('Attempt to set prescales for nonexisting chain: %s', item) continue else: log.error('Attempt to set prescales for nonexisting chain: %s', item) continue n = len(prescales) - hltchain = None - for ch in triggerPythonConfig.allChains[item]: - if ch.level == 'HLT': - hltchain = ch - if n > 0 and hltchain: - hltchain.prescale = str(prescales[0]) - if n > 1 and hltchain: - hltchain.pass_through = str(prescales[1]) - if n > 2 and hltchain: - hltchain.rerun_prescale = str(prescales[2]) - - log.info('Applied HLTPS to the item '+item+': PS'+ hltchain.prescale+" PT"+hltchain.pass_through+" RerunPS"+hltchain.rerun_prescale) + hltchain = triggerPythonConfig.dicts()[item] + if n > 0: + hltchain['prescale'] = str(prescales[0]) + log.info('Applied HLTPS to the item '+item+': PS'+ hltchain['prescale']) + # + #passthrough and rerun still in the HLTPrescale object but not needed currently + # + #if n > 1: + # hltchain['pass_through'] = str(prescales[1]) + #if n > 2: + # hltchain['rerun_prescale'] = str(prescales[2]) + # + #log.info('Applied HLTPS to the item '+item+': PS'+ hltchain.prescale+" PT"+hltchain.pass_through+" RerunPS"+hltchain.rerun_prescale) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Physics_pp_run3_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Physics_pp_run3_v1.py index 22b06fb939072ceadc278e6d91c25ed850790d55..acfa5b4c743a01ae6384048fe0aeee617a1f6ebe 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Physics_pp_run3_v1.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Physics_pp_run3_v1.py @@ -140,7 +140,7 @@ class Prescales(object): L1Prescales = {} # Signature name | [ HLTprescale, HLTpass-through, rerun] - # - Prescale values should be a positive integer (default=1) + # - Chains only need adding if have a Prescale value different from 1 (default) # - If the current pass_through value is non-zero, # the value given here will be used as pass_through rate # Assuming that pass through chains are configured so