diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerFlags.py b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerFlags.py index ca63470a198d8176bf7bc672032c95f35944f1de..42d8d9f385070d9e0ef9b718aad6e26f11debc51 100644 --- a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerFlags.py +++ b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerFlags.py @@ -1068,6 +1068,7 @@ class triggerMenuSetup(JobProperty): 'PhysicsP1_pp_run3_v1', # PhysicsP1_pp_run3 for AthenaMT 'Physics_pp_run3_v1', # Physics_pp_run3 for AthenaMT 'MC_pp_v8', 'Physics_pp_v8', 'MC_pp_v8_no_prescale', 'MC_pp_v8_tight_mc_prescale', 'MC_pp_v8_tightperf_mc_prescale', 'MC_pp_v8_loose_mc_prescale','Physics_pp_v8_tight_physics_prescale', + 'Cosmic_pp_run3_v1', ] _default_menu='Physics_pp_v7_primaries' diff --git a/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt b/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt index 29db99e46e3df114f0f1812a9b5a7cfda4f86823..39c79f22ce163232ed32bb87f1a045afc32a99a8 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt +++ b/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt @@ -132,6 +132,7 @@ atlas_add_test( generateMenuMT SCRIPT bash test_HLTmenu.sh #---------------------------------- # List of menus to be created: atlas_build_lvl1_trigger_menu( LS2_v1 ) +atlas_build_lvl1_trigger_menu( Cosmic_pp_run3_v1 ) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Cosmic_pp_run3_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Cosmic_pp_run3_v1.py new file mode 100644 index 0000000000000000000000000000000000000000..9dc434ed182c31c8618d0841abd7301800f9fe79 --- /dev/null +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Cosmic_pp_run3_v1.py @@ -0,0 +1,89 @@ +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + +#------------------------------------------------------------------------# +# LS2_v1.py menu for the long shutdown development +#------------------------------------------------------------------------# + +# This defines the input format of the chain and it's properties with the defaults set +# always required are: name, stream and groups +#['name', 'L1chainParts'=[], 'stream', 'groups', 'merging'=[], 'topoStartFrom'=False], +from TriggerMenuMT.HLTMenuConfig.Menu.ChainDefInMenu import ChainProp + +def setupMenu(): + + from TriggerJobOpts.TriggerFlags import TriggerFlags + from AthenaCommon.Logging import logging + log = logging.getLogger( 'TriggerMenuMT.HLTMenuConfig.Menu.Cosmic_pp_run3_v1.py' ) + + TriggerFlags.Slices_all_setOff() + + TriggerFlags.TestSlice.signatures = [] + + TriggerFlags.MuonSlice.signatures = [ + ChainProp(name='HLT_mu4_cosmic_L1MU4_EMPTY', l1SeedThresholds=['MU4'], stream=['CosmicMuons'], groups=['RATE:Cosmic_Muon','BW:Muon']), + ChainProp(name='HLT_mu4_msonly_cosmic_L1MU4_EMPTY', l1SeedThresholds=['MU4'], stream=['CosmicMuons'], groups=['RATE:Cosmic_Muon','BW:Muon']), + ] + + TriggerFlags.EgammaSlice.signatures = [ + ChainProp(name='HLT_g3_etcut_LArPEB_L1EM3',stream=['LArCells'], groups=['RATE:SinglePhoton', 'BW:Egamma']) + ] + + TriggerFlags.METSlice.signatures = [] + TriggerFlags.JetSlice.signatures = [] + TriggerFlags.BjetSlice.signatures = [] + TriggerFlags.TauSlice.signatures = [] + TriggerFlags.BphysicsSlice.signatures = [] + TriggerFlags.CombinedSlice.signatures = [] + TriggerFlags.HeavyIonSlice.signatures = [] + TriggerFlags.BeamspotSlice.signatures = [] + TriggerFlags.MinBiasSlice.signatures = [] + TriggerFlags.CalibSlice.signatures = [] + TriggerFlags.CosmicSlice.signatures = [] + TriggerFlags.StreamingSlice.signatures = [] + TriggerFlags.MonitorSlice.signatures = [] + + # Random Seeded EB chains which select at the HLT based on L1 TBP bits + TriggerFlags.EnhancedBiasSlice.signatures = [ ] + + signatureList=[] + for prop in dir(TriggerFlags): + if prop[-5:]=='Slice': + sliceName=prop + slice=getattr(TriggerFlags,sliceName) + if slice.signatures(): + signatureList.extend(slice.signatures()) + else: + log.debug('SKIPPING '+str(sliceName)) + mySigList=[] + for allInfo in signatureList: + mySigList.append(allInfo[0]) + mydict={} + for chain in mySigList: + mydict[chain]=[-1,0,0] + mydict.update(Prescales.HLTPrescales_cosmics) + from copy import deepcopy + Prescales.HLTPrescales_cosmics = deepcopy(mydict) + + +class Prescales(object): + # Item name | Prescale + #---------------------------------------------------------- + L1Prescales = {} + + # Signature name | [ HLTprescale, HLTpass-through, rerun] + # - Prescale values should be a positive integer (default=1) + # - If the current pass_through value is non-zero, + # the value given here will be used as pass_through rate + # Assuming that pass through chains are configured so + # in the slice files and won't change. Also prescale + # and pass_through will not be used together. + # - If only the first value is specified, + # the default value of pass-through (=0) will be used + #---------------------------------------------------------- + HLTPrescales = { + } + + L1Prescales_cosmics = {} + HLTPrescales_cosmics = {} + chain_list=[] + diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuPrescaleConfig.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuPrescaleConfig.py index 73925e149f59590a4a52f9fec1527ac5f7c61d20..1545b08dc7ee026848032c9c0dce851f05b0b2c4 100755 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuPrescaleConfig.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuPrescaleConfig.py @@ -79,7 +79,16 @@ def MenuPrescaleConfig(triggerConfigHLT): L1Prescales = Prescales.L1Prescales HLTPrescales = Prescales.HLTPrescales - + elif menu_name.startswith('Cosmic_pp_run3_v1'): + log.info('Cosmic_pp_run3_v1 menu setup') + from TriggerMenuMT.HLTMenuConfig.Menu.Cosmic_pp_run3_v1 import setupMenu, Prescales + setupMenu() + if 'cosmics_prescale' in menu_name: + L1Prescales = Prescales.L1Prescales_cosmics + HLTPrescales = Prescales.HLTPrescales_cosmics + else: + L1Prescales = Prescales.L1Prescales + HLTPrescales = Prescales.HLTPrescales else: log.fatal ('Menu with name %s is not known in this version of TriggerMenu! ', menu_name) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py index 88d2ac904becda0e7e4530bc7eb3683f85888f7a..97a8d9e147dcc91fc0e70db887aea351d22180be 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py @@ -183,7 +183,7 @@ MuonChainParts = { 'IDinfo' : [], 'isoInfo' : ['ivar','ivarmedium'], 'invMassInfo' : ['10invm70'], - 'addInfo' : ['1step','idperf','3layersEC'], + 'addInfo' : ['1step','idperf','3layersEC','cosmic'], 'topo' : AllowedTopos_mu, 'flavour' : [], } diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/StreamInfo.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/StreamInfo.py index 9621de71e0f3f19c7fe8baf96b8bb564dd1b3a2d..1e6033c47be3d94bd2701ddf86cb769df74a38dc 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/StreamInfo.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/StreamInfo.py @@ -28,13 +28,14 @@ class StreamInfo(UserList): _all_streams = [ # PHYSICS STREAMS StreamInfo('Main', 'physics', True, True), + StreamInfo('CosmicMuons','physics',True,True), # EXPRESS STREAM StreamInfo('express', 'express', True, True), # CALIBRATION STREAMS StreamInfo('BeamSpot', 'calibration', True, False), StreamInfo('LArCells', 'calibration', False, False), StreamInfo('RPCSecondaryReadout', 'calibration', False, False), - StreamInfo('CostMonitoring','calibration', False, False) + StreamInfo('CostMonitoring','calibration', False, False), ] diff --git a/Trigger/TriggerCommon/TriggerMenuMT/scripts/generateL1MenuRun3.py b/Trigger/TriggerCommon/TriggerMenuMT/scripts/generateL1MenuRun3.py index 4d0ac78aef4fd690c18132a6807ce64b30cfab07..c615d4615fe6e0ce0b6abde5007dbfec85de3733 100755 --- a/Trigger/TriggerCommon/TriggerMenuMT/scripts/generateL1MenuRun3.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/scripts/generateL1MenuRun3.py @@ -58,6 +58,7 @@ def main(): ("mc" , "MC_pp_v8" ), ("mcp" , ["MC_pp_v8_no_prescale", "MC_pp_v8_loose_mc_prescale", "MC_pp_v8_tight_mc_prescale"]), ("ls" , "LS2_v1" ), + ("cosmic", "Cosmic_pp_run3_v1"), ("hiphy4","Physics_HI_v4"), ("hiphy", "Physics_HI_v4"), ("himc4", "MC_HI_v4" ), diff --git a/Trigger/TriggerCommon/TriggerMenuMT/scripts/generateLVL1MenuMT.py b/Trigger/TriggerCommon/TriggerMenuMT/scripts/generateLVL1MenuMT.py index 262b5fb3425d1a8444ad689841d99133fc93b0ed..a4ee61d34aa0aa0b3f8653c32a1897b9728dfc72 100755 --- a/Trigger/TriggerCommon/TriggerMenuMT/scripts/generateLVL1MenuMT.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/scripts/generateLVL1MenuMT.py @@ -85,7 +85,7 @@ def findRequiredItemsFromXML(): from TriggerJobOpts.TriggerFlags import TriggerFlags as TF from TriggerMenu.l1.Lvl1Flags import Lvl1Flags - menus = ['Physics_pp_v7','MC_pp_v7','LS2_v1'] + menus = ['Physics_pp_v7','MC_pp_v7','LS2_v1','Cosmic_pp_run3_v1'] from TriggerMenu.l1.XMLReader import L1MenuXMLReader @@ -148,6 +148,7 @@ def main(): if len(sys.argv)==1: generateL1Menu(menu="LS2_v1" ) + generateL1Menu(menu="Cosmic_pp_run3_v1") return 0 @@ -199,6 +200,11 @@ def main(): menu.printCabling() return 0 + if sys.argv[1].lower().startswith("cosmic"): + menu = generateL1Menu(menu="Cosmic_pp_run3_v1") + menu.printCabling() + return 0 + if sys.argv[1].lower().startswith("dc14"): generateL1Menu(menu="DC14",useTopoMenu="Physics_pp_v6") return 0