From 324c5d1f839847e42ddacf332f15df17dc93eaee Mon Sep 17 00:00:00 2001 From: gipezzul <g.pezzullo@yale.edu> Date: Mon, 26 Oct 2020 14:01:36 +0100 Subject: [PATCH 01/30] test HLT monitoring config file --- .../HLTMenuConfig/Menu/HLTMonitoringJSON.py | 62 +++++++++++++++++++ .../TriggerMenuMT/share/Mon_METSlice.json | 32 ++++++++++ 2 files changed, 94 insertions(+) create mode 100644 Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py create mode 100644 Trigger/TriggerCommon/TriggerMenuMT/share/Mon_METSlice.json diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py new file mode 100644 index 000000000000..e3159efbbee6 --- /dev/null +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py @@ -0,0 +1,62 @@ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + +import json +from collections import OrderedDict as odict +from TrigConfigSvc.TrigConfigSvcCfg import getHLTMenuFileName, getHLTPrescalesSetFileName, getHLTMonitoringFileName +from AthenaCommon.Logging import logging +__log = logging.getLogger( __name__ ) + + +def generateJSON(): + __log.info("Generating HLT Monitoring Config JSON...") + from AthenaConfiguration.AllConfigFlags import ConfigFlags + from TriggerMenuMT.HLTMenuConfig.Menu.TriggerConfigHLT import TriggerConfigHLT + + return __generateJSON( TriggerConfigHLT.dictsList(), + TriggerConfigHLT.configsList(), + ConfigFlags.Trigger.triggerMenuSetup, + getHLTMenuFileName(ConfigFlags), + getHLTPrescalesSetFileName(ConfigFlags), + getHLTMonitoringFileName(ConfigFlags) ) + +def __generateJSON(chainDicts, chainConfigs, menuName, menuFileName, prescaleFileName, fileName): + #get the name of the outputfile + menuFile = open(menuFileName,'r') + menuDict = json.load(menuFile, object_pairs_hook = odict) + menuChains = menuDict['chains'].keys() + + # get the dict of the prescales + prescaleFile = open(prescaleFileName,'r') + prescaleDict = json.load(prescaleFile, object_pairs_hook = odict) + + #create the dictionary the will house the monitoring info + monDict=odict([ ("filetype", "hltmonitoring"), ("name", menuName), ("monchains", odict()) ]) + + #test file: FIXME! + config_fileName="Mon_METSlice.json" + + with open(config_fileName,'r') as file: + json_file = json.load(file, object_pairs_hook = odict) + + # then you can iterate, say over the HLT menu: + for chain_name, ch in json_file.items(): #json_file['chains'].items(): + + #check that the chain is present in the Menu + if chain_name not in menuChains: + __log.info( "Chain %s not present in the HLT Menu JSON %s", chain_name, menuFileName) + continue + + #and then the elements of that chain, e.g: + # ch['groups'] + monDict['monchains'][chain_name] = odict([ + ('prescale', prescaleDict[chain_name]['prescale']), + #('enabled', ch['enabled']), + ('monP1', ch['monP1']), + ('monT0', ch['monT0']), + ('monOffline', ch['monOffline']) + ]) + + # then writing to a file is as simple as: + __log.info( "Writing HLT Monitoring JSON to %s", fileName ) + with open(fileName, 'w') as outfile: + json.dump(monDict, outfile, indent = 4) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/share/Mon_METSlice.json b/Trigger/TriggerCommon/TriggerMenuMT/share/Mon_METSlice.json new file mode 100644 index 000000000000..1a656e3fa887 --- /dev/null +++ b/Trigger/TriggerCommon/TriggerMenuMT/share/Mon_METSlice.json @@ -0,0 +1,32 @@ +{ + 'HLT_xe65_cell_L1XE50' : { + "monP1": false, + "monT0": true, + "monOffline": true + }, + 'HLT_xe100_mht_L1XE50': { + "monP1": false, + "monT0": true, + "monOffline": true + }, + 'HLT_xe100_tcpufit_L1XE50': { + "monP1": false, + "monT0": true, + "monOffline": true + }, + 'HLT_xe100_trkmht_L1XE50': { + "monP1": false, + "monT0": true, + "monOffline": true + }, + 'HLT_xe100_pfsum_L1XE50': { + "monP1": false, + "monT0": true, + "monOffline": true + }, + 'HLT_xe65_cell_xe110_tcpufit_L1XE50': { + "monP1": false, + "monT0": true, + "monOffline": true + } +} -- GitLab From 68f6465c356fa20ad23dd9bb5348dc250688d64d Mon Sep 17 00:00:00 2001 From: gipezzul <g.pezzullo@yale.edu> Date: Mon, 26 Oct 2020 14:02:31 +0100 Subject: [PATCH 02/30] added the generateMonitoringJSON function call --- .../TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py | 3 +++ Trigger/TriggerCommon/TriggerMenuMT/share/full_menu_cf.py | 3 +++ 2 files changed, 6 insertions(+) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py index b2b5bf0947e0..1d98f5e83e16 100755 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py @@ -563,4 +563,7 @@ class GenerateMenuMT(object): from TriggerMenuMT.HLTMenuConfig.Menu.HLTPrescaleJSON import generateJSON as generatePrescaleJSON generatePrescaleJSON() + from TriggerMenuMT.HLTMenuConfig.Menu.HLTMonitoringJSON import generateJSON as generateMonitoringJSON + generateMonitoringJSON() + return finalListOfChainConfigs diff --git a/Trigger/TriggerCommon/TriggerMenuMT/share/full_menu_cf.py b/Trigger/TriggerCommon/TriggerMenuMT/share/full_menu_cf.py index 155328bdfd8d..b12b38d20c7b 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/share/full_menu_cf.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/share/full_menu_cf.py @@ -292,6 +292,9 @@ generateJSON() from TriggerMenuMT.HLTMenuConfig.Menu.HLTPrescaleJSON import generateJSON as generatePrescaleJSON generatePrescaleJSON() +from TriggerMenuMT.HLTMenuConfig.Menu.HLTMonitoringJSON import generateJSON as generateMonitoringJSON +generateMonitoringJSON() + from AthenaCommon.AlgSequence import dumpSequence, AthSequencer dumpSequence(topSequence) -- GitLab From 8ca65a3278f425abe19400170df77b50cfe63f59 Mon Sep 17 00:00:00 2001 From: gipezzul <g.pezzullo@yale.edu> Date: Mon, 26 Oct 2020 14:02:45 +0100 Subject: [PATCH 03/30] updates --- .../python/HLTMenuConfig/Menu/HLTMonitoringJSON.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py index e3159efbbee6..b6ae37098ae4 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py @@ -8,7 +8,7 @@ __log = logging.getLogger( __name__ ) def generateJSON(): - __log.info("Generating HLT Monitoring Config JSON...") + __log.info("Generating HLT Monitoring JSON in the rec-ex-common job") from AthenaConfiguration.AllConfigFlags import ConfigFlags from TriggerMenuMT.HLTMenuConfig.Menu.TriggerConfigHLT import TriggerConfigHLT @@ -33,7 +33,7 @@ def __generateJSON(chainDicts, chainConfigs, menuName, menuFileName, prescaleFil monDict=odict([ ("filetype", "hltmonitoring"), ("name", menuName), ("monchains", odict()) ]) #test file: FIXME! - config_fileName="Mon_METSlice.json" + config_fileName="TriggerMenuMT/Mon_METSlice.json" with open(config_fileName,'r') as file: json_file = json.load(file, object_pairs_hook = odict) @@ -43,7 +43,7 @@ def __generateJSON(chainDicts, chainConfigs, menuName, menuFileName, prescaleFil #check that the chain is present in the Menu if chain_name not in menuChains: - __log.info( "Chain %s not present in the HLT Menu JSON %s", chain_name, menuFileName) + __log.error( "Chain %s not present in the HLT Menu JSON %s", chain_name, menuFileName) continue #and then the elements of that chain, e.g: -- GitLab From bc4686b24102526722e607ffe0857433e2d94b71 Mon Sep 17 00:00:00 2001 From: gipezzul <g.pezzullo@yale.edu> Date: Mon, 26 Oct 2020 14:04:10 +0100 Subject: [PATCH 04/30] added a function for getting the name of the HLT monitoting json file --- .../TrigConfigSvc/python/TrigConfigSvcCfg.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Trigger/TrigConfiguration/TrigConfigSvc/python/TrigConfigSvcCfg.py b/Trigger/TrigConfiguration/TrigConfigSvc/python/TrigConfigSvcCfg.py index ca5c5c200a50..efa5a6731ea7 100644 --- a/Trigger/TrigConfiguration/TrigConfigSvc/python/TrigConfigSvcCfg.py +++ b/Trigger/TrigConfiguration/TrigConfigSvc/python/TrigConfigSvcCfg.py @@ -40,6 +40,12 @@ def getHLTPrescalesSetFileName( flags ): hltPrescalesSetFileName = 'HLTPrescalesSet_'+flags.Trigger.triggerMenuSetup+'_'+flags.Trigger.menuVersion+'.json' return hltPrescalesSetFileName +# HLT Monitoring set json file name +def getHLTMonitoringFileName( flags ): + hltMonitoringFileName = 'HLTMonitoring_'+flags.Trigger.triggerMenuSetup+'_'+flags.Trigger.menuVersion+'.json' + return hltMonitoringFileName + + # L1 Bunchgroups set json file name def getBunchGroupSetFileName( flags ): bunchGroupSetFileName = 'BunchGroupSet_'+flags.Trigger.triggerMenuSetup+'_'+flags.Trigger.menuVersion+'.json' -- GitLab From c665eea5fbcf7e93cac103dca8fa1516b2bdaaf8 Mon Sep 17 00:00:00 2001 From: gipezzul <g.pezzullo@yale.edu> Date: Fri, 30 Oct 2020 04:02:19 +0100 Subject: [PATCH 05/30] fixed structure of the json file --- .../TriggerMenuMT/share/Mon_METSlice.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/share/Mon_METSlice.json b/Trigger/TriggerCommon/TriggerMenuMT/share/Mon_METSlice.json index 1a656e3fa887..3550d589f1df 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/share/Mon_METSlice.json +++ b/Trigger/TriggerCommon/TriggerMenuMT/share/Mon_METSlice.json @@ -1,30 +1,30 @@ { - 'HLT_xe65_cell_L1XE50' : { + "HLT_xe65_cell_L1XE50" : { "monP1": false, "monT0": true, "monOffline": true }, - 'HLT_xe100_mht_L1XE50': { + "HLT_xe100_mht_L1XE50": { "monP1": false, "monT0": true, "monOffline": true }, - 'HLT_xe100_tcpufit_L1XE50': { + "HLT_xe100_tcpufit_L1XE50": { "monP1": false, "monT0": true, "monOffline": true }, - 'HLT_xe100_trkmht_L1XE50': { + "HLT_xe100_trkmht_L1XE50": { "monP1": false, "monT0": true, "monOffline": true }, - 'HLT_xe100_pfsum_L1XE50': { + "HLT_xe100_pfsum_L1XE50": { "monP1": false, "monT0": true, "monOffline": true }, - 'HLT_xe65_cell_xe110_tcpufit_L1XE50': { + "HLT_xe65_cell_xe110_tcpufit_L1XE50": { "monP1": false, "monT0": true, "monOffline": true -- GitLab From 3afb3f5b6c9d61f49314977af1f5f822f7455ff4 Mon Sep 17 00:00:00 2001 From: gipezzul <g.pezzullo@yale.edu> Date: Fri, 30 Oct 2020 04:02:47 +0100 Subject: [PATCH 06/30] fixed bugs + added debug printout level --- .../HLTMenuConfig/Menu/GenerateMenuMT.py | 1 + .../HLTMenuConfig/Menu/HLTMonitoringJSON.py | 40 ++++++++++++++----- 2 files changed, 32 insertions(+), 9 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py index 1d98f5e83e16..26aa2a530b37 100755 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py @@ -563,6 +563,7 @@ class GenerateMenuMT(object): from TriggerMenuMT.HLTMenuConfig.Menu.HLTPrescaleJSON import generateJSON as generatePrescaleJSON generatePrescaleJSON() + log.debug('[GenerateMenuMT::generateMT] now generating HLTMonitoring JSON...') from TriggerMenuMT.HLTMenuConfig.Menu.HLTMonitoringJSON import generateJSON as generateMonitoringJSON generateMonitoringJSON() diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py index b6ae37098ae4..b0daf7117f9b 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py @@ -12,28 +12,43 @@ def generateJSON(): from AthenaConfiguration.AllConfigFlags import ConfigFlags from TriggerMenuMT.HLTMenuConfig.Menu.TriggerConfigHLT import TriggerConfigHLT + __log.debug("[HLTMonitoring::generateJSON] HLTMenuFileName = %s", getHLTMenuFileName(ConfigFlags) ) + __log.debug("[HLTMonitoring::generateJSON] HLTPrescalesSetFileName = %s", getHLTPrescalesSetFileName(ConfigFlags)) + __log.debug("[HLTMonitoring::generateJSON] HLTMonitoringFileName = %s", getHLTMonitoringFileName(ConfigFlags) ) + return __generateJSON( TriggerConfigHLT.dictsList(), TriggerConfigHLT.configsList(), ConfigFlags.Trigger.triggerMenuSetup, - getHLTMenuFileName(ConfigFlags), + getHLTMenuFileName(ConfigFlags), getHLTPrescalesSetFileName(ConfigFlags), - getHLTMonitoringFileName(ConfigFlags) ) + getHLTMonitoringFileName(ConfigFlags)) def __generateJSON(chainDicts, chainConfigs, menuName, menuFileName, prescaleFileName, fileName): + #get the name of the outputfile menuFile = open(menuFileName,'r') menuDict = json.load(menuFile, object_pairs_hook = odict) menuChains = menuDict['chains'].keys() - + # menuChains = menuDict.keys() + for ch in menuChains: + __log.debug("[HLTMonitoring::generateJSON] Menu chains: %s", ch) + # get the dict of the prescales - prescaleFile = open(prescaleFileName,'r') - prescaleDict = json.load(prescaleFile, object_pairs_hook = odict) - + prescaleFile = open(prescaleFileName,'r') + prescaleDict = json.load(prescaleFile, object_pairs_hook = odict) + prescaleKeys = prescaleDict.keys() + for ch in prescaleKeys: + __log.debug("[HLTMonitoring::generateJSON] Prescale keys: %s", ch) + + prescaleChains = prescaleDict['prescales'].keys() + for ch in prescaleChains: + __log.debug("[HLTMonitoring::generateJSON] Prescale chains: %s", ch) + #create the dictionary the will house the monitoring info monDict=odict([ ("filetype", "hltmonitoring"), ("name", menuName), ("monchains", odict()) ]) #test file: FIXME! - config_fileName="TriggerMenuMT/Mon_METSlice.json" + config_fileName="Mon_METSlice.json" with open(config_fileName,'r') as file: json_file = json.load(file, object_pairs_hook = odict) @@ -45,11 +60,18 @@ def __generateJSON(chainDicts, chainConfigs, menuName, menuFileName, prescaleFil if chain_name not in menuChains: __log.error( "Chain %s not present in the HLT Menu JSON %s", chain_name, menuFileName) continue + __log.debug("[HLTMonitoring::generateJSON] chain %s found in the HLT Menu dict..", chain_name) + + if chain_name not in prescaleChains: + __log.error( "Chain %s not present in the HLT PrescaleSet JSON %s", chain_name, prescaleFileName) + continue + __log.debug("[HLTMonitoring::generateJSON] chain %s found in the HLT PrescaleSet dict..", chain_name) + #and then the elements of that chain, e.g: # ch['groups'] monDict['monchains'][chain_name] = odict([ - ('prescale', prescaleDict[chain_name]['prescale']), + ('prescale', prescaleDict['prescales'][chain_name]['prescale']), #('enabled', ch['enabled']), ('monP1', ch['monP1']), ('monT0', ch['monT0']), @@ -59,4 +81,4 @@ def __generateJSON(chainDicts, chainConfigs, menuName, menuFileName, prescaleFil # then writing to a file is as simple as: __log.info( "Writing HLT Monitoring JSON to %s", fileName ) with open(fileName, 'w') as outfile: - json.dump(monDict, outfile, indent = 4) + json.dump(monDict, outfile, indent = 4, sort_keys=False ) -- GitLab From 6dabc19dabeb9ad706614314a103a891afc861be Mon Sep 17 00:00:00 2001 From: gipezzul <g.pezzullo@yale.edu> Date: Mon, 16 Nov 2020 00:12:31 +0100 Subject: [PATCH 07/30] changed function name to generateMonitoringJSON, and removed unused input variables and prescale key form the JSON output --- .../HLTMenuConfig/Menu/GenerateMenuMT.py | 2 +- .../HLTMenuConfig/Menu/HLTMonitoringJSON.py | 31 +++---------------- 2 files changed, 6 insertions(+), 27 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py index 26aa2a530b37..b678d5d4b1fa 100755 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py @@ -564,7 +564,7 @@ class GenerateMenuMT(object): generatePrescaleJSON() log.debug('[GenerateMenuMT::generateMT] now generating HLTMonitoring JSON...') - from TriggerMenuMT.HLTMenuConfig.Menu.HLTMonitoringJSON import generateJSON as generateMonitoringJSON + from TriggerMenuMT.HLTMenuConfig.Menu.HLTMonitoringJSON import generateMonitoringJSON generateMonitoringJSON() return finalListOfChainConfigs diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py index b0daf7117f9b..7b4efd8ba12b 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py @@ -7,7 +7,7 @@ from AthenaCommon.Logging import logging __log = logging.getLogger( __name__ ) -def generateJSON(): +def generateMonitoringJSON(): __log.info("Generating HLT Monitoring JSON in the rec-ex-common job") from AthenaConfiguration.AllConfigFlags import ConfigFlags from TriggerMenuMT.HLTMenuConfig.Menu.TriggerConfigHLT import TriggerConfigHLT @@ -16,14 +16,11 @@ def generateJSON(): __log.debug("[HLTMonitoring::generateJSON] HLTPrescalesSetFileName = %s", getHLTPrescalesSetFileName(ConfigFlags)) __log.debug("[HLTMonitoring::generateJSON] HLTMonitoringFileName = %s", getHLTMonitoringFileName(ConfigFlags) ) - return __generateJSON( TriggerConfigHLT.dictsList(), - TriggerConfigHLT.configsList(), - ConfigFlags.Trigger.triggerMenuSetup, - getHLTMenuFileName(ConfigFlags), - getHLTPrescalesSetFileName(ConfigFlags), - getHLTMonitoringFileName(ConfigFlags)) + return __generateMonitoringJSON(ConfigFlags.Trigger.triggerMenuSetup, + getHLTMenuFileName(ConfigFlags), + getHLTMonitoringFileName(ConfigFlags)) -def __generateJSON(chainDicts, chainConfigs, menuName, menuFileName, prescaleFileName, fileName): +def __generateMonitoringJSON(menuName, menuFileName, fileName): #get the name of the outputfile menuFile = open(menuFileName,'r') @@ -33,17 +30,6 @@ def __generateJSON(chainDicts, chainConfigs, menuName, menuFileName, prescaleFil for ch in menuChains: __log.debug("[HLTMonitoring::generateJSON] Menu chains: %s", ch) - # get the dict of the prescales - prescaleFile = open(prescaleFileName,'r') - prescaleDict = json.load(prescaleFile, object_pairs_hook = odict) - prescaleKeys = prescaleDict.keys() - for ch in prescaleKeys: - __log.debug("[HLTMonitoring::generateJSON] Prescale keys: %s", ch) - - prescaleChains = prescaleDict['prescales'].keys() - for ch in prescaleChains: - __log.debug("[HLTMonitoring::generateJSON] Prescale chains: %s", ch) - #create the dictionary the will house the monitoring info monDict=odict([ ("filetype", "hltmonitoring"), ("name", menuName), ("monchains", odict()) ]) @@ -62,16 +48,9 @@ def __generateJSON(chainDicts, chainConfigs, menuName, menuFileName, prescaleFil continue __log.debug("[HLTMonitoring::generateJSON] chain %s found in the HLT Menu dict..", chain_name) - if chain_name not in prescaleChains: - __log.error( "Chain %s not present in the HLT PrescaleSet JSON %s", chain_name, prescaleFileName) - continue - __log.debug("[HLTMonitoring::generateJSON] chain %s found in the HLT PrescaleSet dict..", chain_name) - - #and then the elements of that chain, e.g: # ch['groups'] monDict['monchains'][chain_name] = odict([ - ('prescale', prescaleDict['prescales'][chain_name]['prescale']), #('enabled', ch['enabled']), ('monP1', ch['monP1']), ('monT0', ch['monT0']), -- GitLab From 22fd17d61dc1c8fec6ea7e85f2a9bc6569995f85 Mon Sep 17 00:00:00 2001 From: gipezzul <g.pezzullo@yale.edu> Date: Mon, 16 Nov 2020 05:13:23 +0100 Subject: [PATCH 08/30] updates --- .../HLTMenuConfig/Menu/HLTMonitoringJSON.py | 48 ++++++++++--------- 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py index 7b4efd8ba12b..24ef8a3d3fe7 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py @@ -10,7 +10,6 @@ __log = logging.getLogger( __name__ ) def generateMonitoringJSON(): __log.info("Generating HLT Monitoring JSON in the rec-ex-common job") from AthenaConfiguration.AllConfigFlags import ConfigFlags - from TriggerMenuMT.HLTMenuConfig.Menu.TriggerConfigHLT import TriggerConfigHLT __log.debug("[HLTMonitoring::generateJSON] HLTMenuFileName = %s", getHLTMenuFileName(ConfigFlags) ) __log.debug("[HLTMonitoring::generateJSON] HLTPrescalesSetFileName = %s", getHLTPrescalesSetFileName(ConfigFlags)) @@ -22,6 +21,8 @@ def generateMonitoringJSON(): def __generateMonitoringJSON(menuName, menuFileName, fileName): + import TriggerMenuMT.HLTMenuConfig.Menu.Mon_METSlice as Mon_METSlice + #get the name of the outputfile menuFile = open(menuFileName,'r') menuDict = json.load(menuFile, object_pairs_hook = odict) @@ -34,28 +35,31 @@ def __generateMonitoringJSON(menuName, menuFileName, fileName): monDict=odict([ ("filetype", "hltmonitoring"), ("name", menuName), ("monchains", odict()) ]) #test file: FIXME! - config_fileName="Mon_METSlice.json" + # config_fileName="Mon_METSlice.json" - with open(config_fileName,'r') as file: - json_file = json.load(file, object_pairs_hook = odict) - - # then you can iterate, say over the HLT menu: - for chain_name, ch in json_file.items(): #json_file['chains'].items(): - - #check that the chain is present in the Menu - if chain_name not in menuChains: - __log.error( "Chain %s not present in the HLT Menu JSON %s", chain_name, menuFileName) - continue - __log.debug("[HLTMonitoring::generateJSON] chain %s found in the HLT Menu dict..", chain_name) - - #and then the elements of that chain, e.g: - # ch['groups'] - monDict['monchains'][chain_name] = odict([ - #('enabled', ch['enabled']), - ('monP1', ch['monP1']), - ('monT0', ch['monT0']), - ('monOffline', ch['monOffline']) - ]) + # with open(config_fileName,'r') as file: + # json_file = json.load(file, object_pairs_hook = odict) + + # then you can iterate, say over the HLT menu: + # for chain_name, ch in json_file.items(): #json_file['chains'].items(): + for chain_name in Mon_METSlice.chainsToMonitor: + #check that the chain is present in the Menu + if chain_name not in menuChains: + __log.error( "Chain %s not present in the HLT Menu JSON %s", chain_name, menuFileName) + continue + __log.debug("[HLTMonitoring::generateJSON] chain %s found in the HLT Menu dict..", chain_name) + + #and then the elements of that chain, e.g: + # ch['groups'] + monDict['monchains'][chain_name] = odict([ + ('monP1', Mon_METSlice.monP1), + ('monT0', Mon_METSlice.monT0), + ('monOffline', Mon_METSlice.monOffline) + #('enabled', ch['enabled']), + # ('monP1', ch['monP1']), + # ('monT0', ch['monT0']), + # ('monOffline', ch['monOffline']) + ]) # then writing to a file is as simple as: __log.info( "Writing HLT Monitoring JSON to %s", fileName ) -- GitLab From 495ac81c884bdbc8077a88551a3a96673083ecf0 Mon Sep 17 00:00:00 2001 From: gipezzul <g.pezzullo@yale.edu> Date: Mon, 16 Nov 2020 05:13:50 +0100 Subject: [PATCH 09/30] test file --- .../python/HLTMenuConfig/Menu/Mon_METSlice.py | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Mon_METSlice.py diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Mon_METSlice.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Mon_METSlice.py new file mode 100644 index 000000000000..853ab9d8af44 --- /dev/null +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Mon_METSlice.py @@ -0,0 +1,11 @@ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + +# from AthenaCommon.Logging import logging +# __log = logging.getLogger( __name__ ) + +chainsToMonitor = ["HLT_xe65_cell_L1XE50", "HLT_xe100_mht_L1XE50", "HLT_xe100_tcpufit_L1XE50", + "HLT_xe100_trkmht_L1XE50", "HLT_xe100_pfsum_L1XE50", "HLT_xe65_cell_xe110_tcpufit_L1XE50"] +monP1 = False +monT0 = True +monOffline = True + -- GitLab From de7bae141b2061adf68cef3006284417705a10da Mon Sep 17 00:00:00 2001 From: gipezzul <g.pezzullo@yale.edu> Date: Mon, 23 Nov 2020 05:05:26 +0100 Subject: [PATCH 10/30] crated new dir for the HLTMon script and config files --- .../TriggerMenuMT/CMakeLists.txt | 1 + .../HLTMenuConfig/Menu/GenerateMenuMT.py | 4 +- .../python/HLTMenuConfig/Menu/Mon_METSlice.py | 11 ---- .../MET/METChainMonConfiguration.py | 12 ++++ .../python/HLTMonConfig/MET/__init__.py | 2 + .../python/HLTMonConfig/Mon/ChainDefInMon.py | 14 +++++ .../python/HLTMonConfig/Mon/ChainMon.py | 7 +++ .../Mon}/HLTMonitoringJSON.py | 62 ++++++++++--------- .../python/HLTMonConfig/__init__.py | 0 .../TriggerMenuMT/share/Mon_METSlice.json | 32 ---------- 10 files changed, 71 insertions(+), 74 deletions(-) delete mode 100644 Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Mon_METSlice.py create mode 100644 Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/MET/METChainMonConfiguration.py create mode 100644 Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/MET/__init__.py create mode 100644 Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/Mon/ChainDefInMon.py create mode 100644 Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/Mon/ChainMon.py rename Trigger/TriggerCommon/TriggerMenuMT/python/{HLTMenuConfig/Menu => HLTMonConfig/Mon}/HLTMonitoringJSON.py (51%) create mode 100644 Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/__init__.py delete mode 100644 Trigger/TriggerCommon/TriggerMenuMT/share/Mon_METSlice.json diff --git a/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt b/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt index 4ce4f91ce383..58a29436e185 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt +++ b/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt @@ -102,6 +102,7 @@ atlas_install_python_modules( python/*.py python/LVL1MenuConfig python/L1 python/HLTMenuConfig + python/HLTMonConfig POST_BUILD_CMD ${ATLAS_FLAKE8}) atlas_install_scripts( scripts/generateMenuMT.py diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py index b678d5d4b1fa..a8246cdc3884 100755 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py @@ -564,7 +564,7 @@ class GenerateMenuMT(object): generatePrescaleJSON() log.debug('[GenerateMenuMT::generateMT] now generating HLTMonitoring JSON...') - from TriggerMenuMT.HLTMenuConfig.Menu.HLTMonitoringJSON import generateMonitoringJSON - generateMonitoringJSON() + from TriggerMenuMT.HLTMonConfig.Mon.HLTMonitoringJSON import generateDefaultMonitoringJSON + generateDefaultMonitoringJSON() return finalListOfChainConfigs diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Mon_METSlice.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Mon_METSlice.py deleted file mode 100644 index 853ab9d8af44..000000000000 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Mon_METSlice.py +++ /dev/null @@ -1,11 +0,0 @@ -# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration - -# from AthenaCommon.Logging import logging -# __log = logging.getLogger( __name__ ) - -chainsToMonitor = ["HLT_xe65_cell_L1XE50", "HLT_xe100_mht_L1XE50", "HLT_xe100_tcpufit_L1XE50", - "HLT_xe100_trkmht_L1XE50", "HLT_xe100_pfsum_L1XE50", "HLT_xe65_cell_xe110_tcpufit_L1XE50"] -monP1 = False -monT0 = True -monOffline = True - diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/MET/METChainMonConfiguration.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/MET/METChainMonConfiguration.py new file mode 100644 index 000000000000..c13d109f8056 --- /dev/null +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/MET/METChainMonConfiguration.py @@ -0,0 +1,12 @@ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + +from TriggerMenuMT.HLTMonConfig.Mon.ChainDefInMon import ChainMonProp + +METChainMon = ChainMonProp(name="METSliceMon", + chains=["HLT_xe65_cell_L1XE50", "HLT_xe100_mht_L1XE50", "HLT_xe100_tcpufit_L1XE50", + "HLT_xe100_trkmht_L1XE50", "HLT_xe100_pfsum_L1XE50", "HLT_xe65_cell_xe110_tcpufit_L1XE50"], + monP1=[True, True, True, True, True, True], + monT0=[True, True, True, True, True, True], + monOffline=True) + + diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/MET/__init__.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/MET/__init__.py new file mode 100644 index 000000000000..91873a08bc5a --- /dev/null +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/MET/__init__.py @@ -0,0 +1,2 @@ +#Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/Mon/ChainDefInMon.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/Mon/ChainDefInMon.py new file mode 100644 index 000000000000..70a9ac378576 --- /dev/null +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/Mon/ChainDefInMon.py @@ -0,0 +1,14 @@ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + +# from AthenaCommon.Logging import logging +# __log = logging.getLogger( __name__ ) +from TriggerMenuMT.HLTMenuConfig.Menu.ChainDefInMenu import namedtuple_with_defaults + + +ChainMonProp = namedtuple_with_defaults("ChainMonPro", + ['name','chains', 'monP1', 'monT0', 'monOffline'], + {'chains' : [], + 'monP1' : [], + 'monT0' : [], + 'monOffline' : []}) + diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/Mon/ChainMon.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/Mon/ChainMon.py new file mode 100644 index 000000000000..89d072de185d --- /dev/null +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/Mon/ChainMon.py @@ -0,0 +1,7 @@ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + +from TriggerMenuMT.HLTMonConfig.MET.METChainMonConfiguration import METChainMon + +chainsToMonitor = [ + METChainMon +] diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/Mon/HLTMonitoringJSON.py similarity index 51% rename from Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py rename to Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/Mon/HLTMonitoringJSON.py index 24ef8a3d3fe7..cd728beb4bc8 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/Mon/HLTMonitoringJSON.py @@ -7,7 +7,7 @@ from AthenaCommon.Logging import logging __log = logging.getLogger( __name__ ) -def generateMonitoringJSON(): +def generateDefaultMonitoringJSON(): __log.info("Generating HLT Monitoring JSON in the rec-ex-common job") from AthenaConfiguration.AllConfigFlags import ConfigFlags @@ -15,51 +15,55 @@ def generateMonitoringJSON(): __log.debug("[HLTMonitoring::generateJSON] HLTPrescalesSetFileName = %s", getHLTPrescalesSetFileName(ConfigFlags)) __log.debug("[HLTMonitoring::generateJSON] HLTMonitoringFileName = %s", getHLTMonitoringFileName(ConfigFlags) ) - return __generateMonitoringJSON(ConfigFlags.Trigger.triggerMenuSetup, + return generateMonitoringJSON(ConfigFlags.Trigger.triggerMenuSetup, getHLTMenuFileName(ConfigFlags), getHLTMonitoringFileName(ConfigFlags)) -def __generateMonitoringJSON(menuName, menuFileName, fileName): +def generateMonitoringJSON(menuName, menuFileName, fileName): - import TriggerMenuMT.HLTMenuConfig.Menu.Mon_METSlice as Mon_METSlice + from TriggerMenuMT.HLTMonConfig.Mon.ChainMon import chainsToMonitor #get the name of the outputfile menuFile = open(menuFileName,'r') menuDict = json.load(menuFile, object_pairs_hook = odict) menuChains = menuDict['chains'].keys() - # menuChains = menuDict.keys() for ch in menuChains: __log.debug("[HLTMonitoring::generateJSON] Menu chains: %s", ch) #create the dictionary the will house the monitoring info monDict=odict([ ("filetype", "hltmonitoring"), ("name", menuName), ("monchains", odict()) ]) - #test file: FIXME! - # config_fileName="Mon_METSlice.json" - - # with open(config_fileName,'r') as file: - # json_file = json.load(file, object_pairs_hook = odict) - # then you can iterate, say over the HLT menu: - # for chain_name, ch in json_file.items(): #json_file['chains'].items(): - for chain_name in Mon_METSlice.chainsToMonitor: - #check that the chain is present in the Menu - if chain_name not in menuChains: - __log.error( "Chain %s not present in the HLT Menu JSON %s", chain_name, menuFileName) - continue - __log.debug("[HLTMonitoring::generateJSON] chain %s found in the HLT Menu dict..", chain_name) + for monSlice in chainsToMonitor: + __log.debug("[HLTMonitoring::generateJSON] Processing Slice %s ...", monSlice.name) + + for i, chain_name in enumerate(monSlice.chains): + #check that the chain is present in the Menu + if chain_name not in menuChains: + __log.error( "Chain %s not present in the HLT Menu JSON %s", chain_name, menuFileName) + continue + __log.debug("[HLTMonitoring::generateJSON] chain %s found in the HLT Menu dict..", chain_name) + + if isinstance(monSlice.monP1, list): + chain_monP1 = monSlice.monP1[i] + else: + chain_monP1 = monSlice.monP1 + if isinstance(monSlice.monT0, list): + chain_monT0 = monSlice.monT0[i] + else: + chain_monT0 = monSlice.monT0 + if isinstance(monSlice.monOffline, list): + chain_monOffline = monSlice.monOffline[i] + else: + chain_monOffline = monSlice.monOffline - #and then the elements of that chain, e.g: - # ch['groups'] - monDict['monchains'][chain_name] = odict([ - ('monP1', Mon_METSlice.monP1), - ('monT0', Mon_METSlice.monT0), - ('monOffline', Mon_METSlice.monOffline) - #('enabled', ch['enabled']), - # ('monP1', ch['monP1']), - # ('monT0', ch['monT0']), - # ('monOffline', ch['monOffline']) - ]) + #and then the elements of that chain, e.g: + # ch['groups'] + monDict['monchains'][chain_name] = odict([ + ('monP1', chain_monP1), + ('monT0', chain_monT0), + ('monOffline', chain_monOffline) + ]) # then writing to a file is as simple as: __log.info( "Writing HLT Monitoring JSON to %s", fileName ) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/__init__.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/Trigger/TriggerCommon/TriggerMenuMT/share/Mon_METSlice.json b/Trigger/TriggerCommon/TriggerMenuMT/share/Mon_METSlice.json deleted file mode 100644 index 3550d589f1df..000000000000 --- a/Trigger/TriggerCommon/TriggerMenuMT/share/Mon_METSlice.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "HLT_xe65_cell_L1XE50" : { - "monP1": false, - "monT0": true, - "monOffline": true - }, - "HLT_xe100_mht_L1XE50": { - "monP1": false, - "monT0": true, - "monOffline": true - }, - "HLT_xe100_tcpufit_L1XE50": { - "monP1": false, - "monT0": true, - "monOffline": true - }, - "HLT_xe100_trkmht_L1XE50": { - "monP1": false, - "monT0": true, - "monOffline": true - }, - "HLT_xe100_pfsum_L1XE50": { - "monP1": false, - "monT0": true, - "monOffline": true - }, - "HLT_xe65_cell_xe110_tcpufit_L1XE50": { - "monP1": false, - "monT0": true, - "monOffline": true - } -} -- GitLab From 26b8d895aefed7800dfe93b9188fb13f139387af Mon Sep 17 00:00:00 2001 From: gipezzul <g.pezzullo@yale.edu> Date: Mon, 23 Nov 2020 18:58:28 +0100 Subject: [PATCH 11/30] improved structure for storing the chains within a given signature --- .../MET/METChainMonConfiguration.py | 15 +++--- .../python/HLTMonConfig/Mon/ChainDefInMon.py | 11 +++-- .../python/HLTMonConfig/Mon/ChainMon.py | 7 +-- .../HLTMonConfig/Mon/HLTMonitoringJSON.py | 47 +++++++------------ 4 files changed, 36 insertions(+), 44 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/MET/METChainMonConfiguration.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/MET/METChainMonConfiguration.py index c13d109f8056..62dd60c89d4c 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/MET/METChainMonConfiguration.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/MET/METChainMonConfiguration.py @@ -2,11 +2,14 @@ from TriggerMenuMT.HLTMonConfig.Mon.ChainDefInMon import ChainMonProp -METChainMon = ChainMonProp(name="METSliceMon", - chains=["HLT_xe65_cell_L1XE50", "HLT_xe100_mht_L1XE50", "HLT_xe100_tcpufit_L1XE50", - "HLT_xe100_trkmht_L1XE50", "HLT_xe100_pfsum_L1XE50", "HLT_xe65_cell_xe110_tcpufit_L1XE50"], - monP1=[True, True, True, True, True, True], - monT0=[True, True, True, True, True, True], - monOffline=True) +METChainMon = [] +METChainMon += [ + ChainMonProp(name="HLT_xe65_cell_L1XE50", monP1=True, monT0=True, monOffline=True), + ChainMonProp(name="HLT_xe100_mht_L1XE50", monP1=True, monT0=True, monOffline=True), + ChainMonProp(name="HLT_xe100_tcpufit_L1XE50", monP1=True, monT0=True, monOffline=True), + ChainMonProp(name="HLT_xe100_trkmht_L1XE50", monP1=True, monT0=True, monOffline=True), + ChainMonProp(name="HLT_xe100_pfsum_L1XE50", monP1=True, monT0=True, monOffline=True), + ChainMonProp(name="HLT_xe65_cell_xe110_tcpufit_L1XE50", monP1=True, monT0=True, monOffline=True) +] diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/Mon/ChainDefInMon.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/Mon/ChainDefInMon.py index 70a9ac378576..4c617fce76be 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/Mon/ChainDefInMon.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/Mon/ChainDefInMon.py @@ -1,3 +1,4 @@ + # Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # from AthenaCommon.Logging import logging @@ -6,9 +7,9 @@ from TriggerMenuMT.HLTMenuConfig.Menu.ChainDefInMenu import namedtuple_with_defa ChainMonProp = namedtuple_with_defaults("ChainMonPro", - ['name','chains', 'monP1', 'monT0', 'monOffline'], - {'chains' : [], - 'monP1' : [], - 'monT0' : [], - 'monOffline' : []}) + ['name', 'monP1', 'monT0', 'monOffline'], + {'name' : 'UNSET', + 'monP1' : False, + 'monT0' : False, + 'monOffline' : False}) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/Mon/ChainMon.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/Mon/ChainMon.py index 89d072de185d..b1a519db4103 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/Mon/ChainMon.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/Mon/ChainMon.py @@ -2,6 +2,7 @@ from TriggerMenuMT.HLTMonConfig.MET.METChainMonConfiguration import METChainMon -chainsToMonitor = [ - METChainMon -] +chainsToMonitor = [] + +chainsToMonitor += METChainMon + diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/Mon/HLTMonitoringJSON.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/Mon/HLTMonitoringJSON.py index cd728beb4bc8..bfea52447a8c 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/Mon/HLTMonitoringJSON.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/Mon/HLTMonitoringJSON.py @@ -28,42 +28,29 @@ def generateMonitoringJSON(menuName, menuFileName, fileName): menuDict = json.load(menuFile, object_pairs_hook = odict) menuChains = menuDict['chains'].keys() for ch in menuChains: - __log.debug("[HLTMonitoring::generateJSON] Menu chains: %s", ch) + __log.debug("[HLTMonitoring::generateMonitoringJSON] Menu chains: %s", ch) #create the dictionary the will house the monitoring info monDict=odict([ ("filetype", "hltmonitoring"), ("name", menuName), ("monchains", odict()) ]) # then you can iterate, say over the HLT menu: - for monSlice in chainsToMonitor: - __log.debug("[HLTMonitoring::generateJSON] Processing Slice %s ...", monSlice.name) - - for i, chain_name in enumerate(monSlice.chains): - #check that the chain is present in the Menu - if chain_name not in menuChains: - __log.error( "Chain %s not present in the HLT Menu JSON %s", chain_name, menuFileName) - continue - __log.debug("[HLTMonitoring::generateJSON] chain %s found in the HLT Menu dict..", chain_name) + for chain in chainsToMonitor: + __log.debug("[HLTMonitoring::generateMonitoringJSON] Processing Chain %s ...", chain) + chain_name=chain.name + + #check that the chain is present in the Menu + if chain_name not in menuChains: + __log.error( "Chain %s not present in the HLT Menu JSON %s", chain_name, menuFileName) + continue + __log.debug("[HLTMonitoring::generateMonitoringJSON] chain %s found in the HLT Menu dict..", chain_name) - if isinstance(monSlice.monP1, list): - chain_monP1 = monSlice.monP1[i] - else: - chain_monP1 = monSlice.monP1 - if isinstance(monSlice.monT0, list): - chain_monT0 = monSlice.monT0[i] - else: - chain_monT0 = monSlice.monT0 - if isinstance(monSlice.monOffline, list): - chain_monOffline = monSlice.monOffline[i] - else: - chain_monOffline = monSlice.monOffline - - #and then the elements of that chain, e.g: - # ch['groups'] - monDict['monchains'][chain_name] = odict([ - ('monP1', chain_monP1), - ('monT0', chain_monT0), - ('monOffline', chain_monOffline) - ]) + #and then the elements of that chain, e.g: + # ch['groups'] + monDict['monchains'][chain_name] = odict([ + ('monP1', chain.monP1), + ('monT0', chain.monT0), + ('monOffline', chain.monOffline) + ]) # then writing to a file is as simple as: __log.info( "Writing HLT Monitoring JSON to %s", fileName ) -- GitLab From 4607c4c9ca1ae6b2db082c8c37deb87e873b5093 Mon Sep 17 00:00:00 2001 From: Gianantonio Pezzullo <g.pezzullo@yale.edu> Date: Sat, 16 Jan 2021 23:36:16 +0100 Subject: [PATCH 12/30] included HLTmonitoring JSON maker --- Trigger/TriggerCommon/TriggerMenuMT/share/full_menu_cf.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/share/full_menu_cf.py b/Trigger/TriggerCommon/TriggerMenuMT/share/full_menu_cf.py index 51d811f69883..3b8b7e90ee29 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/share/full_menu_cf.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/share/full_menu_cf.py @@ -307,12 +307,8 @@ generateJSON() from TriggerMenuMT.HLTMenuConfig.Menu.HLTPrescaleJSON import generateJSON as generatePrescaleJSON generatePrescaleJSON() -<<<<<<< HEAD from TriggerMenuMT.HLTMenuConfig.Menu.HLTMonitoringJSON import generateJSON as generateMonitoringJSON generateMonitoringJSON() -from AthenaCommon.AlgSequence import dumpSequence, AthSequencer -======= from AthenaCommon.AlgSequence import dumpSequence ->>>>>>> 0a56170c2bc9d535b27e53054ed5fb5ecf7dcaa9 dumpSequence(topSequence) -- GitLab From 650668bf83a28ad801f18454e6416d20c9fdec72 Mon Sep 17 00:00:00 2001 From: Gianantonio Pezzullo <g.pezzullo@yale.edu> Date: Fri, 22 Jan 2021 07:19:06 +0100 Subject: [PATCH 13/30] added monGoups for testing --- .../TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py | 4 ++-- .../python/HLTMenuConfig/Menu/Physics_pp_run3_v1.py | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py index 0dc13b943705..4c3019888e69 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py @@ -14,7 +14,7 @@ import TriggerMenuMT.HLTMenuConfig.Menu.MC_pp_run3_v1 as mc_menu import TriggerMenuMT.HLTMenuConfig.Menu.PhysicsP1_pp_run3_v1 as p1_menu # this is not the best option, due to flake violation, this list has to be changed when some groups are removed -from TriggerMenuMT.HLTMenuConfig.Menu.Physics_pp_run3_v1 import PhysicsStream,SingleMuonGroup,MultiMuonGroup,SingleElectronGroup,MultiElectronGroup,SinglePhotonGroup,MultiPhotonGroup,SingleMETGroup,MultiMETGroup,SingleJetGroup,MultiJetGroup,SingleBjetGroup,SingleTauGroup,MultiTauGroup,BphysicsGroup,EgammaMuonGroup,MuonJetGroup,MuonMETGroup,EgammaTauGroup,MuonTauGroup,TauMETGroup +from TriggerMenuMT.HLTMenuConfig.Menu.Physics_pp_run3_v1 import PhysicsStream,SingleMuonGroup,MultiMuonGroup,SingleElectronGroup,MultiElectronGroup,SinglePhotonGroup,MultiPhotonGroup,SingleMETGroup,MultiMETGroup,SingleJetGroup,MultiJetGroup,SingleBjetGroup,SingleTauGroup,MultiTauGroup,BphysicsGroup,EgammaMuonGroup,MuonJetGroup,MuonMETGroup,EgammaTauGroup,MuonTauGroup,TauMETGroup,SingleMuonMonGroup def setupMenu(): @@ -60,7 +60,7 @@ def setupMenu(): ChainProp(name='HLT_mu6_mu4_L12MU4', l1SeedThresholds=['MU4']*2, groups=MultiMuonGroup), # in planned primary as an option - ChainProp(name='HLT_mu24_ivarmedium_L1MU20', groups=SingleMuonGroup), + ChainProp(name='HLT_mu24_ivarmedium_L1MU20', groups=SingleMuonGroup, monGroups=SingleMuonMonGroup), # Additional intermediate thresholds for validation comparisons to match with Physics_pp_v7_primaries menu ChainProp(name='HLT_mu24_mu10noL1_L1MU20', l1SeedThresholds=['MU20','FSNOSEED'], groups=MultiMuonGroup), 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 473ef4d9bb7b..ed3ff3b6faa5 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 @@ -43,6 +43,9 @@ JetStreamersGroup = ['RATE:SeededStreamers', 'BW:Jet'] METStreamersGroup = ['RATE:SeededStreamers', 'BW:MET'] BCIDmonGroup = ['MON:BCID'] +#Monitoring groups +SingleMuonMonGroup = ['singleMuonMon:shifter','idMon:t0'] + def setupMenu(): from TriggerJobOpts.TriggerFlags import TriggerFlags -- GitLab From 6c1c60deb97ce465cbc682754a97801ab3d1d25e Mon Sep 17 00:00:00 2001 From: Gianantonio Pezzullo <g.pezzullo@yale.edu> Date: Fri, 22 Jan 2021 07:19:23 +0100 Subject: [PATCH 14/30] added monGroups to ChainProp --- .../python/HLTMenuConfig/Menu/ChainDefInMenu.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/ChainDefInMenu.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/ChainDefInMenu.py index 61f5c45d8fa8..e34a6b34fd15 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/ChainDefInMenu.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/ChainDefInMenu.py @@ -15,12 +15,13 @@ def namedtuple_with_defaults(typename, field_names, default_values=()): # namedtuple class with some defaults set for those entries that do not require settings ChainProp = namedtuple_with_defaults("ChainProp", - ['name', 'l1SeedThresholds', 'stream', 'groups', 'mergingStrategy', 'mergingOrder', 'mergingOffset', 'topoStartFrom'], + ['name', 'l1SeedThresholds', 'stream', 'groups', 'mergingStrategy', 'mergingOrder', 'mergingOffset', 'topoStartFrom','monGroups'], {'stream':['Main'], 'l1SeedThresholds': [], 'mergingStrategy':'auto', 'mergingOrder': [], 'mergingOffset': -1, - 'topoStartFrom': False}) + 'topoStartFrom': False, + 'monGroups' : []}) -- GitLab From 00a30541feae29abb78f04b67361c2ca536c27aa Mon Sep 17 00:00:00 2001 From: Gianantonio Pezzullo <g.pezzullo@yale.edu> Date: Fri, 22 Jan 2021 07:19:49 +0100 Subject: [PATCH 15/30] updated path for HLTMonitotingJSON script --- .../TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py index 60ce73ec6d0b..89b2dd296581 100755 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py @@ -508,7 +508,7 @@ class GenerateMenuMT(object, metaclass=Singleton): generatePrescaleJSON() log.debug('[GenerateMenuMT::generateMT] now generating HLTMonitoring JSON...') - from TriggerMenuMT.HLTMonConfig.Mon.HLTMonitoringJSON import generateDefaultMonitoringJSON + from TriggerMenuMT.HLTMenuConfig.Menu.HLTMonitoringJSON import generateDefaultMonitoringJSON generateDefaultMonitoringJSON() return finalListOfChainConfigs -- GitLab From e9bd7afd3ec76a5f4b98419f115e99a1d8ce6c77 Mon Sep 17 00:00:00 2001 From: Gianantonio Pezzullo <g.pezzullo@yale.edu> Date: Fri, 22 Jan 2021 13:27:47 +0100 Subject: [PATCH 16/30] clean up --- .../HLTMenuConfig/Menu/HLTMonitoringJSON.py | 94 +++++++++++++++++++ .../HLTMenuConfig/Menu/Physics_pp_run3_v1.py | 2 +- .../MET/METChainMonConfiguration.py | 15 --- .../python/HLTMonConfig/MET/__init__.py | 2 - .../python/HLTMonConfig/Mon/ChainDefInMon.py | 15 --- .../python/HLTMonConfig/Mon/ChainMon.py | 8 -- .../HLTMonConfig/Mon/HLTMonitoringJSON.py | 58 ------------ .../python/HLTMonConfig/__init__.py | 0 8 files changed, 95 insertions(+), 99 deletions(-) create mode 100644 Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py delete mode 100644 Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/MET/METChainMonConfiguration.py delete mode 100644 Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/MET/__init__.py delete mode 100644 Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/Mon/ChainDefInMon.py delete mode 100644 Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/Mon/ChainMon.py delete mode 100644 Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/Mon/HLTMonitoringJSON.py delete mode 100644 Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/__init__.py diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py new file mode 100644 index 000000000000..fb4d5516ddd0 --- /dev/null +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py @@ -0,0 +1,94 @@ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + +import json +from collections import OrderedDict as odict +from TrigConfigSvc.TrigConfigSvcCfg import getHLTMenuFileName, getHLTPrescalesSetFileName, getHLTMonitoringFileName +from AthenaCommon.Logging import logging +__log = logging.getLogger( __name__ ) + + +def generateDefaultMonitoringJSON(): + __log.info("Generating HLT Monitoring JSON in the rec-ex-common job") + from AthenaConfiguration.AllConfigFlags import ConfigFlags + + __log.debug("[HLTMonitoring::generateJSON] HLTMenuFileName = %s" , getHLTMenuFileName(ConfigFlags) ) + __log.debug("[HLTMonitoring::generateJSON] HLTPrescalesSetFileName = %s", getHLTPrescalesSetFileName(ConfigFlags)) + __log.debug("[HLTMonitoring::generateJSON] HLTMonitoringFileName = %s" , getHLTMonitoringFileName(ConfigFlags) ) + + return generateMonitoringJSON(ConfigFlags.Trigger.triggerMenuSetup, + getHLTMenuFileName(ConfigFlags), + getHLTMonitoringFileName(ConfigFlags)) + +def generateMonitoringJSON(menuName, menuFileName, fileName): + + # from TriggerMenuMT.HLTMonConfig.Mon.ChainMon import chainsToMonitor + + #get the name of the outputfile + menuFile = open(menuFileName,'r') + menuDict = json.load(menuFile, object_pairs_hook = odict) + menuChains = menuDict['chains'].keys() + for ch in menuChains: + __log.debug("[HLTMonitoring::generateMonitoringJSON] Menu chains: %s", ch) + + #create the dictionary the will house the monitoring info + monDict=odict([ ("filetype", "hltmonitoring"), ("name", menuName), ("monchains", odict()) ]) + + #create a summary file + summaryDict=odict([ ("filetype", "hltmonitoringsummary"), ("name", menuName), ("signatures", odict())]) + + # then you can iterate, say over the HLT menu: + # for chain in chainsToMonitor: + for chain in menuDict['chains']: + __log.debug("[HLTMonitoring::generateMonitoringJSON] Processing Chain %s ...", chain) + chain_name=chain.name + + #check that the chain is present in the Menu + # if chain_name not in menuChains: + # __log.error( "Chain %s not present in the HLT Menu JSON %s", chain_name, menuFileName) + # continue + # __log.debug("[HLTMonitoring::generateMonitoringJSON] chain %s found in the HLT Menu dict..", chain_name) + + #and then the elements of that chain, e.g: + # ch['groups'] + + #check if the chain needs to be monitored + if len(chain.monGroups) == 0: + continue + + monDict['monchains'][chain_name] = odict([ + #('groups', chain.monGroups) + (chain.monGroups) + ]) + + #add the signatures in the summary file + for entry in chain.monGroups: + monGroup = entry.split(':')[0] + monSignature = entry.split(':')[1] + + if monSignature not in summaryDict['signatures']: + summaryDict['signatures'][monSignature] = odict([ + ('chains', [chain_name] ), + ('monGroups', [monGroup]) + ]) + else: + #the signature is already present, + # now check the chain + if chain_name not in summaryDict['signatures']['chains']: + summaryDict['signatures']['chains'].append(chain_name) + + # now check if the monGroup is alrady present + if monGroup not in summaryDict['signatures']['monGroups']: + summaryDict['signatures']['monGroups'].append(monGroup) + + + # then writing to a file is as simple as: + __log.info( "Writing HLT Monitoring JSON to %s", fileName ) + with open(fileName, 'w') as outfile: + json.dump(monDict, outfile, indent = 4, sort_keys=False ) + + + # then writing the summary to a file is as simple as: + summaryFileName = "Summary_"+fileName + __log.info( "Writing Summary of HLT Monitoring JSON to %s", summaryFileName) + with open(summaryFileName, 'w') as outfile: + json.dump(summaryDict, outfile, indent = 4, sort_keys=False ) 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 ed3ff3b6faa5..81368151905e 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 @@ -44,7 +44,7 @@ METStreamersGroup = ['RATE:SeededStreamers', 'BW:MET'] BCIDmonGroup = ['MON:BCID'] #Monitoring groups -SingleMuonMonGroup = ['singleMuonMon:shifter','idMon:t0'] +SingleMuonMonGroup = ['monShifter:singleMuonMon:shifter','monT0:idMon:t0'] def setupMenu(): diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/MET/METChainMonConfiguration.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/MET/METChainMonConfiguration.py deleted file mode 100644 index 62dd60c89d4c..000000000000 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/MET/METChainMonConfiguration.py +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration - -from TriggerMenuMT.HLTMonConfig.Mon.ChainDefInMon import ChainMonProp - -METChainMon = [] -METChainMon += [ - ChainMonProp(name="HLT_xe65_cell_L1XE50", monP1=True, monT0=True, monOffline=True), - ChainMonProp(name="HLT_xe100_mht_L1XE50", monP1=True, monT0=True, monOffline=True), - ChainMonProp(name="HLT_xe100_tcpufit_L1XE50", monP1=True, monT0=True, monOffline=True), - ChainMonProp(name="HLT_xe100_trkmht_L1XE50", monP1=True, monT0=True, monOffline=True), - ChainMonProp(name="HLT_xe100_pfsum_L1XE50", monP1=True, monT0=True, monOffline=True), - ChainMonProp(name="HLT_xe65_cell_xe110_tcpufit_L1XE50", monP1=True, monT0=True, monOffline=True) -] - - diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/MET/__init__.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/MET/__init__.py deleted file mode 100644 index 91873a08bc5a..000000000000 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/MET/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -#Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration - diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/Mon/ChainDefInMon.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/Mon/ChainDefInMon.py deleted file mode 100644 index 4c617fce76be..000000000000 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/Mon/ChainDefInMon.py +++ /dev/null @@ -1,15 +0,0 @@ - -# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration - -# from AthenaCommon.Logging import logging -# __log = logging.getLogger( __name__ ) -from TriggerMenuMT.HLTMenuConfig.Menu.ChainDefInMenu import namedtuple_with_defaults - - -ChainMonProp = namedtuple_with_defaults("ChainMonPro", - ['name', 'monP1', 'monT0', 'monOffline'], - {'name' : 'UNSET', - 'monP1' : False, - 'monT0' : False, - 'monOffline' : False}) - diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/Mon/ChainMon.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/Mon/ChainMon.py deleted file mode 100644 index b1a519db4103..000000000000 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/Mon/ChainMon.py +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration - -from TriggerMenuMT.HLTMonConfig.MET.METChainMonConfiguration import METChainMon - -chainsToMonitor = [] - -chainsToMonitor += METChainMon - diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/Mon/HLTMonitoringJSON.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/Mon/HLTMonitoringJSON.py deleted file mode 100644 index bfea52447a8c..000000000000 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/Mon/HLTMonitoringJSON.py +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration - -import json -from collections import OrderedDict as odict -from TrigConfigSvc.TrigConfigSvcCfg import getHLTMenuFileName, getHLTPrescalesSetFileName, getHLTMonitoringFileName -from AthenaCommon.Logging import logging -__log = logging.getLogger( __name__ ) - - -def generateDefaultMonitoringJSON(): - __log.info("Generating HLT Monitoring JSON in the rec-ex-common job") - from AthenaConfiguration.AllConfigFlags import ConfigFlags - - __log.debug("[HLTMonitoring::generateJSON] HLTMenuFileName = %s", getHLTMenuFileName(ConfigFlags) ) - __log.debug("[HLTMonitoring::generateJSON] HLTPrescalesSetFileName = %s", getHLTPrescalesSetFileName(ConfigFlags)) - __log.debug("[HLTMonitoring::generateJSON] HLTMonitoringFileName = %s", getHLTMonitoringFileName(ConfigFlags) ) - - return generateMonitoringJSON(ConfigFlags.Trigger.triggerMenuSetup, - getHLTMenuFileName(ConfigFlags), - getHLTMonitoringFileName(ConfigFlags)) - -def generateMonitoringJSON(menuName, menuFileName, fileName): - - from TriggerMenuMT.HLTMonConfig.Mon.ChainMon import chainsToMonitor - - #get the name of the outputfile - menuFile = open(menuFileName,'r') - menuDict = json.load(menuFile, object_pairs_hook = odict) - menuChains = menuDict['chains'].keys() - for ch in menuChains: - __log.debug("[HLTMonitoring::generateMonitoringJSON] Menu chains: %s", ch) - - #create the dictionary the will house the monitoring info - monDict=odict([ ("filetype", "hltmonitoring"), ("name", menuName), ("monchains", odict()) ]) - - # then you can iterate, say over the HLT menu: - for chain in chainsToMonitor: - __log.debug("[HLTMonitoring::generateMonitoringJSON] Processing Chain %s ...", chain) - chain_name=chain.name - - #check that the chain is present in the Menu - if chain_name not in menuChains: - __log.error( "Chain %s not present in the HLT Menu JSON %s", chain_name, menuFileName) - continue - __log.debug("[HLTMonitoring::generateMonitoringJSON] chain %s found in the HLT Menu dict..", chain_name) - - #and then the elements of that chain, e.g: - # ch['groups'] - monDict['monchains'][chain_name] = odict([ - ('monP1', chain.monP1), - ('monT0', chain.monT0), - ('monOffline', chain.monOffline) - ]) - - # then writing to a file is as simple as: - __log.info( "Writing HLT Monitoring JSON to %s", fileName ) - with open(fileName, 'w') as outfile: - json.dump(monDict, outfile, indent = 4, sort_keys=False ) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/__init__.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMonConfig/__init__.py deleted file mode 100644 index e69de29bb2d1..000000000000 -- GitLab From f168f4e3dd71c08d32597dc9db4b5885e93d642b Mon Sep 17 00:00:00 2001 From: Gianantonio Pezzullo <g.pezzullo@yale.edu> Date: Sun, 24 Jan 2021 23:20:50 +0100 Subject: [PATCH 17/30] added monGroups to a few chains for testing --- .../TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py | 6 +++--- .../python/HLTMenuConfig/Menu/Physics_pp_run3_v1.py | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py index 4c3019888e69..eaae92865885 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py @@ -14,7 +14,7 @@ import TriggerMenuMT.HLTMenuConfig.Menu.MC_pp_run3_v1 as mc_menu import TriggerMenuMT.HLTMenuConfig.Menu.PhysicsP1_pp_run3_v1 as p1_menu # this is not the best option, due to flake violation, this list has to be changed when some groups are removed -from TriggerMenuMT.HLTMenuConfig.Menu.Physics_pp_run3_v1 import PhysicsStream,SingleMuonGroup,MultiMuonGroup,SingleElectronGroup,MultiElectronGroup,SinglePhotonGroup,MultiPhotonGroup,SingleMETGroup,MultiMETGroup,SingleJetGroup,MultiJetGroup,SingleBjetGroup,SingleTauGroup,MultiTauGroup,BphysicsGroup,EgammaMuonGroup,MuonJetGroup,MuonMETGroup,EgammaTauGroup,MuonTauGroup,TauMETGroup,SingleMuonMonGroup +from TriggerMenuMT.HLTMenuConfig.Menu.Physics_pp_run3_v1 import PhysicsStream,SingleMuonGroup,MultiMuonGroup,SingleElectronGroup,MultiElectronGroup,SinglePhotonGroup,MultiPhotonGroup,SingleMETGroup,MultiMETGroup,SingleJetGroup,MultiJetGroup,SingleBjetGroup,SingleTauGroup,MultiTauGroup,BphysicsGroup,EgammaMuonGroup,MuonJetGroup,MuonMETGroup,EgammaTauGroup,MuonTauGroup,TauMETGroup,SingleMuonMonGroup,SingleElectronMonGroup def setupMenu(): @@ -48,7 +48,7 @@ def setupMenu(): # commented because it is conflict with dimuon noL1 serial chain # ChainProp(name='HLT_mu6noL1_L1MU6', l1SeedThresholds=['FSNOSEED'], groups=SingleMuonGroup), - ChainProp(name='HLT_mu6_msonly_L1MU6', groups=SingleMuonGroup), + ChainProp(name='HLT_mu6_msonly_L1MU6', groups=SingleMuonGroup, monGroups=SingleMuonMonGroup), ChainProp(name='HLT_2mu6_10invm70_L1MU6', groups=SingleMuonGroup), ChainProp(name='HLT_mu10_lateMu_L1LATE-MU10_XE50', l1SeedThresholds=['FSNOSEED'], groups=SingleMuonGroup), @@ -90,7 +90,7 @@ def setupMenu(): # ElectronChains---------- ChainProp(name='HLT_e3_etcut_L1EM3', groups=SingleElectronGroup), ChainProp(name='HLT_e5_etcut_L1EM3', groups=SingleElectronGroup), - ChainProp(name='HLT_e7_etcut_L1EM3', stream=[PhysicsStream, 'express'], groups=SingleElectronGroup), + ChainProp(name='HLT_e7_etcut_L1EM3', stream=[PhysicsStream, 'express'], groups=SingleElectronGroup, monGroups=SingleElectronMonGroup), ChainProp(name='HLT_2e3_etcut_L12EM3', stream=[PhysicsStream], groups=MultiElectronGroup), 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 81368151905e..f36f5afb0f02 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 @@ -44,7 +44,8 @@ METStreamersGroup = ['RATE:SeededStreamers', 'BW:MET'] BCIDmonGroup = ['MON:BCID'] #Monitoring groups -SingleMuonMonGroup = ['monShifter:singleMuonMon:shifter','monT0:idMon:t0'] +SingleMuonMonGroup = ['monShifter:singleMuonMon:shifter','monT0:idMon:t0'] +SingleElectronMonGroup = ['monShifter:singleElectronMon:shifter','monT0:idMon:t0'] def setupMenu(): -- GitLab From 2063f86a2410484ade8ca7372cbf1591cec0570a Mon Sep 17 00:00:00 2001 From: Gianantonio Pezzullo <g.pezzullo@yale.edu> Date: Sun, 24 Jan 2021 23:21:06 +0100 Subject: [PATCH 18/30] adde monGroups --- .../python/HLTMenuConfig/Menu/DictFromChainName.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/DictFromChainName.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/DictFromChainName.py index 17c7be9e9d06..136e8e2f1d8f 100755 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/DictFromChainName.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/DictFromChainName.py @@ -476,7 +476,7 @@ def dictFromChainName(chainInfo): ---- Loop over all chains (keys) in dictionary ---- ---- Then complete the dict with other info ---- Default input format will be namedtuple: - ChainProp: ['name', 'L1Thresholds'=[], 'stream', 'groups', 'merging'=[], 'topoStartFrom'=False], + ChainProp: ['name', 'L1Thresholds'=[], 'stream', 'groups', 'merging'=[], 'topoStartFrom'=False, 'monGroups' = []], but for nwo plain chain name is also supported """ @@ -492,6 +492,7 @@ def dictFromChainName(chainInfo): mergingOffset = -1 mergingOrder = [] topoStartFrom = '' + monGroups = [] elif 'ChainProp' in str(type(chainInfo)): #this is how we define chains in the menu - the normal behaviour of this function @@ -503,6 +504,8 @@ def dictFromChainName(chainInfo): mergingOffset = chainInfo.mergingOffset mergingOrder = chainInfo.mergingOrder topoStartFrom = chainInfo.topoStartFrom + monGroups = chainInfo.monGroups + else: assert True, "Format of chainInfo passed to genChainDict not known" @@ -521,6 +524,7 @@ def dictFromChainName(chainInfo): chainDict['mergingOffset'] = mergingOffset chainDict['mergingOrder'] = mergingOrder chainDict['topoStartFrom'] = topoStartFrom + chainDict['monGroups'] = monGroups chainDict['chainNameHash'] = string2hash(chainDict['chainName']) -- GitLab From a13dbcb813d0e651da94821b66436afd8b4115de Mon Sep 17 00:00:00 2001 From: Gianantonio Pezzullo <g.pezzullo@yale.edu> Date: Sun, 24 Jan 2021 23:21:25 +0100 Subject: [PATCH 19/30] updates --- .../HLTMenuConfig/Menu/HLTMonitoringJSON.py | 63 +++++++------------ 1 file changed, 24 insertions(+), 39 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py index fb4d5516ddd0..d73db271f473 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py @@ -10,25 +10,16 @@ __log = logging.getLogger( __name__ ) def generateDefaultMonitoringJSON(): __log.info("Generating HLT Monitoring JSON in the rec-ex-common job") from AthenaConfiguration.AllConfigFlags import ConfigFlags + from TriggerMenuMT.HLTMenuConfig.Menu.TriggerConfigHLT import TriggerConfigHLT __log.debug("[HLTMonitoring::generateJSON] HLTMenuFileName = %s" , getHLTMenuFileName(ConfigFlags) ) - __log.debug("[HLTMonitoring::generateJSON] HLTPrescalesSetFileName = %s", getHLTPrescalesSetFileName(ConfigFlags)) __log.debug("[HLTMonitoring::generateJSON] HLTMonitoringFileName = %s" , getHLTMonitoringFileName(ConfigFlags) ) return generateMonitoringJSON(ConfigFlags.Trigger.triggerMenuSetup, - getHLTMenuFileName(ConfigFlags), + TriggerConfigHLT.dictsList(), getHLTMonitoringFileName(ConfigFlags)) -def generateMonitoringJSON(menuName, menuFileName, fileName): - - # from TriggerMenuMT.HLTMonConfig.Mon.ChainMon import chainsToMonitor - - #get the name of the outputfile - menuFile = open(menuFileName,'r') - menuDict = json.load(menuFile, object_pairs_hook = odict) - menuChains = menuDict['chains'].keys() - for ch in menuChains: - __log.debug("[HLTMonitoring::generateMonitoringJSON] Menu chains: %s", ch) +def generateMonitoringJSON(menuName, chainDicts, fileName): #create the dictionary the will house the monitoring info monDict=odict([ ("filetype", "hltmonitoring"), ("name", menuName), ("monchains", odict()) ]) @@ -37,31 +28,25 @@ def generateMonitoringJSON(menuName, menuFileName, fileName): summaryDict=odict([ ("filetype", "hltmonitoringsummary"), ("name", menuName), ("signatures", odict())]) # then you can iterate, say over the HLT menu: - # for chain in chainsToMonitor: - for chain in menuDict['chains']: - __log.debug("[HLTMonitoring::generateMonitoringJSON] Processing Chain %s ...", chain) - chain_name=chain.name - - #check that the chain is present in the Menu - # if chain_name not in menuChains: - # __log.error( "Chain %s not present in the HLT Menu JSON %s", chain_name, menuFileName) - # continue - # __log.debug("[HLTMonitoring::generateMonitoringJSON] chain %s found in the HLT Menu dict..", chain_name) - - #and then the elements of that chain, e.g: - # ch['groups'] - + for chain in chainDicts: + chain_name = chain['chainName'] + __log.debug("[HLTMonitoring::generateMonitoringJSON] Processing Chain %s ...", chain_name) + + #if the chain is in a express stream, check presence of teh monGroup + if 'express' in chain['stream']: + if len(chain['monGroups']) == 0: + __log.error( "Chain %s is in the express stream and doesn't have any monGroup", chain_name) + #check if the chain needs to be monitored - if len(chain.monGroups) == 0: + if len(chain['monGroups']) == 0: continue - monDict['monchains'][chain_name] = odict([ - #('groups', chain.monGroups) - (chain.monGroups) - ]) + __log.debug("[HLTMonitoring::generateMonitoringJSON] Chain %s has monitoring groups!", chain_name) + + monDict['monchains'][chain_name] = chain['monGroups'] #add the signatures in the summary file - for entry in chain.monGroups: + for entry in chain['monGroups']: monGroup = entry.split(':')[0] monSignature = entry.split(':')[1] @@ -73,22 +58,22 @@ def generateMonitoringJSON(menuName, menuFileName, fileName): else: #the signature is already present, # now check the chain - if chain_name not in summaryDict['signatures']['chains']: - summaryDict['signatures']['chains'].append(chain_name) + if chain_name not in summaryDict['signatures'][monSignature]['chains']: + summaryDict['signatures'][monSignature]['chains'].append(chain_name) # now check if the monGroup is alrady present - if monGroup not in summaryDict['signatures']['monGroups']: - summaryDict['signatures']['monGroups'].append(monGroup) + if monGroup not in summaryDict['signatures'][monSignature]['monGroups']: + summaryDict['signatures'][monSignature]['monGroups'].append(monGroup) # then writing to a file is as simple as: - __log.info( "Writing HLT Monitoring JSON to %s", fileName ) + __log.info( "[HLTMonitoring::generateMonitoringJSON] Writing HLT Monitoring JSON to %s", fileName ) with open(fileName, 'w') as outfile: json.dump(monDict, outfile, indent = 4, sort_keys=False ) - # then writing the summary to a file is as simple as: + # # then writing the summary to a file is as simple as: summaryFileName = "Summary_"+fileName - __log.info( "Writing Summary of HLT Monitoring JSON to %s", summaryFileName) + __log.info( "[HLTMonitoring::generateMonitoringJSON] Writing Summary of HLT Monitoring JSON to %s", summaryFileName) with open(summaryFileName, 'w') as outfile: json.dump(summaryDict, outfile, indent = 4, sort_keys=False ) -- GitLab From 375b06e9e8ba49ef9f80287be94ccc33db8e9674 Mon Sep 17 00:00:00 2001 From: Gianantonio Pezzullo <g.pezzullo@yale.edu> Date: Sun, 24 Jan 2021 23:44:01 +0100 Subject: [PATCH 20/30] clean up --- Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt b/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt index 063e6038e091..4734d006bc40 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt +++ b/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt @@ -100,7 +100,6 @@ atlas_install_python_modules( python/*.py python/LVL1MenuConfig python/L1 python/HLTMenuConfig - python/HLTMonConfig POST_BUILD_CMD ${ATLAS_FLAKE8} --extend-extensions=ATL900,ATL901 ) atlas_install_scripts( scripts/generateLVL1MenuMT.py -- GitLab From a925fea46ed52263fe089bb955680749aeb87308 Mon Sep 17 00:00:00 2001 From: Gianantonio Pezzullo <g.pezzullo@yale.edu> Date: Mon, 25 Jan 2021 02:35:37 +0100 Subject: [PATCH 21/30] updated error message --- .../python/HLTMenuConfig/Menu/HLTMonitoringJSON.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py index d73db271f473..c87b0b1afd17 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py @@ -35,8 +35,8 @@ def generateMonitoringJSON(menuName, chainDicts, fileName): #if the chain is in a express stream, check presence of teh monGroup if 'express' in chain['stream']: if len(chain['monGroups']) == 0: - __log.error( "Chain %s is in the express stream and doesn't have any monGroup", chain_name) - + __log.error( "[HLTMonitoring::generateMonitoringJSON]Chain %s is in the express stream and doesn't have any monGroup", chain_name) + #check if the chain needs to be monitored if len(chain['monGroups']) == 0: continue -- GitLab From cfa86e6d54ae0bc6fb0a1db0f35bf7f3f0093cd1 Mon Sep 17 00:00:00 2001 From: Gianantonio Pezzullo <g.pezzullo@yale.edu> Date: Mon, 25 Jan 2021 02:37:29 +0100 Subject: [PATCH 22/30] added dummy monGroups to chains in the express stream Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Physics_pp_run3_v1.py --- .../HLTMenuConfig/Menu/PhysicsP1_pp_run3_v1.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/PhysicsP1_pp_run3_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/PhysicsP1_pp_run3_v1.py index bbebca9e3f5b..ca05563305a8 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/PhysicsP1_pp_run3_v1.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/PhysicsP1_pp_run3_v1.py @@ -13,7 +13,7 @@ from TriggerMenuMT.HLTMenuConfig.Menu.ChainDefInMenu import ChainProp import TriggerMenuMT.HLTMenuConfig.Menu.Physics_pp_run3_v1 as physics_menu -from TriggerMenuMT.HLTMenuConfig.Menu.Physics_pp_run3_v1 import PhysicsStream,SingleMuonGroup,EgammaStreamersGroup,TauStreamersGroup,JetStreamersGroup,METStreamersGroup,MinBiasGroup,ZeroBiasGroup +from TriggerMenuMT.HLTMenuConfig.Menu.Physics_pp_run3_v1 import PhysicsStream,SingleMuonGroup,EgammaStreamersGroup,TauStreamersGroup,JetStreamersGroup,METStreamersGroup,MinBiasGroup,ZeroBiasGroup,CosmicCaloMonGroup,NoAlgMonGroup def addP1Signatures(): @@ -65,7 +65,7 @@ def addP1Signatures(): TriggerFlags.StreamingSlice.signatures = TriggerFlags.StreamingSlice.signatures() + [ ChainProp(name='HLT_noalg_L1RD0_EMPTY', l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream], groups=MinBiasGroup), ChainProp(name='HLT_noalg_L1RD0_FILLED', l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream], groups=MinBiasGroup), - ChainProp(name='HLT_noalg_idmon_L1RD0_EMPTY', l1SeedThresholds=['FSNOSEED'], stream=['IDMonitoring','express'],groups=['RATE:Monitoring','BW:Detector']), + ChainProp(name='HLT_noalg_idmon_L1RD0_EMPTY', l1SeedThresholds=['FSNOSEED'], stream=['IDMonitoring','express'],groups=['RATE:Monitoring','BW:Detector'],monGroups=[NoAlgMonGroup]), ChainProp(name='HLT_noalg_idmon_L1RD0_FILLED', l1SeedThresholds=['FSNOSEED'], stream=['IDMonitoring'],groups=['RATE:Monitoring','BW:Detector']), ChainProp(name='HLT_noalg_idmon_L1RD0_UNPAIRED_ISO', l1SeedThresholds=['FSNOSEED'], stream=['IDMonitoring'],groups=['RATE:Monitoring','BW:Detector']), @@ -123,13 +123,13 @@ def addP1Signatures(): # Cosmic calo stream ChainProp(name='HLT_noalg_cosmiccalo_L1EM3_EMPTY', stream=['CosmicCalo'],groups=['RATE:Cosmic_Calo','BW:MinBias']), - ChainProp(name='HLT_noalg_cosmiccalo_L1RD1_EMPTY', l1SeedThresholds=['FSNOSEED'], stream=['CosmicCalo','express'],groups=['RATE:Calibration','BW:Detector']), + ChainProp(name='HLT_noalg_cosmiccalo_L1RD1_EMPTY', l1SeedThresholds=['FSNOSEED'], stream=['CosmicCalo','express'],groups=['RATE:Calibration','BW:Detector'],monGroups=[CosmicCaloMonGroup]), ChainProp(name='HLT_noalg_cosmiccalo_L1J30_31ETA49_EMPTY', stream=['CosmicCalo'],groups=['RATE:Cosmic_Calo','BW:Jet']), - ChainProp(name='HLT_noalg_cosmiccalo_L1J12_EMPTY', stream=['CosmicCalo','express'],groups=['RATE:Cosmic_Calo','BW:Jet']), - ChainProp(name='HLT_noalg_cosmiccalo_L1EM7_EMPTY', stream=['CosmicCalo','express'],groups=['RATE:Cosmic_Calo','BW:Jet']), - ChainProp(name='HLT_noalg_cosmiccalo_L1J30_EMPTY', stream=['CosmicCalo','express'],groups=['RATE:Cosmic_Calo','BW:Jet']), - ChainProp(name='HLT_noalg_cosmiccalo_L1J12_FIRSTEMPTY', stream=['CosmicCalo','express'],groups=['RATE:Cosmic_Calo','BW:Jet']), - ChainProp(name='HLT_noalg_cosmiccalo_L1J30_FIRSTEMPTY', stream=['CosmicCalo','express'],groups=['RATE:Cosmic_Calo','BW:Jet']), + ChainProp(name='HLT_noalg_cosmiccalo_L1J12_EMPTY', stream=['CosmicCalo','express'],groups=['RATE:Cosmic_Calo','BW:Jet'],monGroups=[CosmicCaloMonGroup]), + ChainProp(name='HLT_noalg_cosmiccalo_L1EM7_EMPTY', stream=['CosmicCalo','express'],groups=['RATE:Cosmic_Calo','BW:Jet'],monGroups=[CosmicCaloMonGroup]), + ChainProp(name='HLT_noalg_cosmiccalo_L1J30_EMPTY', stream=['CosmicCalo','express'],groups=['RATE:Cosmic_Calo','BW:Jet'],monGroups=[CosmicCaloMonGroup]), + ChainProp(name='HLT_noalg_cosmiccalo_L1J12_FIRSTEMPTY', stream=['CosmicCalo','express'],groups=['RATE:Cosmic_Calo','BW:Jet'],monGroups=[CosmicCaloMonGroup]), + ChainProp(name='HLT_noalg_cosmiccalo_L1J30_FIRSTEMPTY', stream=['CosmicCalo','express'],groups=['RATE:Cosmic_Calo','BW:Jet'],monGroups=[CosmicCaloMonGroup]), # ChainProp(name='HLT_noalg_cosmiccalo_L1RD1_BGRP10', l1SeedThresholds=['FSNOSEED'], stream=['CosmicCalo','express'],groups=['RATE:Calibration','BW:Detector']), # MBTS -- GitLab From 4937b677d41a11e81cb5cc0d2a8f4c36c97c1715 Mon Sep 17 00:00:00 2001 From: Gianantonio Pezzullo <g.pezzullo@yale.edu> Date: Mon, 25 Jan 2021 12:22:51 +0100 Subject: [PATCH 23/30] monGroups are defined explicitly in the ChainProp + added/modified monGroups for testing purposes --- .../python/HLTMenuConfig/Menu/LS2_v1.py | 8 ++++---- .../HLTMenuConfig/Menu/PhysicsP1_pp_run3_v1.py | 16 ++++++++-------- .../HLTMenuConfig/Menu/Physics_pp_run3_v1.py | 3 --- 3 files changed, 12 insertions(+), 15 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py index 435dae4ec120..4bbae4c19a11 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py @@ -14,7 +14,7 @@ import TriggerMenuMT.HLTMenuConfig.Menu.MC_pp_run3_v1 as mc_menu import TriggerMenuMT.HLTMenuConfig.Menu.PhysicsP1_pp_run3_v1 as p1_menu # this is not the best option, due to flake violation, this list has to be changed when some groups are removed -from TriggerMenuMT.HLTMenuConfig.Menu.Physics_pp_run3_v1 import PhysicsStream,SingleMuonGroup,MultiMuonGroup,SingleElectronGroup,MultiElectronGroup,SinglePhotonGroup,MultiPhotonGroup,SingleMETGroup,MultiMETGroup,SingleJetGroup,MultiJetGroup,SingleBjetGroup,SingleTauGroup,MultiTauGroup,BphysicsGroup,EgammaMuonGroup,MuonJetGroup,MuonMETGroup,EgammaJetGroup,EgammaMETGroup,EgammaTauGroup,MuonTauGroup,TauMETGroup,SingleMuonMonGroup,SingleElectronMonGroup +from TriggerMenuMT.HLTMenuConfig.Menu.Physics_pp_run3_v1 import PhysicsStream,SingleMuonGroup,MultiMuonGroup,SingleElectronGroup,MultiElectronGroup,SinglePhotonGroup,MultiPhotonGroup,SingleMETGroup,MultiMETGroup,SingleJetGroup,MultiJetGroup,SingleBjetGroup,SingleTauGroup,MultiTauGroup,BphysicsGroup,EgammaMuonGroup,MuonJetGroup,MuonMETGroup,EgammaJetGroup,EgammaMETGroup,EgammaTauGroup,MuonTauGroup,TauMETGroup def setupMenu(): @@ -49,7 +49,7 @@ def setupMenu(): # commented because it is conflict with dimuon noL1 serial chain # ChainProp(name='HLT_mu6noL1_L1MU6', l1SeedThresholds=['FSNOSEED'], groups=SingleMuonGroup), - ChainProp(name='HLT_mu6_msonly_L1MU6', groups=SingleMuonGroup, monGroups=SingleMuonMonGroup), + ChainProp(name='HLT_mu6_msonly_L1MU6', groups=SingleMuonGroup, monGroups=['muonMon:shifter','muonMon:val','idMon:t0']), ChainProp(name='HLT_2mu6_10invm70_L1MU6', groups=SingleMuonGroup), ChainProp(name='HLT_mu10_lateMu_L1LATE-MU10_XE50', l1SeedThresholds=['FSNOSEED'], groups=SingleMuonGroup), @@ -61,7 +61,7 @@ def setupMenu(): ChainProp(name='HLT_mu6_mu4_L12MU4', l1SeedThresholds=['MU4']*2, groups=MultiMuonGroup), # in planned primary as an option - ChainProp(name='HLT_mu24_ivarmedium_L1MU20', groups=SingleMuonGroup, monGroups=SingleMuonMonGroup), + ChainProp(name='HLT_mu24_ivarmedium_L1MU20', groups=SingleMuonGroup, monGroups=['muonMon:shifter','idMon:t0']), # Additional intermediate thresholds for validation comparisons to match with Physics_pp_v7_primaries menu ChainProp(name='HLT_mu24_mu10noL1_L1MU20', l1SeedThresholds=['MU20','FSNOSEED'], groups=MultiMuonGroup), @@ -91,7 +91,7 @@ def setupMenu(): # ElectronChains---------- ChainProp(name='HLT_e3_etcut_L1EM3', groups=SingleElectronGroup), ChainProp(name='HLT_e5_etcut_L1EM3', groups=SingleElectronGroup), - ChainProp(name='HLT_e7_etcut_L1EM3', stream=[PhysicsStream, 'express'], groups=SingleElectronGroup, monGroups=SingleElectronMonGroup), + ChainProp(name='HLT_e7_etcut_L1EM3', stream=[PhysicsStream, 'express'], groups=SingleElectronGroup, monGroups=['electronMon:shifter','idMon:t0']), ChainProp(name='HLT_2e3_etcut_L12EM3', stream=[PhysicsStream], groups=MultiElectronGroup), diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/PhysicsP1_pp_run3_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/PhysicsP1_pp_run3_v1.py index ca05563305a8..7a008eaa7c67 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/PhysicsP1_pp_run3_v1.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/PhysicsP1_pp_run3_v1.py @@ -13,7 +13,7 @@ from TriggerMenuMT.HLTMenuConfig.Menu.ChainDefInMenu import ChainProp import TriggerMenuMT.HLTMenuConfig.Menu.Physics_pp_run3_v1 as physics_menu -from TriggerMenuMT.HLTMenuConfig.Menu.Physics_pp_run3_v1 import PhysicsStream,SingleMuonGroup,EgammaStreamersGroup,TauStreamersGroup,JetStreamersGroup,METStreamersGroup,MinBiasGroup,ZeroBiasGroup,CosmicCaloMonGroup,NoAlgMonGroup +from TriggerMenuMT.HLTMenuConfig.Menu.Physics_pp_run3_v1 import PhysicsStream,SingleMuonGroup,EgammaStreamersGroup,TauStreamersGroup,JetStreamersGroup,METStreamersGroup,MinBiasGroup,ZeroBiasGroup def addP1Signatures(): @@ -65,7 +65,7 @@ def addP1Signatures(): TriggerFlags.StreamingSlice.signatures = TriggerFlags.StreamingSlice.signatures() + [ ChainProp(name='HLT_noalg_L1RD0_EMPTY', l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream], groups=MinBiasGroup), ChainProp(name='HLT_noalg_L1RD0_FILLED', l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream], groups=MinBiasGroup), - ChainProp(name='HLT_noalg_idmon_L1RD0_EMPTY', l1SeedThresholds=['FSNOSEED'], stream=['IDMonitoring','express'],groups=['RATE:Monitoring','BW:Detector'],monGroups=[NoAlgMonGroup]), + ChainProp(name='HLT_noalg_idmon_L1RD0_EMPTY', l1SeedThresholds=['FSNOSEED'], stream=['IDMonitoring','express'],groups=['RATE:Monitoring','BW:Detector'],monGroups=['noAlgMon:shifter']), ChainProp(name='HLT_noalg_idmon_L1RD0_FILLED', l1SeedThresholds=['FSNOSEED'], stream=['IDMonitoring'],groups=['RATE:Monitoring','BW:Detector']), ChainProp(name='HLT_noalg_idmon_L1RD0_UNPAIRED_ISO', l1SeedThresholds=['FSNOSEED'], stream=['IDMonitoring'],groups=['RATE:Monitoring','BW:Detector']), @@ -123,13 +123,13 @@ def addP1Signatures(): # Cosmic calo stream ChainProp(name='HLT_noalg_cosmiccalo_L1EM3_EMPTY', stream=['CosmicCalo'],groups=['RATE:Cosmic_Calo','BW:MinBias']), - ChainProp(name='HLT_noalg_cosmiccalo_L1RD1_EMPTY', l1SeedThresholds=['FSNOSEED'], stream=['CosmicCalo','express'],groups=['RATE:Calibration','BW:Detector'],monGroups=[CosmicCaloMonGroup]), + ChainProp(name='HLT_noalg_cosmiccalo_L1RD1_EMPTY', l1SeedThresholds=['FSNOSEED'], stream=['CosmicCalo','express'],groups=['RATE:Calibration','BW:Detector'],monGroups=['cosmicCaloMon:shifter']), ChainProp(name='HLT_noalg_cosmiccalo_L1J30_31ETA49_EMPTY', stream=['CosmicCalo'],groups=['RATE:Cosmic_Calo','BW:Jet']), - ChainProp(name='HLT_noalg_cosmiccalo_L1J12_EMPTY', stream=['CosmicCalo','express'],groups=['RATE:Cosmic_Calo','BW:Jet'],monGroups=[CosmicCaloMonGroup]), - ChainProp(name='HLT_noalg_cosmiccalo_L1EM7_EMPTY', stream=['CosmicCalo','express'],groups=['RATE:Cosmic_Calo','BW:Jet'],monGroups=[CosmicCaloMonGroup]), - ChainProp(name='HLT_noalg_cosmiccalo_L1J30_EMPTY', stream=['CosmicCalo','express'],groups=['RATE:Cosmic_Calo','BW:Jet'],monGroups=[CosmicCaloMonGroup]), - ChainProp(name='HLT_noalg_cosmiccalo_L1J12_FIRSTEMPTY', stream=['CosmicCalo','express'],groups=['RATE:Cosmic_Calo','BW:Jet'],monGroups=[CosmicCaloMonGroup]), - ChainProp(name='HLT_noalg_cosmiccalo_L1J30_FIRSTEMPTY', stream=['CosmicCalo','express'],groups=['RATE:Cosmic_Calo','BW:Jet'],monGroups=[CosmicCaloMonGroup]), + ChainProp(name='HLT_noalg_cosmiccalo_L1J12_EMPTY', stream=['CosmicCalo','express'],groups=['RATE:Cosmic_Calo','BW:Jet'],monGroups=['cosmicCaloMon:shifter','cosmicCaloMon:t0']), + ChainProp(name='HLT_noalg_cosmiccalo_L1EM7_EMPTY', stream=['CosmicCalo','express'],groups=['RATE:Cosmic_Calo','BW:Jet'],monGroups=['cosmicCaloMon:shifter']), + ChainProp(name='HLT_noalg_cosmiccalo_L1J30_EMPTY', stream=['CosmicCalo','express'],groups=['RATE:Cosmic_Calo','BW:Jet'],monGroups=['cosmicCaloMon:shifter']), + ChainProp(name='HLT_noalg_cosmiccalo_L1J12_FIRSTEMPTY', stream=['CosmicCalo','express'],groups=['RATE:Cosmic_Calo','BW:Jet'],monGroups=['cosmicCaloMon:shifter']), + ChainProp(name='HLT_noalg_cosmiccalo_L1J30_FIRSTEMPTY', stream=['CosmicCalo','express'],groups=['RATE:Cosmic_Calo','BW:Jet'],monGroups=['cosmicCaloMon:shifter']), # ChainProp(name='HLT_noalg_cosmiccalo_L1RD1_BGRP10', l1SeedThresholds=['FSNOSEED'], stream=['CosmicCalo','express'],groups=['RATE:Calibration','BW:Detector']), # MBTS 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 f36f5afb0f02..38d62ab4aeb6 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 @@ -43,9 +43,6 @@ JetStreamersGroup = ['RATE:SeededStreamers', 'BW:Jet'] METStreamersGroup = ['RATE:SeededStreamers', 'BW:MET'] BCIDmonGroup = ['MON:BCID'] -#Monitoring groups -SingleMuonMonGroup = ['monShifter:singleMuonMon:shifter','monT0:idMon:t0'] -SingleElectronMonGroup = ['monShifter:singleElectronMon:shifter','monT0:idMon:t0'] def setupMenu(): -- GitLab From a3f0af308518902c6bc7cf8e465653f38cc11058 Mon Sep 17 00:00:00 2001 From: Gianantonio Pezzullo <g.pezzullo@yale.edu> Date: Mon, 25 Jan 2021 12:23:43 +0100 Subject: [PATCH 24/30] updated the structure of the SummaryHLTMon JSON file and removed the production of the other HLTMonitoring JSON file --- .../HLTMenuConfig/Menu/HLTMonitoringJSON.py | 33 +++++-------------- 1 file changed, 8 insertions(+), 25 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py index c87b0b1afd17..43ca0dcfe3d6 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py @@ -2,7 +2,7 @@ import json from collections import OrderedDict as odict -from TrigConfigSvc.TrigConfigSvcCfg import getHLTMenuFileName, getHLTPrescalesSetFileName, getHLTMonitoringFileName +from TrigConfigSvc.TrigConfigSvcCfg import getHLTMenuFileName, getHLTMonitoringFileName from AthenaCommon.Logging import logging __log = logging.getLogger( __name__ ) @@ -21,9 +21,6 @@ def generateDefaultMonitoringJSON(): def generateMonitoringJSON(menuName, chainDicts, fileName): - #create the dictionary the will house the monitoring info - monDict=odict([ ("filetype", "hltmonitoring"), ("name", menuName), ("monchains", odict()) ]) - #create a summary file summaryDict=odict([ ("filetype", "hltmonitoringsummary"), ("name", menuName), ("signatures", odict())]) @@ -43,34 +40,20 @@ def generateMonitoringJSON(menuName, chainDicts, fileName): __log.debug("[HLTMonitoring::generateMonitoringJSON] Chain %s has monitoring groups!", chain_name) - monDict['monchains'][chain_name] = chain['monGroups'] - #add the signatures in the summary file for entry in chain['monGroups']: - monGroup = entry.split(':')[0] - monSignature = entry.split(':')[1] + monSignature = entry.split(':')[0] + monGroup = entry.split(':')[1] if monSignature not in summaryDict['signatures']: - summaryDict['signatures'][monSignature] = odict([ - ('chains', [chain_name] ), - ('monGroups', [monGroup]) - ]) + summaryDict['signatures'][monSignature] = odict([(chain_name, [monGroup])]) else: #the signature is already present, # now check the chain - if chain_name not in summaryDict['signatures'][monSignature]['chains']: - summaryDict['signatures'][monSignature]['chains'].append(chain_name) - - # now check if the monGroup is alrady present - if monGroup not in summaryDict['signatures'][monSignature]['monGroups']: - summaryDict['signatures'][monSignature]['monGroups'].append(monGroup) - - - # then writing to a file is as simple as: - __log.info( "[HLTMonitoring::generateMonitoringJSON] Writing HLT Monitoring JSON to %s", fileName ) - with open(fileName, 'w') as outfile: - json.dump(monDict, outfile, indent = 4, sort_keys=False ) - + if chain_name not in summaryDict['signatures'][monSignature]: + summaryDict['signatures'][monSignature].update(odict([(chain_name, [monGroup])])) + else: + summaryDict['signatures'][monSignature][chain_name].append(monGroup) # # then writing the summary to a file is as simple as: summaryFileName = "Summary_"+fileName -- GitLab From e97ef6522d5546e996cfad6d994a49aaf5c8e2ac Mon Sep 17 00:00:00 2001 From: Gianantonio Pezzullo <g.pezzullo@yale.edu> Date: Mon, 25 Jan 2021 13:50:12 +0100 Subject: [PATCH 25/30] removed extra new line --- .../python/HLTMenuConfig/Menu/Physics_pp_run3_v1.py | 1 - 1 file changed, 1 deletion(-) 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 38d62ab4aeb6..473ef4d9bb7b 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 @@ -43,7 +43,6 @@ JetStreamersGroup = ['RATE:SeededStreamers', 'BW:Jet'] METStreamersGroup = ['RATE:SeededStreamers', 'BW:MET'] BCIDmonGroup = ['MON:BCID'] - def setupMenu(): from TriggerJobOpts.TriggerFlags import TriggerFlags -- GitLab From 3365f78f6ae0a51a2148c706fa58981cbdb6804f Mon Sep 17 00:00:00 2001 From: Gianantonio Pezzullo <g.pezzullo@yale.edu> Date: Mon, 25 Jan 2021 13:50:26 +0100 Subject: [PATCH 26/30] clean up --- .../TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py index 4bbae4c19a11..8a60c28f39a9 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py @@ -91,7 +91,7 @@ def setupMenu(): # ElectronChains---------- ChainProp(name='HLT_e3_etcut_L1EM3', groups=SingleElectronGroup), ChainProp(name='HLT_e5_etcut_L1EM3', groups=SingleElectronGroup), - ChainProp(name='HLT_e7_etcut_L1EM3', stream=[PhysicsStream, 'express'], groups=SingleElectronGroup, monGroups=['electronMon:shifter','idMon:t0']), + ChainProp(name='HLT_e7_etcut_L1EM3', stream=[PhysicsStream, 'express'], groups=SingleElectronGroup, monGroups=['electronMon:shifter']), ChainProp(name='HLT_2e3_etcut_L12EM3', stream=[PhysicsStream], groups=MultiElectronGroup), -- GitLab From 8b9901acdbdaa1413109f7fc86d68e770025818f Mon Sep 17 00:00:00 2001 From: Gianantonio Pezzullo <g.pezzullo@yale.edu> Date: Tue, 26 Jan 2021 14:45:39 +0100 Subject: [PATCH 27/30] fixed a typo --- Trigger/TriggerCommon/TriggerMenuMT/share/full_menu_cf.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/share/full_menu_cf.py b/Trigger/TriggerCommon/TriggerMenuMT/share/full_menu_cf.py index 3b8b7e90ee29..9f825f0f4192 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/share/full_menu_cf.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/share/full_menu_cf.py @@ -307,8 +307,8 @@ generateJSON() from TriggerMenuMT.HLTMenuConfig.Menu.HLTPrescaleJSON import generateJSON as generatePrescaleJSON generatePrescaleJSON() -from TriggerMenuMT.HLTMenuConfig.Menu.HLTMonitoringJSON import generateJSON as generateMonitoringJSON -generateMonitoringJSON() +from TriggerMenuMT.HLTMenuConfig.Menu.HLTMonitoringJSON import generateDefaultMonitoringJSON +generateDefaultMonitoringJSON() from AthenaCommon.AlgSequence import dumpSequence dumpSequence(topSequence) -- GitLab From 33360e130f27aa7571a06c7b7106741dc7836ff7 Mon Sep 17 00:00:00 2001 From: Gianantonio Pezzullo <g.pezzullo@yale.edu> Date: Tue, 26 Jan 2021 22:56:18 +0100 Subject: [PATCH 28/30] added monGroup to chains in the express stream of Cosmi_run3_v1 --- .../python/HLTMenuConfig/Menu/Cosmic_run3_v1.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Cosmic_run3_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Cosmic_run3_v1.py index d2c239f47d9c..805f59b0291f 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Cosmic_run3_v1.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Cosmic_run3_v1.py @@ -39,11 +39,11 @@ def setupMenu(): TriggerFlags.CosmicSlice.signatures = [] TriggerFlags.StreamingSlice.signatures = [ - ChainProp(name='HLT_noalg_idcosmic_L1TRT_EMPTY', l1SeedThresholds=['FSNOSEED'], stream=['IDCosmic','express'],groups=['RATE:SeededStreamers','BW:Other']), + ChainProp(name='HLT_noalg_idcosmic_L1TRT_EMPTY', l1SeedThresholds=['FSNOSEED'], stream=['IDCosmic','express'],groups=['RATE:SeededStreamers','BW:Other'],monGroups=['noAlgMon:shifter']), ChainProp(name='HLT_noalg_idcosmic_L1TRT_FILLED', l1SeedThresholds=['FSNOSEED'], stream=['IDCosmic'],groups=['RATE:SeededStreamers','BW:Other']), - ChainProp(name='HLT_noalg_cosmicmuons_L1MU4_EMPTY', stream=['CosmicMuons','express'],groups=['RATE:Cosmic_Muon','BW:Muon']), - ChainProp(name='HLT_noalg_cosmiccalo_L1MU11_EMPTY', stream=['CosmicMuons','express'],groups=['RATE:Cosmic_Muon','BW:Muon']), + ChainProp(name='HLT_noalg_cosmicmuons_L1MU4_EMPTY', stream=['CosmicMuons','express'],groups=['RATE:Cosmic_Muon','BW:Muon'],monGroups=['noAlgMon:shifter']), + ChainProp(name='HLT_noalg_cosmiccalo_L1MU11_EMPTY', stream=['CosmicMuons','express'],groups=['RATE:Cosmic_Muon','BW:Muon'],monGroups=['noAlgMon:shifter']), ] -- GitLab From 20cead89de95c805cb362e8dbb8ce29492393318 Mon Sep 17 00:00:00 2001 From: Gianantonio Pezzullo <g.pezzullo@yale.edu> Date: Wed, 27 Jan 2021 14:48:54 +0100 Subject: [PATCH 29/30] clean up --- .../python/HLTMenuConfig/Menu/Cosmic_run3_v1.py | 6 +++--- .../HLTMenuConfig/Menu/PhysicsP1_pp_run3_v1.py | 16 ++++++++-------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Cosmic_run3_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Cosmic_run3_v1.py index 805f59b0291f..d2c239f47d9c 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Cosmic_run3_v1.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Cosmic_run3_v1.py @@ -39,11 +39,11 @@ def setupMenu(): TriggerFlags.CosmicSlice.signatures = [] TriggerFlags.StreamingSlice.signatures = [ - ChainProp(name='HLT_noalg_idcosmic_L1TRT_EMPTY', l1SeedThresholds=['FSNOSEED'], stream=['IDCosmic','express'],groups=['RATE:SeededStreamers','BW:Other'],monGroups=['noAlgMon:shifter']), + ChainProp(name='HLT_noalg_idcosmic_L1TRT_EMPTY', l1SeedThresholds=['FSNOSEED'], stream=['IDCosmic','express'],groups=['RATE:SeededStreamers','BW:Other']), ChainProp(name='HLT_noalg_idcosmic_L1TRT_FILLED', l1SeedThresholds=['FSNOSEED'], stream=['IDCosmic'],groups=['RATE:SeededStreamers','BW:Other']), - ChainProp(name='HLT_noalg_cosmicmuons_L1MU4_EMPTY', stream=['CosmicMuons','express'],groups=['RATE:Cosmic_Muon','BW:Muon'],monGroups=['noAlgMon:shifter']), - ChainProp(name='HLT_noalg_cosmiccalo_L1MU11_EMPTY', stream=['CosmicMuons','express'],groups=['RATE:Cosmic_Muon','BW:Muon'],monGroups=['noAlgMon:shifter']), + ChainProp(name='HLT_noalg_cosmicmuons_L1MU4_EMPTY', stream=['CosmicMuons','express'],groups=['RATE:Cosmic_Muon','BW:Muon']), + ChainProp(name='HLT_noalg_cosmiccalo_L1MU11_EMPTY', stream=['CosmicMuons','express'],groups=['RATE:Cosmic_Muon','BW:Muon']), ] diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/PhysicsP1_pp_run3_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/PhysicsP1_pp_run3_v1.py index c0103cced764..380f2d858b26 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/PhysicsP1_pp_run3_v1.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/PhysicsP1_pp_run3_v1.py @@ -66,7 +66,7 @@ def addP1Signatures(): TriggerFlags.StreamingSlice.signatures = TriggerFlags.StreamingSlice.signatures() + [ ChainProp(name='HLT_noalg_L1RD0_EMPTY', l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream], groups=MinBiasGroup), ChainProp(name='HLT_noalg_L1RD0_FILLED', l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream], groups=MinBiasGroup), - ChainProp(name='HLT_noalg_idmon_L1RD0_EMPTY', l1SeedThresholds=['FSNOSEED'], stream=['IDMonitoring','express'],groups=['RATE:Monitoring','BW:Detector'],monGroups=['noAlgMon:shifter']), + ChainProp(name='HLT_noalg_idmon_L1RD0_EMPTY', l1SeedThresholds=['FSNOSEED'], stream=['IDMonitoring','express'],groups=['RATE:Monitoring','BW:Detector']), ChainProp(name='HLT_noalg_idmon_L1RD0_FILLED', l1SeedThresholds=['FSNOSEED'], stream=['IDMonitoring'],groups=['RATE:Monitoring','BW:Detector']), ChainProp(name='HLT_noalg_idmon_L1RD0_UNPAIRED_ISO', l1SeedThresholds=['FSNOSEED'], stream=['IDMonitoring'],groups=['RATE:Monitoring','BW:Detector']), @@ -124,14 +124,14 @@ def addP1Signatures(): # Cosmic calo stream ChainProp(name='HLT_noalg_cosmiccalo_L1EM3_EMPTY', stream=['CosmicCalo'],groups=['RATE:Cosmic_Calo','BW:MinBias']), - ChainProp(name='HLT_noalg_cosmiccalo_L1RD1_EMPTY', l1SeedThresholds=['FSNOSEED'], stream=['CosmicCalo','express'],groups=['RATE:Calibration','BW:Detector'],monGroups=['cosmicCaloMon:shifter']), + ChainProp(name='HLT_noalg_cosmiccalo_L1RD1_EMPTY', l1SeedThresholds=['FSNOSEED'], stream=['CosmicCalo','express'],groups=['RATE:Calibration','BW:Detector']), ChainProp(name='HLT_noalg_cosmiccalo_L1J30_31ETA49_EMPTY', stream=['CosmicCalo'],groups=['RATE:Cosmic_Calo','BW:Jet']), - ChainProp(name='HLT_noalg_cosmiccalo_L1J12_EMPTY', stream=['CosmicCalo','express'],groups=['RATE:Cosmic_Calo','BW:Jet'],monGroups=['cosmicCaloMon:shifter','cosmicCaloMon:t0']), - ChainProp(name='HLT_noalg_cosmiccalo_L1EM7_EMPTY', stream=['CosmicCalo','express'],groups=['RATE:Cosmic_Calo','BW:Jet'],monGroups=['cosmicCaloMon:shifter']), - ChainProp(name='HLT_noalg_cosmiccalo_L1J30_EMPTY', stream=['CosmicCalo','express'],groups=['RATE:Cosmic_Calo','BW:Jet'],monGroups=['cosmicCaloMon:shifter']), - ChainProp(name='HLT_noalg_cosmiccalo_L1J12_FIRSTEMPTY', stream=['CosmicCalo','express'],groups=['RATE:Cosmic_Calo','BW:Jet'],monGroups=['cosmicCaloMon:shifter']), - ChainProp(name='HLT_noalg_cosmiccalo_L1J30_FIRSTEMPTY', stream=['CosmicCalo','express'],groups=['RATE:Cosmic_Calo','BW:Jet'],monGroups=['cosmicCaloMon:shifter']), - ChainProp(name='HLT_noalg_cosmiccalo_L1RD0_FIRSTEMPTY', l1SeedThresholds=['FSNOSEED'], stream=['CosmicCalo'], groups=['RATE:Calibration','BW:Detector'],monGroups=['cosmicCaloMon:shifter']), + ChainProp(name='HLT_noalg_cosmiccalo_L1J12_EMPTY', stream=['CosmicCalo','express'],groups=['RATE:Cosmic_Calo','BW:Jet']), + ChainProp(name='HLT_noalg_cosmiccalo_L1EM7_EMPTY', stream=['CosmicCalo','express'],groups=['RATE:Cosmic_Calo','BW:Jet']), + ChainProp(name='HLT_noalg_cosmiccalo_L1J30_EMPTY', stream=['CosmicCalo','express'],groups=['RATE:Cosmic_Calo','BW:Jet']), + ChainProp(name='HLT_noalg_cosmiccalo_L1J12_FIRSTEMPTY', stream=['CosmicCalo','express'],groups=['RATE:Cosmic_Calo','BW:Jet']), + ChainProp(name='HLT_noalg_cosmiccalo_L1J30_FIRSTEMPTY', stream=['CosmicCalo','express'],groups=['RATE:Cosmic_Calo','BW:Jet']), + ChainProp(name='HLT_noalg_cosmiccalo_L1RD0_FIRSTEMPTY', l1SeedThresholds=['FSNOSEED'], stream=['CosmicCalo'], groups=['RATE:Calibration','BW:Detector']), # ChainProp(name='HLT_noalg_cosmiccalo_L1RD1_BGRP10', l1SeedThresholds=['FSNOSEED'], stream=['CosmicCalo','express'],groups=['RATE:Calibration','BW:Detector']), -- GitLab From c87e03b698db1f19471fbac7b1219ec190c02de8 Mon Sep 17 00:00:00 2001 From: Gianantonio Pezzullo <g.pezzullo@yale.edu> Date: Wed, 27 Jan 2021 14:49:47 +0100 Subject: [PATCH 30/30] changed error to warning report in the HLTMonitoringJSON script when a chain in the express stream has no monGroups defined --- .../python/HLTMenuConfig/Menu/HLTMonitoringJSON.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py index 43ca0dcfe3d6..dc943808d5e4 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMonitoringJSON.py @@ -32,7 +32,7 @@ def generateMonitoringJSON(menuName, chainDicts, fileName): #if the chain is in a express stream, check presence of teh monGroup if 'express' in chain['stream']: if len(chain['monGroups']) == 0: - __log.error( "[HLTMonitoring::generateMonitoringJSON]Chain %s is in the express stream and doesn't have any monGroup", chain_name) + __log.warning( "[HLTMonitoring::generateMonitoringJSON]Chain %s is in the express stream and doesn't have any monGroup", chain_name) #check if the chain needs to be monitored if len(chain['monGroups']) == 0: -- GitLab