diff --git a/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt b/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt index 8a58635cbda9a7c2276e1f1df9674a4451f4c867..7a03fb29a6723ae7381504434209e08b7f79721b 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt +++ b/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt @@ -3,11 +3,6 @@ # Declare the package name: atlas_subdir( TriggerMenuMT ) -atlas_add_test( flake8 - SCRIPT flake8 --select=ATL,F,E7,E9,W6,E101 --enable-extension=ATL900,ATL901,ATL902 - ${CMAKE_CURRENT_SOURCE_DIR}/python ${CMAKE_CURRENT_SOURCE_DIR}/scripts - POST_EXEC_SCRIPT nopost.sh ) - #---------------------------------- # Function to build trigger menu: function( atlas_build_lvl1_trigger_menu menu ) @@ -99,21 +94,25 @@ atlas_install_python_modules( python/*.py python/LVL1MenuConfig python/L1 python/HLTMenuConfig - POST_BUILD_CMD ${ATLAS_FLAKE8}) + POST_BUILD_CMD ${ATLAS_FLAKE8} --extend-extensions=ATL900,ATL901 ) -atlas_install_scripts( scripts/generateMenuMT.py - scripts/generateL1MenuMT.sh - scripts/generateLVL1MenuMT.py +atlas_install_scripts( scripts/generateLVL1MenuMT.py scripts/generateL1TopoMenuMT.py - scripts/test_HLTmenu.sh scripts/generateL1MenuRun3.py scripts/trigCompareOldandNewL1Menus.py - scripts/trigL1MenuMigrationCheck.sh scripts/verify_menu_config.py scripts/test_full_menu_cf.py - scripts/generateBunchGroupSetFromOldKey.py ) + scripts/generateBunchGroupSetFromOldKey.py + POST_BUILD_CMD ${ATLAS_FLAKE8} ) + +# Shell scripts without flake8 checking: +atlas_install_scripts( scripts/generateL1MenuMT.sh + scripts/trigL1MenuMigrationCheck.sh + scripts/test_HLTmenu.sh ) + +atlas_install_joboptions( share/*.py + POST_BUILD_CMD ${ATLAS_FLAKE8} --extend-ignore=F821 ) -atlas_install_joboptions( share/*.py ) atlas_install_xmls( data/*.dtd data/*.xml ) #---------------------------------- @@ -122,31 +121,35 @@ file( MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/unitTestRun_generateMenuMT_newJ atlas_add_test( generateMenuMT_newJO SCRIPT python -m TriggerMenuMT.HLTMenuConfig.Menu.LS2_v1_newJO PROPERTIES WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/unitTestRun_generateMenuMT_newJO - PROPERTIES TIMEOUT 500 ) + PROPERTIES TIMEOUT 500 + POST_EXEC_SCRIPT nopost.sh ) file( MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/unitTestRun_ViewCFTest ) atlas_add_test( ViewCFTest - SCRIPT python -m unittest -v TriggerMenuMT.HLTMenuConfig.Test.ViewCFTest + SCRIPT python -m unittest -v TriggerMenuMT.HLTMenuConfig.Test.ViewCFTest PROPERTIES WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/unitTestRun_ViewCFTest - POST_EXEC_SCRIPT nopost.sh ) + POST_EXEC_SCRIPT nopost.sh ) file( MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/unitTestRun_generateMenuMT ) atlas_add_test( generateMenuMT - SCRIPT bash test_HLTmenu.sh + SCRIPT test_HLTmenu.sh PROPERTIES WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/unitTestRun_generateMenuMT - PROPERTIES TIMEOUT 4000 ) + PROPERTIES TIMEOUT 4000 + POST_EXEC_SCRIPT nopost.sh ) file( MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/unitTestRun_full_menu_cf ) atlas_add_test( full_menu_cf - SCRIPT scripts/test_full_menu_cf.sh + SCRIPT scripts/test_full_menu_cf.sh PROPERTIES WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/unitTestRun_full_menu_cf - PROPERTIES TIMEOUT 500) + PROPERTIES TIMEOUT 500 + POST_EXEC_SCRIPT nopost.sh ) file( MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/unitTestRun_LS2_emu_menu_DH ) atlas_add_test( LS2_emu_menu_DH - SCRIPT test_emu_step_menu_processing.sh + SCRIPT test_emu_step_menu_processing.sh PROPERTIES WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/unitTestRun_LS2_emu_menu_DH - PROPERTIES TIMEOUT 500) + PROPERTIES TIMEOUT 500 + POST_EXEC_SCRIPT nopost.sh ) #---------------------------------- # List of menus to be created: @@ -158,5 +161,3 @@ atlas_build_lvl1_trigger_menu( Cosmic_run3_v1 ) atlas_build_lvl1_trigger_menu( PhysicsP1_HI_run3_v1 ) atlas_build_lvl1_trigger_menu( Dev_HI_run3_v1 ) atlas_build_lvl1_trigger_menu( LS2_v1_TriggerValidation_mc_prescale ) - - diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/LVL1MenuConfig/LVL1/Lvl1Flags.py b/Trigger/TriggerCommon/TriggerMenuMT/python/LVL1MenuConfig/LVL1/Lvl1Flags.py index bfb8232e804d70a9ec2f41070c5e623977fd737c..adaed177fdf36b557536f774c06ad467febb914f 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/LVL1MenuConfig/LVL1/Lvl1Flags.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/LVL1MenuConfig/LVL1/Lvl1Flags.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration """ Lvl1 specific flags @@ -11,7 +11,7 @@ from .Limits import Limits __author__ = 'J.Stelzer' __doc__="Level 1 specific flags for Run 2" -log = logging.getLogger('TriggerMenu.L1Flags.py') +log = logging.getLogger('LVL1.Lvl1Flags.py') _flags = [] class CTPVersion(JobProperty): diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/LVL1MenuConfig/LVL1/TriggerTypeDefRun1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/LVL1MenuConfig/LVL1/TriggerTypeDefRun1.py new file mode 100644 index 0000000000000000000000000000000000000000..ef07604c0ab2e19a3d669b4306db6e355cb85360 --- /dev/null +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/LVL1MenuConfig/LVL1/TriggerTypeDefRun1.py @@ -0,0 +1,41 @@ +# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + + +from TriggerJobOpts.TriggerFlags import TriggerFlags as TF + +class TT: + """ + Trigger type logic + should also match StreamingDef.py definitions + """ + rand = 1 << 0 + zerobs = 1 << 1 # trigger type for zero bias triggers + calo = 1 << 2 + rpcin = tgc = 1 << 3 # Assign TGC to RPCIN to free one bit for new and CALOEM trigger type + caloem = 1 << 4 # to stream separately + minb = 1 << 5 + rpcout = 1 << 6 + phys = 1 << 7 + + # Calibration requests + # From David B - for calibration events TriggerType + # will be reset by CTP - values below are placeholders + calreq0 = 0x30 + calreq1 = 0x32 + calreq2 = 0x34 + + if any([ x in TF.triggerMenuSetup() for x in + [ 'InitialBeam_HI', + 'Cosmic_v3', + 'L1_pp', + 'L1_alfa', + 'MC_pp', + 'MC_HI', + 'MC_loose', + 'MC_tight', + 'Physics_pp', + 'Physics_default', + 'Physics_HI', + ]]): + caloem = 0 + diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/LVL1MenuConfig/LVL1Menu/ItemDefRun1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/LVL1MenuConfig/LVL1Menu/ItemDefRun1.py deleted file mode 100755 index da34993660e8ff35c1ec737d753414fe06f34263..0000000000000000000000000000000000000000 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/LVL1MenuConfig/LVL1Menu/ItemDefRun1.py +++ /dev/null @@ -1,870 +0,0 @@ -# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration -# -# Disable flake8 checking due to the use of 'exec': -# flake8: noqa -# -from TriggerJobOpts.TriggerFlags import TriggerFlags - -# The trigger types -from TriggerMenu.l1.TriggerTypeDefRun1 import TT -from TriggerMenu.l1.Limits import Limits -from TriggerMenu.l1.Logic import Not -from TriggerMenu.l1.Lvl1MenuItems import LVL1MenuItem - -from AthenaCommon.Logging import logging -log = logging.getLogger('TriggerMenu.Lvl1.py') - - -class ItemDef(object): - def __init__(self): - """Constructor""" - pass - - #---------------------------------------------------------------------- - # LVL1- thresholds and items - #---------------------------------------------------------------------- - @staticmethod - def registerItems(tm): - """Register LVL1 thresholds for further use""" - - # register all thresholds ... - from ThresholdDefRun1 import ThresholdDef - ThresholdDef.registerThresholds(tm) - - # ... and make them accessible by their name - for thr in tm.registeredThresholds.values(): - thrvarname = thr.name.replace('.','') # we can not have . in the variable name - exec("%s = ThrCondition(thr)" % thrvarname) - - # InternalTriggers - for i in range( Limits.NumBunchgroups ): - exec("BGRP%i = Logic(Lvl1InternalTrigger('BGRP%i'))" % (i,i)) - - for i in range( Limits.NumRndmTriggers ): - exec("RNDM%i = Logic(Lvl1InternalTrigger('RNDM%i'))" % (i,i)) - - for i in range(2): - exec("PCLK%i = Logic(Lvl1InternalTrigger('PCLK%i'))" % (i,i)) - - - LVL1MenuItem.l1configForRegistration = tm # from now on all new LVL1MenuItems are registered to tm - - # Setting up bunch group and BPTX conditions - bgrpcond = BGRP0 & BGRP1 - physcond = BGRP0 & BGRP1 - calibcond = BGRP0 & BGRP2 - cosmiccond = BGRP0 & BGRP3 - unpaired_isocond = BGRP0 & BGRP4 # unpaired isolated (satellite bunches) - unpaired_nonisocond = BGRP0 & BGRP5 # unpaired non-isolated (parasitic bunches) - firstempty = BGRP0 & BGRP6 - unpairedRcond = BGRP0 & BGRP7 # unpaired beams 1 oR beam 2 - bgrp7cond = BGRP0 & BGRP7 # No unpaired anymore - - - LVL1MenuItem.currentPartition = 1 - - # /gamma ctpid=[0:0x1f] - - emTT = TT.calo | TT.caloem - - LVL1MenuItem('L1_EM3', ctpid=0x1 ).setLogic( EM3.x(1) & physcond).setTriggerType( emTT ) - LVL1MenuItem('L1_EM4', ctpid=0x54).setLogic( EM4.x(1) & physcond).setTriggerType( emTT ) - LVL1MenuItem('L1_EM5', ctpid=-1 ).setLogic( EM5.x(1) & physcond).setTriggerType( emTT ) - LVL1MenuItem('L1_EM6', ctpid=-1 ).setLogic( EM6.x(1) & physcond).setTriggerType( emTT ) - LVL1MenuItem('L1_EM7', ctpid=0x1 ).setLogic( EM7.x(1) & physcond).setTriggerType( emTT ) - LVL1MenuItem('L1_EM7V', ctpid=-1 ).setLogic( EM7V.x(1) & physcond).setTriggerType( emTT ) - LVL1MenuItem('L1_EM8VH', ctpid=-1 ).setLogic( EM8VH.x(1) & physcond).setTriggerType( emTT ) - LVL1MenuItem('L1_EM10', ctpid=0x2 ).setLogic( EM10.x(1) & physcond).setTriggerType( emTT ) - LVL1MenuItem('L1_EM10VH', ctpid=-1 ).setLogic( EM10VH.x(1) & physcond).setTriggerType( emTT ) - LVL1MenuItem('L1_EM12', ctpid=0x2 ).setLogic( EM12.x(1) & physcond).setTriggerType( emTT ) - LVL1MenuItem('L1_EM14', ctpid=0x5 ).setLogic( EM14.x(1) & physcond).setTriggerType( emTT ) - LVL1MenuItem('L1_EM14VH', ctpid=-1 ).setLogic( EM14VH.x(1) & physcond).setTriggerType( emTT ) - LVL1MenuItem('L1_EM15V', ctpid=-1 ).setLogic( EM15V.x(1) & physcond).setTriggerType( emTT ) - LVL1MenuItem('L1_EM15VH', ctpid=-1 ).setLogic( EM15VH.x(1) & physcond).setTriggerType( emTT ) - LVL1MenuItem('L1_EM16', ctpid=0x5 ).setLogic( EM16.x(1) & physcond).setTriggerType( emTT ) - LVL1MenuItem('L1_EM16VH', ctpid=-1 ).setLogic( EM16VH.x(1) & physcond).setTriggerType( emTT ) - LVL1MenuItem('L1_EM16V', ctpid=-1 ).setLogic( EM16V.x(1) & physcond).setTriggerType( emTT ) - LVL1MenuItem('L1_EM18VH', ctpid=-1 ).setLogic( EM18VH.x(1) & physcond).setTriggerType( emTT ) - LVL1MenuItem('L1_EM20V', ctpid=-1 ).setLogic( EM20V.x(1) & physcond).setTriggerType( emTT ) - LVL1MenuItem('L1_EM24VHI', ctpid=-1 ).setLogic( EM24VHI.x(1) & physcond).setTriggerType( emTT ) - LVL1MenuItem('L1_EM30', ctpid=0x8 ).setLogic( EM30.x(1) & physcond).setTriggerType( emTT ) - LVL1MenuItem('L1_EM50', ctpid=0x8 ).setLogic( EM50.x(1) & physcond).setTriggerType( emTT ) - - - # special bgrp - LVL1MenuItem('L1_EM30_BGRP7', ctpid=-1).setLogic( EM30.x(1) & bgrp7cond ).setTriggerType( emTT ) - - # 2xEM - LVL1MenuItem('L1_2EM3', ctpid=0xa ).setLogic( EM3.x(2) & physcond).setTriggerType( emTT ) - LVL1MenuItem('L1_2EM5', ctpid=0xb ).setLogic( EM5.x(2) & physcond).setTriggerType( emTT ) - LVL1MenuItem('L1_2EM6', ctpid=-1 ).setLogic( EM6.x(2) & physcond).setTriggerType( emTT ) - LVL1MenuItem('L1_2EM8VH', ctpid=-1 ).setLogic( EM8VH.x(2) & physcond).setTriggerType( emTT ) - LVL1MenuItem('L1_2EM10VH', ctpid=-1 ).setLogic( EM10VH.x(2) & physcond).setTriggerType( emTT ) - LVL1MenuItem('L1_2EM12', ctpid=0xf ).setLogic( EM12.x(2) & physcond).setTriggerType( emTT ) - LVL1MenuItem('L1_2EM15V', ctpid=-1 ).setLogic( EM15V.x(2) & physcond).setTriggerType( emTT ) - LVL1MenuItem('L1_2EM15VH', ctpid=0xf ).setLogic( EM15VH.x(2) & physcond).setTriggerType( emTT ) - - - - # 3xEM - LVL1MenuItem('L1_2EM3_EM6' ).setLogic( EM3.x(2)& EM6.x(1) & physcond).setTriggerType( emTT ) - LVL1MenuItem('L1_EM7V_2EM3' ).setLogic(EM7V.x(1)& EM3.x(2) & physcond).setTriggerType( emTT ) - LVL1MenuItem('L1_2EM3_EM12' ).setLogic( EM3.x(2)& EM12.x(1) & physcond).setTriggerType( emTT ) - LVL1MenuItem('L1_2EM6_EM16VH').setLogic( EM6.x(2)& EM16VH.x(1) & physcond).setTriggerType( emTT ) - LVL1MenuItem('L1_3EM6', ctpid=-1 ).setLogic( EM6.x(3) & physcond).setTriggerType(TT.phys).setTriggerType( emTT ) - LVL1MenuItem('L1_EM15VH_3EM7V' ).setLogic( EM15VH.x(1) & EM7V.x(3) & physcond).setTriggerType( emTT ) - - # 4xEM - LVL1MenuItem('L1_3EM6_EM14VH').setLogic( EM6.x(3) & EM14VH.x(1)& physcond).setTriggerType( emTT ) - LVL1MenuItem('L1_2EM12_EM16V').setLogic( EM12.x(2)& EM16V.x(1) & physcond).setTriggerType( emTT ) - - - # MUON ctpid=[0x20;0x2f] - - LVL1MenuItem('L1_MU0', ctpid=0x20).setLogic( MU0.x(1) & physcond).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_MU4', ctpid=-1 ).setLogic( MU4.x(1) & physcond).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_MU6', ctpid=0x21).setLogic( MU6.x(1) & physcond).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_MU10', ctpid=0x22).setLogic( MU10.x(1) & physcond).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_MU11', ctpid=0x23).setLogic( MU11.x(1) & physcond).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_MU15', ctpid=-1 ).setLogic( MU15.x(1) & physcond).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_MU20', ctpid=0x24).setLogic( MU20.x(1) & physcond).setTriggerType(TT.rpcin) - - # 2xMU, 3xMU, 4xMU - LVL1MenuItem('L1_2MU0', ctpid=0x26).setLogic( MU0.x(2) & physcond).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_2MU4', ctpid=-1 ).setLogic( MU4.x(2) & physcond).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_2MU6', ctpid=0x27).setLogic( MU6.x(2) & physcond).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_2MU10', ctpid=0x28).setLogic( MU10.x(2) & physcond).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_2MU11', ctpid=0x28).setLogic( MU11.x(2) & physcond).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_2MU20', ctpid=0x2a).setLogic( MU20.x(2) & physcond) - LVL1MenuItem('L1_3MU4', ctpid=-1 ).setLogic( MU4.x(3) & physcond) - LVL1MenuItem('L1_3MU6', ctpid=0x2b).setLogic( MU6.x(3) & physcond) - LVL1MenuItem('L1_2MU4_MU6' ).setLogic( MU4.x(2) & MU6.x(1) & physcond).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_2MU6_MU10' ).setLogic( MU6.x(2) & MU10.x(1) & physcond).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_3MU4_MU6' ).setLogic( MU4.x(3) & MU6.x(1) & physcond).setTriggerType(TT.rpcin) - - LVL1MenuItem('L1_2MU4_XE40', ctpid=-1 ).setLogic( MU4.x(2) & XE40.x(1) & physcond).setTriggerType(TT.calo|TT.rpcin) - LVL1MenuItem('L1_2MU4_XE30', ctpid=-1 ).setLogic( MU4.x(2) & XE30.x(1) & physcond).setTriggerType(TT.calo|TT.rpcin) - - # barrel - LVL1MenuItem('L1_MUB' ).setLogic( NIM_MUB.x(1) & physcond).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_MUE' ).setLogic( NIM_MUE.x(1) & physcond).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_2MU4_BARRELONLY').setLogic( ( MU4.x(2) & Not(NIM_MUE.x(1)) | MU4.x(3)) & physcond).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_2MU4_MU6_BARREL').setLogic( MU4.x(2) & NIM_MUB.x(1) & MU6.x(1) & physcond).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_2MU4_BARREL' ).setLogic( MU4.x(2) & NIM_MUB.x(1) & physcond).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_2MU6_BARRELONLY').setLogic( (MU6.x(2)&Not(NIM_MUE.x(1))| MU6.x(3)) & physcond).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_2MU6_BARREL' ).setLogic( MU6.x(2) & NIM_MUB.x(1) & physcond).setTriggerType(TT.rpcin) - - - - # TAU ctpid=[0x40:0x4f] - - # 1xTAU - LVL1MenuItem('L1_TAU3', ctpid=0x40).setLogic( HA3.x(1) & physcond).setTriggerType( TT.calo ) - LVL1MenuItem('L1_TAU6', ctpid=-1 ).setLogic( HA6.x(1) & physcond).setTriggerType( TT.calo ) - LVL1MenuItem('L1_TAU8', ctpid=0x43).setLogic( HA8.x(1) & physcond).setTriggerType( TT.calo ) - LVL1MenuItem('L1_TAU11', ctpid=0x44).setLogic( HA11.x(1) & physcond).setTriggerType( TT.calo ) - LVL1MenuItem('L1_TAU11I', ctpid=0x44).setLogic( HA11I.x(1) & physcond).setTriggerType( TT.calo ) - LVL1MenuItem('L1_TAU12', ctpid=-1 ).setLogic( HA12.x(1) & physcond).setTriggerType( TT.calo ) - LVL1MenuItem('L1_TAU15', ctpid=-1 ).setLogic( HA15.x(1) & physcond).setTriggerType( TT.calo ) - LVL1MenuItem('L1_TAU15I' ).setLogic( HA15I.x(1) & physcond).setTriggerType( TT.calo ) - LVL1MenuItem('L1_TAU20', ctpid=0x46).setLogic( HA20.x(1) & physcond).setTriggerType( TT.calo ) - LVL1MenuItem('L1_TAU40', ctpid=0x49).setLogic( HA40.x(1) & physcond).setTriggerType( TT.calo ) - LVL1MenuItem('L1_TAU60', ctpid=-1 ).setLogic( HA60.x(1) & physcond).setTriggerType( TT.calo ) - - # 2xTAU - LVL1MenuItem('L1_2TAU11', ctpid=0x4c ).setLogic( HA11.x(2) & physcond).setTriggerType( TT.calo ) - LVL1MenuItem('L1_2TAU11I' ).setLogic( HA11I.x(2) & physcond).setTriggerType( TT.calo ) - LVL1MenuItem('L1_2TAU15' ).setLogic( HA15.x(2) & physcond).setTriggerType( TT.calo ) - - # mixed tau - LVL1MenuItem('L1_EM15VH_TAU40_2TAU15' ).setLogic( EM15VH & HA40 & HA15.x(2) & physcond).setTriggerType( TT.calo ) - LVL1MenuItem('L1_EM15VH_2TAU12_J25_2J15_3J12' ).setLogic( EM15VH & HA12.x(2) & J25 & J15.x(2) & J12.x(3) & physcond).setTriggerType( TT.calo ) - - LVL1MenuItem('L1_MU10_TAU20' ).setLogic( MU10 & HA20 & physcond).setTriggerType( TT.calo ) - LVL1MenuItem('L1_MU10_TAU12_J25_2J12' ).setLogic( MU10 & HA12 & J25 & J12.x(2) & physcond).setTriggerType( TT.calo ) - - LVL1MenuItem('L1_TAU20_2TAU12_J25_2J20_3J12' ).setLogic( HA20 & HA12.x(2) & J25 & J20.x(2) & J12.x(3) & physcond).setTriggerType( TT.calo ) - LVL1MenuItem('L1_TAU20_2J20_XE45' ).setLogic( HA20 & J20.x(2) & XE45 & physcond).setTriggerType( TT.calo ) - LVL1MenuItem('L1_TAU20_2TAU12_XE35' ).setLogic( HA20 & HA12.x(2) & XE35 & physcond).setTriggerType( TT.calo ) - - # EMPTY - LVL1MenuItem('L1_2TAU20' ).setLogic( HA20.x(2) & physcond).setTriggerType(TT.calo) - - - # JET ctpid=[0x60:0x7f] - - LVL1MenuItem('L1_J5', ctpid=0x60).setLogic( J5.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_J5_win6', ctpid=0x60).setLogic( J5_win6.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_J10', ctpid=0x61).setLogic( J10.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_J15' ).setLogic( J15.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_J18', ctpid=0x62).setLogic( J18.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_J20', ctpid=-1 ).setLogic( J20.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_J30' ).setLogic( J30.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_J40' ).setLogic( J40.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_J50' ).setLogic( J50.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_J75' ).setLogic( J75.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_J100', ctpid=-1 ).setLogic( J100.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_J350', ctpid=-1 ).setLogic( J350.x(1) & physcond).setTriggerType(TT.calo) - - LVL1MenuItem('L1_J15.ETA24', ctpid=-1).setLogic(J15ETA24.x(1) & physcond).setTriggerType(TT.calo) - - LVL1MenuItem('L1_J15.23ETA49' ).setLogic( (JF1523ETA49 | JB1523ETA49 ) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_J20.32ETA49' ).setLogic( (JF2032ETA49 | JB2032ETA49 ) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_J25.32ETA49' ).setLogic( (JF2532ETA49 | JB2532ETA49 ) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_J100.32ETA49').setLogic( (JF10032ETA49 | JB10032ETA49 ) & physcond).setTriggerType(TT.calo) - - # pPb - LVL1MenuItem('L1_J5_TE90', ctpid=0x60).setLogic( J5.x(1)& TE90.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_2J5_TE90', ctpid=0x60).setLogic( J5.x(2)& TE90.x(1) & physcond).setTriggerType(TT.calo) - - # Multi-jet - LVL1MenuItem('L1_2J5', ctpid=0x68 ).setLogic( J5.x(2) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_2J10' ).setLogic( J10.x(2) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_3J10', ctpid=0x7f).setLogic( J10.x(3) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_3J15' ).setLogic( J15.x(3) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_3J50', ctpid=0x7f).setLogic( J50.x(3) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_3J75', ctpid=-1 ).setLogic( J75.x(3) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_3J20', ctpid=-1 ).setLogic( J20.x(3) & physcond).setTriggerType(TT.calo) # new jet threshold - LVL1MenuItem('L1_4J10', ctpid=0x6e).setLogic( J10.x(4) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_4J15' ).setLogic( J15.x(4) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_4J20', ctpid=-1 ).setLogic( J20.x(4) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_5J10', ctpid=-1 ).setLogic( J10.x(5) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_5J15' ).setLogic( J15.x(5) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_5J20', ctpid=-1 ).setLogic( J20.x(5) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_6J10', ctpid=-1 ).setLogic( J10.x(6) & physcond).setTriggerType(TT.calo) - - LVL1MenuItem('L1_3J15.ETA24' ).setLogic( J15ETA24.x(3) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_5J15.ETA24' ).setLogic( J15ETA24.x(5) & physcond).setTriggerType(TT.calo) - - - #example zero bias seeded by single jet - #item_zb_j10 = LVL1MenuItem('L1_ZB_J10', ctpid=240).setLogic(thr_zb_j10.x(1) & physcond).setTriggerType(TT.calo) - #example zero bias seeded by di jet - #item_zb_2j10 = LVL1MenuItem('L1_ZB_2J10', ctpid=241).setLogic(thr_zb_2j10.x(1) & physcond).setTriggerType(TT.calo) - #zb item for v3 menu, seeded by mbts a - - if ('pp_v4' in TriggerFlags.triggerMenuSetup() or 'LS1_v1' in TriggerFlags.triggerMenuSetup()) : - LVL1MenuItem('L1_ZB', ctpid=240).setLogic(ZB_EM12.x(1) & physcond).setTriggerType(TT.zerobs) - elif 'DC14' in TriggerFlags.triggerMenuSetup(): - LVL1MenuItem('L1_ZB', ctpid=240).setLogic(ZB_EM15V.x(1) & physcond).setTriggerType(TT.zerobs) - else: - LVL1MenuItem('L1_ZB', ctpid=240).setLogic(ZB_EM14.x(1) & physcond).setTriggerType(TT.zerobs) - - - - # - Add/remap new L1 thresholds: - # J20->J15, J40->J30, J70->J55, J100->J75, J130->J95, J150->J115 - LVL1MenuItem('L1_4J30' ).setLogic( J30.x(4) & physcond) - LVL1MenuItem('L1_3J15_J50').setLogic( J15.x(3) & J50.x(1) & physcond) - LVL1MenuItem('L1_J30_FJ30').setLogic( J30.x(1) & ( JF30.x(1) | JB30.x(1) ) & physcond) - LVL1MenuItem('L1_J50_FJ50').setLogic( J50.x(1) & ( JF50.x(1) | JB50.x(1) ) & physcond) - - - - # FJ - #pPb items - - LVL1MenuItem('L1_FJ0', ctpid=0x7b).setLogic(( JF0.x(1) | JB0.x(1)) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_FJ0_A', ctpid=0x7b).setLogic(( JF0.x(1)) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_FJ0_C', ctpid=0x7b).setLogic(( JB0.x(1)) & physcond).setTriggerType(TT.calo) - - #pp items - LVL1MenuItem('L1_FJ5', ctpid=0x7b).setLogic(( JF5.x(1) | JB5.x(1)) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_FJ10').setLogic(( JF10.x(1) | JB10.x(1)) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_FJ15').setLogic(( JF15.x(1) | JB15.x(1)) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_FJ30').setLogic(( JF30.x(1) | JB30.x(1)) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_FJ50').setLogic(( JF50.x(1) | JB50.x(1)) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_FJ75').setLogic(( JF75.x(1) | JB75.x(1)) & physcond).setTriggerType(TT.calo) - - # 2xFJ - LVL1MenuItem('L1_2FJ15').setLogic( JF15.x(1) & JB15.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_2FJ30', ctpid=0x7d).setLogic( JF30.x(1) & JB30.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_2FJ50', ctpid=0x7b).setLogic( JF50.x(1) & JB50.x(1) & physcond).setTriggerType(TT.calo) - - - # Diffractive - - LVL1MenuItem('L1_MU0_TE50' ).setLogic( MU0.x(1) & TE50.x(1) & physcond).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_MU4_TE50' ).setLogic( MU4.x(1) & TE50.x(1) & physcond).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_EM3_2J5' ).setLogic( EM3.x(1) & J5.x(2) & physcond).setTriggerType(TT.calo) - - LVL1MenuItem('L1_MU0_VTE50' ).setLogic( MU0.x(1) & Not(TE50.x(1)) & physcond).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_MU0_VTE20' ).setLogic( MU0.x(1) & Not(TE20.x(1)) & physcond).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_MU4_VTE50' ).setLogic( MU4.x(1) & Not(TE50.x(1)) & physcond).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_EM3_VTE50' ).setLogic( EM3.x(1) & Not(TE50.x(1)) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_EM3_VTE20' ).setLogic( EM3.x(1) & Not(TE20.x(1)) & physcond).setTriggerType(TT.calo) - - LVL1MenuItem('L1_MU0_MV_VTE50').setLogic( MU0.x(1) & Not(MBTS_A.x(1)& MBTS_C.x(1)) & Not(TE50.x(1)) & physcond).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_MU4_MV_VTE50').setLogic( MU4.x(1) & Not(MBTS_A.x(1)& MBTS_C.x(1)) & Not(TE50.x(1)) & physcond).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_EM3_MV_VTE50').setLogic( EM3.x(1) & Not(MBTS_A.x(1)& MBTS_C.x(1)) & Not(TE50.x(1)) & physcond).setTriggerType(TT.calo) - - - # Items for EMPTY - # EM - LVL1MenuItem('L1_EM3_EMPTY', ctpid=-1).setLogic( EM3.x(1) & cosmiccond).setTriggerType( emTT ) - LVL1MenuItem('L1_EM5_EMPTY', ctpid=-1).setLogic( EM5.x(1) & cosmiccond).setTriggerType( emTT ) - LVL1MenuItem('L1_EM6_EMPTY', ctpid=-1).setLogic( EM6.x(1) & cosmiccond).setTriggerType( emTT ) - # Muon - LVL1MenuItem('L1_MU0_EMPTY' ).setLogic( MU0.x(1) & cosmiccond).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_MU4_EMPTY' ).setLogic( MU4.x(1) & cosmiccond).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_MU10_EMPTY' ).setLogic( MU10.x(1) & cosmiccond).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_2MU6_EMPTY' ).setLogic( MU6.x(2) & cosmiccond).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_2MU0_EMPTY' ).setLogic( MU0.x(2) & cosmiccond).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_2MU4_EMPTY' ).setLogic( MU4.x(2) & cosmiccond).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_MU11_EMPTY' ).setLogic( MU11.x(1) & cosmiccond).setTriggerType(TT.rpcout) - # Tau - LVL1MenuItem('L1_TAU8_EMPTY').setLogic( HA8.x(1) & cosmiccond).setTriggerType(TT.calo) - # Jet - LVL1MenuItem('L1_J5_EMPTY' ).setLogic( J5.x(1) & cosmiccond).setTriggerType(TT.calo) - LVL1MenuItem('L1_J10_EMPTY').setLogic( J10.x(1) & cosmiccond).setTriggerType(TT.calo) - LVL1MenuItem('L1_J30_EMPTY').setLogic( J30.x(1) & cosmiccond).setTriggerType(TT.calo) - # Forward Jet - LVL1MenuItem('L1_FJ5_EMPTY' ).setLogic( ( JF5.x(1) | JB5.x(1)) & cosmiccond).setTriggerType(TT.calo) - LVL1MenuItem('L1_FJ0_EMPTY' ).setLogic( ( JF0.x(1) | JB0.x(1)) & cosmiccond).setTriggerType(TT.calo) - LVL1MenuItem('L1_FJ30_EMPTY').setLogic( (JF30.x(1) | JB30.x(1)) & cosmiccond).setTriggerType(TT.calo) - # combined - LVL1MenuItem('L1_MU4_J15_EMPTY' ).setLogic( MU4.x(1) & J15.x(1) & cosmiccond).setTriggerType(TT.rpcout) - - - - - # Items for EMPTY, UNPAIRED1, UNPAIRED2 and UNPAIRED - - # Jet - LVL1MenuItem('L1_J5_UNPAIRED_ISO' ).setLogic( J5.x(1) & unpaired_isocond ).setTriggerType(TT.calo) - LVL1MenuItem('L1_J5_UNPAIRED_NONISO' ).setLogic( J5.x(1) & unpaired_nonisocond).setTriggerType(TT.calo) - LVL1MenuItem('L1_J5_FIRSTEMPTY' ).setLogic( J5.x(1) & firstempty ).setTriggerType(TT.calo) - LVL1MenuItem('L1_J10_UNPAIRED_ISO' ).setLogic( J10.x(1) & unpaired_isocond ).setTriggerType(TT.calo) - LVL1MenuItem('L1_J10_UNPAIRED_NONISO' ).setLogic( J10.x(1) & unpaired_nonisocond).setTriggerType(TT.calo) - LVL1MenuItem('L1_J10_FIRSTEMPTY' ).setLogic( J10.x(1) & firstempty ).setTriggerType(TT.calo) - LVL1MenuItem('L1_J30_UNPAIRED' ).setLogic( J30.x(1) & unpairedRcond ).setTriggerType(TT.calo) - LVL1MenuItem('L1_J30_UNPAIRED_ISO' ).setLogic( J30.x(1) & unpaired_isocond ).setTriggerType(TT.calo) - LVL1MenuItem('L1_J30_UNPAIRED_NONISO' ).setLogic( J30.x(1) & unpaired_nonisocond).setTriggerType(TT.calo) - LVL1MenuItem('L1_J30_FIRSTEMPTY' ).setLogic( J30.x(1) & firstempty ).setTriggerType(TT.calo) - # Forward jet - LVL1MenuItem('L1_FJ10_UNPAIRED_NONISO').setLogic( ( JF10.x(1) | JB10.x(1)) & unpaired_nonisocond).setTriggerType(TT.calo) - LVL1MenuItem('L1_FJ0_UNPAIRED_ISO' ).setLogic( ( JF0.x(1) | JB0.x(1) ) & unpaired_isocond ).setTriggerType(TT.calo) - LVL1MenuItem('L1_FJ5_UNPAIRED_ISO' ).setLogic( ( JF5.x(1) | JB5.x(1) ) & unpaired_isocond ).setTriggerType(TT.calo) - LVL1MenuItem('L1_FJ30_UNPAIRED_ISO' ).setLogic( ( JF30.x(1) | JB30.x(1)) & unpaired_isocond ).setTriggerType(TT.calo) - LVL1MenuItem('L1_FJ30_FIRSTEMPTY' ).setLogic( ( JF30.x(1) | JB30.x(1)) & firstempty ).setTriggerType(TT.calo) - # Tau - LVL1MenuItem('L1_TAU8_UNPAIRED_ISO' ).setLogic( HA8.x(1) & unpaired_isocond ).setTriggerType(TT.calo) - LVL1MenuItem('L1_TAU8_UNPAIRED_NONISO').setLogic( HA8.x(1) & unpaired_nonisocond).setTriggerType(TT.calo) - LVL1MenuItem('L1_TAU8_FIRSTEMPTY' ).setLogic( HA8.x(1) & firstempty ).setTriggerType(TT.calo) - # EM - LVL1MenuItem('L1_EM3_UNPAIRED_ISO' ).setLogic( EM3.x(1) & unpaired_isocond ).setTriggerType(TT.calo|TT.caloem) - LVL1MenuItem('L1_EM3_UNPAIRED_NONISO' ).setLogic( EM3.x(1) & unpaired_nonisocond).setTriggerType(TT.calo|TT.caloem) - LVL1MenuItem('L1_EM3_FIRSTEMPTY' ).setLogic( EM3.x(1) & firstempty ).setTriggerType(TT.calo|TT.caloem) - # Muon - LVL1MenuItem('L1_MU0_UNPAIRED_ISO' ).setLogic( MU0.x(1) & unpaired_isocond ).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_MU4_UNPAIRED_ISO' ).setLogic( MU4.x(1) & unpaired_isocond ).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_MU10_UNPAIRED_ISO' ).setLogic( MU10.x(1) & unpaired_isocond ).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_MU0_UNPAIRED_NONISO' ).setLogic( MU0.x(1) & unpaired_nonisocond).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_MU4_UNPAIRED_NONISO' ).setLogic( MU4.x(1) & unpaired_nonisocond).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_MU0_FIRSTEMPTY' ).setLogic( MU0.x(1) & firstempty ).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_MU4_FIRSTEMPTY' ).setLogic( MU4.x(1) & firstempty ).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_MU6_FIRSTEMPTY' ).setLogic( MU6.x(1) & firstempty ).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_MU10_FIRSTEMPTY' ).setLogic( MU10.x(1) & firstempty ).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_MU20_FIRSTEMPTY' ).setLogic( MU20.x(1) & firstempty ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_2MU6_UNPAIRED_ISO' ).setLogic( MU6.x(2) & unpaired_isocond ).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_2MU6_UNPAIRED_NONISO').setLogic( MU6.x(2) & unpaired_nonisocond).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_2MU4_FIRSTEMPTY' ).setLogic( MU4.x(2) & firstempty ).setTriggerType(TT.rpcin) - LVL1MenuItem('L1_2MU6_FIRSTEMPTY' ).setLogic( MU6.x(2) & firstempty ).setTriggerType(TT.rpcin) - # combined - LVL1MenuItem('L1_MU4_J15_UNPAIRED_ISO').setLogic( MU4.x(1) & J15.x(1) & unpaired_isocond).setTriggerType(TT.rpcin) - - #Combined JET+MET - LVL1MenuItem('L1_J40_XE50').setLogic( (J40.x(1) & XE50.x(1)) & physcond).setTriggerType(TT.calo) - - # XE ctpid=[0x80:0x9f] - LVL1MenuItem('L1_XE20', ctpid=0x81).setLogic( XE20.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_XE25', ctpid=0x82).setLogic( XE25.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_XE30', ctpid=0x83).setLogic( XE30.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_XE40', ctpid=0x84).setLogic( XE40.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_XE50', ctpid=0x85).setLogic( XE50.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_XE70', ctpid=0x86).setLogic( XE70.x(1) & physcond).setTriggerType(TT.calo) - - LVL1MenuItem('L1_XE35_BGRP7').setLogic( XE35.x(1)&bgrp7cond).setTriggerType(TT.calo) - LVL1MenuItem('L1_XE40_BGRP7').setLogic( XE40.x(1)&bgrp7cond).setTriggerType(TT.calo) - LVL1MenuItem('L1_XE50_BGRP7').setLogic( XE50.x(1)&bgrp7cond).setTriggerType(TT.calo) - - #pPb items - LVL1MenuItem('L1_TE10').setLogic( TE10.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_TE20').setLogic( TE20.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_TE30').setLogic( TE30.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_TE40').setLogic( TE40.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_TE35').setLogic( TE35.x(1) & physcond).setTriggerType(TT.calo) - - # Other TE items for L=10^32 and 10^33 - LVL1MenuItem('L1_TE800', ctpid=0x8f).setLogic( TE800.x(1) & physcond).setTriggerType(TT.calo) - - - # items for HI p+Pb (forward TE) - if 'HI_v2' in TriggerFlags.triggerMenuSetup(): - LVL1MenuItem('L1_TE0' ).setLogic( TE0.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_TE20' ).setLogic( TE20.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_TE50' ).setLogic( TE50.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_TE65' ).setLogic( TE65.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_TE90' ).setLogic( TE90.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_TE100').setLogic( TE100.x(1) & physcond).setTriggerType(TT.calo) - else: - LVL1MenuItem('L1_TE0' ).setLogic( TE0.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_TE50' ).setLogic( TE50.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_TE65' ).setLogic( TE65.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_TE90' ).setLogic( TE90.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_TE100').setLogic( TE100.x(1) & physcond).setTriggerType(TT.calo) - - - LVL1MenuItem('L1_XS30').setLogic( XS30.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_XS45').setLogic( XS45.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_XS50').setLogic( XS50.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_XS55').setLogic( XS55.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_XS60').setLogic( XS60.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_XS65').setLogic( XS65.x(1) & physcond).setTriggerType(TT.calo) - - LVL1MenuItem('L1_JE140' ).setLogic( JE140.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_JE200', ctpid=0x92).setLogic( JE200.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_JE350', ctpid=0x94).setLogic( JE350.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_JE500', ctpid=0x96).setLogic( JE500.x(1) & physcond).setTriggerType(TT.calo) - - # Transient items - LVL1MenuItem('L1_XE35').setLogic( XE35.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_XE60').setLogic( XE60.x(1) & physcond).setTriggerType(TT.calo) - - LVL1MenuItem('L1_TE300').setLogic( TE300.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_TE500').setLogic( TE500.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_TE700').setLogic( TE700.x(1) & physcond).setTriggerType(TT.calo) - - # Combined items [0xa0:0xff], [0x30:0x3f], - - # EM + (XE, MU, TAU) - LVL1MenuItem('L1_EM10VH_XE20').setLogic( EM10VH.x(1)& XE20.x(1) & physcond).setTriggerType(TT.calo|TT.caloem) - LVL1MenuItem('L1_EM10VH_XE30').setLogic( EM10VH.x(1)& XE30.x(1) & physcond).setTriggerType(TT.calo|TT.caloem) - LVL1MenuItem('L1_EM10VH_XE35').setLogic( EM10VH.x(1)& XE35.x(1) & physcond).setTriggerType(TT.calo|TT.caloem) - - - LVL1MenuItem('L1_EM3_MU6', ctpid=0xbd).setLogic( MU6.x(1)& EM3.x(1) & physcond).setTriggerType(TT.rpcin|TT.calo|TT.caloem) - LVL1MenuItem('L1_EM6_2MU6' ).setLogic( MU6.x(2)& EM6.x(1) & physcond) - LVL1MenuItem('L1_EM10VH_MU6' ).setLogic( EM10VH.x(1)& MU6.x(1) & physcond).setTriggerType(TT.calo|TT.caloem) - LVL1MenuItem('L1_EM15VH_MU10').setLogic( EM15VH.x(1)& MU10.x(1)& physcond).setTriggerType(TT.calo|TT.caloem) - LVL1MenuItem('L1_EM16VH_MU4' ).setLogic( EM16VH.x(1)& MU4.x(1) & physcond).setTriggerType(TT.calo|TT.caloem) - LVL1MenuItem('L1_2EM8VH_MU10' ).setLogic( EM8VH.x(2)& MU10.x(1) & physcond).setTriggerType(TT.calo|TT.caloem) - LVL1MenuItem('L1_EM8VH_2MU6' ).setLogic( EM8VH.x(1)& MU6.x(2) & physcond).setTriggerType(TT.calo|TT.caloem) - - - LVL1MenuItem('L1_2EM6_MU6' ).setLogic( EM6.x(2)& MU6.x(1) & physcond) - LVL1MenuItem('L1_EM6_MU6' ).setLogic( EM6.x(1)& MU6.x(1) & physcond) - LVL1MenuItem('L1_EM6_MU10' ).setLogic( EM6.x(1)& MU10.x(1) & physcond) - LVL1MenuItem('L1_EM12_XE20' ).setLogic( EM12.x(1)& XE20.x(1) & physcond) - LVL1MenuItem('L1_EM16V_XE20' ).setLogic( EM16V.x(1)& XE20.x(1) & physcond) - LVL1MenuItem('L1_EM6_XS45' ).setLogic( EM6.x(1)& XS45.x(1) & physcond) - LVL1MenuItem('L1_EM6_XS50' ).setLogic( EM6.x(1)& XS50.x(1) & physcond) - LVL1MenuItem('L1_EM6_XS55' ).setLogic( EM6.x(1)& XS55.x(1) & physcond) - LVL1MenuItem('L1_EM6_XS60' ).setLogic( EM6.x(1)& XS60.x(1) & physcond) - LVL1MenuItem('L1_EM16V_XS45' ).setLogic( EM16V.x(1)& XS45.x(1) & physcond) - LVL1MenuItem('L1_EM12_XS45' ).setLogic( EM12.x(1)& XS45.x(1) & physcond) - LVL1MenuItem('L1_EM12_XS30' ).setLogic( EM12.x(1)& XS30.x(1) & physcond) - LVL1MenuItem('L1_EM12_4J10' ).setLogic( EM12.x(1)& J10.x(4) & physcond) - LVL1MenuItem('L1_EM15VH_J15.23ETA49' ).setLogic( EM15VH& (JF1523ETA49.x(1) | JB1523ETA49.x(1) ) & physcond).setTriggerType(TT.calo) - - - # TAU + EM - LVL1MenuItem('L1_2TAU11I_EM14VH').setLogic( HA11I.x(2)& EM14VH.x(1) & physcond).setTriggerType(TT.calo|TT.caloem) - LVL1MenuItem('L1_2TAU11_TAU20_EM14VH').setLogic( HA11.x(2)& HA20.x(1)& EM14VH.x(1) & physcond).setTriggerType(TT.calo|TT.caloem) - LVL1MenuItem('L1_2TAU11_TAU20_EM10VH').setLogic( HA11.x(2)& HA20.x(1)& EM10VH.x(1) & physcond).setTriggerType(TT.calo|TT.caloem) - LVL1MenuItem('L1_2TAU11_TAU15', ctpid=0x0).setLogic( HA11.x(2)& HA15.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_2TAU11I_TAU15', ctpid=0x0).setLogic( HA11I.x(2)& HA15.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_2TAU11_EM10VH').setLogic( HA11.x(2)& EM10VH.x(1) & physcond).setTriggerType(TT.calo|TT.caloem) - - - LVL1MenuItem('L1_MU4_J50').setLogic( MU4.x(1)& J50.x(1) & physcond).setTriggerType(TT.rpcin|TT.calo) - LVL1MenuItem('L1_MU4_J10').setLogic( MU4.x(1)& J10.x(1) & physcond).setTriggerType(TT.rpcin|TT.calo) - - # - Add/remap new L1 thresholds: - # J20->J15, J40->J30, J70->J55, J100->J75, J130->J95, J150->J115 - LVL1MenuItem('L1_MU4_J15').setLogic( MU4.x(1)& J15.x(1) & physcond).setTriggerType(TT.rpcin|TT.calo) - LVL1MenuItem('L1_MU4_J30').setLogic( MU4.x(1)& J30.x(1) & physcond) - LVL1MenuItem('L1_MU4_J75').setLogic( MU4.x(1)& J75.x(1) & physcond) - - LVL1MenuItem('L1_MU4_J20_XE20').setLogic( MU4.x(1)& J20.x(1)& XE20.x(1) & physcond) - LVL1MenuItem('L1_MU4_J20_XE35').setLogic( MU4.x(1)& J20.x(1)& XE35.x(1) & physcond) - - LVL1MenuItem('L1_MU6_J15').setLogic( MU6.x(1)& J15.x(1) & physcond).setTriggerType(TT.rpcin|TT.calo) - LVL1MenuItem('L1_MU6_2J20').setLogic( MU6.x(1)& J20.x(2) & physcond).setTriggerType(TT.rpcin|TT.calo) - LVL1MenuItem('L1_2MU4_EM3', ctpid=0xbd).setLogic( MU4.x(2)& EM3.x(1) & physcond).setTriggerType(TT.rpcin|TT.calo|TT.caloem) - LVL1MenuItem('L1_2MU4_2EM3', ctpid=0xbd).setLogic( MU4.x(2)& EM3.x(2) & physcond).setTriggerType(TT.rpcin|TT.calo|TT.caloem) - - LVL1MenuItem('L1_MU10_XE20').setLogic( MU10.x(1)& XE20.x(1) & physcond) - LVL1MenuItem('L1_MU10_XE25').setLogic( MU10.x(1)& XE25.x(1) & physcond) - LVL1MenuItem('L1_MU10_J20').setLogic( MU10.x(1) & J20.x(1) & physcond) # new jet threshold - - # TAU + MU - LVL1MenuItem('L1_TAU8_MU10' ).setLogic( HA8.x(1) & MU10.x(1) & physcond) - LVL1MenuItem('L1_TAU11_MU10', ctpid=0xc7).setLogic( HA11.x(1) & MU10.x(1) & physcond) - LVL1MenuItem('L1_2J30_XE20' ).setLogic( J30.x(2) & XE20.x(1) & physcond) # new jet threshold - - # TAU + XE - LVL1MenuItem('L1_TAU15_XE35' ).setLogic( HA15.x(1) & XE35.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_TAU15_XE40' ).setLogic( HA15.x(1) & XE40.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_TAU15I_XE35' ).setLogic( HA15I.x(1) & XE35.x(1) & physcond) - LVL1MenuItem('L1_TAU15I_XE40' ).setLogic( HA15I.x(1) & XE40.x(1) & physcond) - LVL1MenuItem('L1_TAU20_XE40' ).setLogic( HA20.x(1) & XE40.x(1) & physcond) - LVL1MenuItem('L1_TAU20_XE35' ).setLogic( HA20.x(1) & XE35.x(1) & physcond) - LVL1MenuItem('L1_TAU15_XS35' ).setLogic( HA15.x(1) & XS35.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_TAU15_XE25_3J15').setLogic( HA15.x(1) & XE25.x(1) & J15.x(3) & physcond).setTriggerType(TT.calo) - - # VBF request - - LVL1MenuItem('L1_2TAU8_TAU15_FJ15' ).setLogic( HA8.x(2) & HA15.x(1) & ( JF15.x(1) | JB15.x(1)) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_2TAU8_TAU15_J15CF' ).setLogic( HA8.x(2) & HA15.x(1) & J15CF.x(1) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_2TAU8_TAU11I_EM10VH_FJ15' ).setLogic( HA8.x(2) & HA11I.x(1) & EM10VH.x(1)&( JF15.x(1)| JB15.x(1)) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_2TAU8_TAU11I_EM10VH_J15CF').setLogic( HA8.x(2) & HA11I.x(1) & EM10VH.x(1)& J15CF.x(1) & physcond).setTriggerType(TT.calo) - - - LVL1MenuItem('L1_EM14VH_FJ15' ).setLogic( EM14VH.x(1)&( JF15.x(1)| JB15.x(1)) & physcond).setTriggerType(TT.calo|TT.caloem) - LVL1MenuItem('L1_EM14VH_J15CF').setLogic( EM14VH.x(1)& J15CF.x(1) & physcond).setTriggerType(TT.calo|TT.caloem) - - LVL1MenuItem('L1_MU10_FJ15').setLogic( MU10.x(1) & ( JF15.x(1) | JB15.x(1)) & physcond) - LVL1MenuItem('L1_MU10_J15CF').setLogic( MU10.x(1)& J15CF.x(1) & physcond) - - LVL1MenuItem('L1_3J15_FJ15').setLogic( J15.x(3)&( JF15.x(1)| JB15.x(1)) & physcond).setTriggerType(TT.calo) - LVL1MenuItem('L1_2J15_2FJ15').setLogic( J15.x(2)&( JF15.x(1)& JB15.x(1)) & physcond).setTriggerType(TT.calo) - - # Transient items - # L1_TAU6_2JT4_JT35 (or whatever soft thresholds they have. JT4 must have - # softer cuts than TAU06 and JT35 - please get in touch with us if it is not - # the case - we will need to rethink it then) - - LVL1MenuItem('L1_J50_XE30').setLogic( J50.x(1)& XE30.x(1) & physcond) - LVL1MenuItem('L1_J50_XE35').setLogic( J50.x(1)& XE35.x(1) & physcond) - LVL1MenuItem('L1_J50_XE40').setLogic( J50.x(1)& XE40.x(1) & physcond) - LVL1MenuItem('L1_J30_XE35').setLogic( J30.x(1)& XE35.x(1) & physcond) - LVL1MenuItem('L1_J30_XE40').setLogic( J30.x(1)& XE40.x(1) & physcond) - LVL1MenuItem('L1_J30_XE50').setLogic( J30.x(1)& XE50.x(1) & physcond) - LVL1MenuItem('L1_2J20_XE20').setLogic( J20.x(2)& XE20.x(1) & physcond) - - - # MBTS - MBTS_1 = MBTS_A.x(1) | MBTS_C.x(1) - MBTS_2 = (MBTS_A.x(2) | MBTS_C.x(2) | MBTS_A.x(1)) & (MBTS_A.x(2) | MBTS_C.x(2) | MBTS_C.x(1)) - MBTS_1_1 = MBTS_A.x(1) & MBTS_C.x(1) - MBTS_2_2 = MBTS_A.x(2) & MBTS_C.x(2) - MBTS_3_3 = MBTS_A.x(3) & MBTS_C.x(3) - MBTS_4_4 = MBTS_A.x(4) & MBTS_C.x(4) - - LVL1MenuItem('L1_MBTS_1', ctpid=0xe2).setLogic( MBTS_1 & physcond ).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTS_2', ctpid=0xe3).setLogic( MBTS_2 & physcond ).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTS_1_1_OVERLAY', ctpid=0xe4).setLogic( MBTS_1_1 & physcond ).setTriggerType(TT.zerobs) - LVL1MenuItem('L1_MBTS_1_1', ctpid=0xe4).setLogic( MBTS_1_1 & physcond ).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTS_2_2' ).setLogic( MBTS_2_2 & physcond ).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTS_3_3' ).setLogic( MBTS_3_3 & physcond ).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTS_4_4', ctpid=0xe1).setLogic( MBTS_4_4 & physcond ).setTriggerType(TT.minb) - - LVL1MenuItem('L1_MBTS_1_EMPTY' ).setLogic( MBTS_1 & cosmiccond).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTS_2_EMPTY' ).setLogic( MBTS_2 & cosmiccond).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTS_1_1_EMPTY').setLogic( MBTS_1_1 & cosmiccond).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTS_2_2_EMPTY').setLogic( MBTS_2_2 & cosmiccond).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTS_3_3_EMPTY').setLogic( MBTS_3_3 & cosmiccond).setTriggerType(TT.minb) - - LVL1MenuItem('L1_MBTS_1_UNPAIRED_ISO' ).setLogic( MBTS_1 & unpaired_isocond ).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTS_1_UNPAIRED_NONISO').setLogic( MBTS_1 & unpaired_nonisocond ).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTS_2_UNPAIRED_ISO' ).setLogic( MBTS_2 & unpaired_isocond ).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTS_2_UNPAIRED_NONISO').setLogic( MBTS_2 & unpaired_nonisocond ).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTS_2_BGRP7' ).setLogic( MBTS_2 & bgrp7cond ).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTS_1_1_UNPAIRED_ISO' ).setLogic( MBTS_1_1 & unpaired_isocond ).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTS_2_2_UNPAIRED_ISO' ).setLogic( MBTS_2_2 & unpaired_isocond ).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTS_3_3_UNPAIRED_ISO' ).setLogic( MBTS_3_3 & unpaired_isocond ).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTS_4_4_UNPAIRED_ISO' ).setLogic( MBTS_4_4 & unpaired_isocond ).setTriggerType(TT.minb) - - LVL1MenuItem('L1_MBTSA0' ).setLogic( MBTS_A0.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTSA1' ).setLogic( MBTS_A1.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTSA2' ).setLogic( MBTS_A2.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTSA3' ).setLogic( MBTS_A3.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTSA4' ).setLogic( MBTS_A4.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTSA5' ).setLogic( MBTS_A5.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTSA6' ).setLogic( MBTS_A6.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTSA7' ).setLogic( MBTS_A7.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTSA8' ).setLogic( MBTS_A8.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTSA9' ).setLogic( MBTS_A9.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTSA10').setLogic( MBTS_A10.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTSA11').setLogic( MBTS_A11.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTSA12').setLogic( MBTS_A12.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTSA13').setLogic( MBTS_A13.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTSA14').setLogic( MBTS_A14.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTSA15').setLogic( MBTS_A15.x(1) & physcond).setTriggerType(TT.minb) - - LVL1MenuItem('L1_MBTSC0' ).setLogic( MBTS_C0.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTSC1' ).setLogic( MBTS_C1.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTSC2' ).setLogic( MBTS_C2.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTSC3' ).setLogic( MBTS_C3.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTSC4' ).setLogic( MBTS_C4.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTSC5' ).setLogic( MBTS_C5.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTSC6' ).setLogic( MBTS_C6.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTSC7' ).setLogic( MBTS_C7.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTSC8' ).setLogic( MBTS_C8.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTSC9' ).setLogic( MBTS_C9.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTSC10').setLogic( MBTS_C10.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTSC11').setLogic( MBTS_C11.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTSC12').setLogic( MBTS_C12.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTSC13').setLogic( MBTS_C13.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTSC14').setLogic( MBTS_C14.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_MBTSC15').setLogic( MBTS_C15.x(1) & physcond).setTriggerType(TT.minb) - - - # ZDC - - LVL1MenuItem('L1_ZDC' ).setLogic((ZDC_A.x(1)|ZDC_C.x(1)) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_ZDC_EMPTY' ).setLogic((ZDC_A.x(1)|ZDC_C.x(1))&cosmiccond).setTriggerType(TT.minb) - LVL1MenuItem('L1_ZDC_UNPAIRED_ISO' ).setLogic((ZDC_A.x(1)|ZDC_C.x(1))&unpaired_isocond).setTriggerType(TT.minb) - LVL1MenuItem('L1_ZDC_UNPAIRED_NONISO' ).setLogic((ZDC_A.x(1)|ZDC_C.x(1))&unpaired_nonisocond).setTriggerType(TT.minb) - LVL1MenuItem('L1_ZDC_A_C' ).setLogic(ZDC_A.x(1)&ZDC_C.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_ZDC_A_C_EMPTY' ).setLogic(ZDC_A.x(1)&ZDC_C.x(1)&cosmiccond).setTriggerType(TT.minb) - LVL1MenuItem('L1_ZDC_A_C_UNPAIRED_ISO' ).setLogic(ZDC_A.x(1)&ZDC_C.x(1)&unpaired_isocond).setTriggerType(TT.minb) - LVL1MenuItem('L1_ZDC_A_C_UNPAIRED_NONISO' ).setLogic(ZDC_A.x(1)&ZDC_C.x(1)&unpaired_nonisocond).setTriggerType(TT.minb) - LVL1MenuItem('L1_ZDC_A' ).setLogic(ZDC_A.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_ZDC_C' ).setLogic(ZDC_C.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_ZDC_AND' ).setLogic(ZDC_AND.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_ZDC_A_VTE20' ).setLogic(ZDC_A.x(1)&Not( TE20.x(1)) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_ZDC_C_VTE20' ).setLogic(ZDC_C.x(1)&Not( TE20.x(1)) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_ZDC_A_BGRP7' ).setLogic(ZDC_A.x(1)&bgrp7cond).setTriggerType(TT.minb) - LVL1MenuItem('L1_ZDC_C_BGRP7' ).setLogic(ZDC_C.x(1)&bgrp7cond).setTriggerType(TT.minb) - LVL1MenuItem('L1_ZDC_MBTS_1' ).setLogic((ZDC_A.x(1)|ZDC_C.x(1))&( MBTS_A.x(1)| MBTS_C.x(1)) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_ZDC_MBTS_2' ).setLogic((ZDC_A.x(1)|ZDC_C.x(1))&\ - ( MBTS_A.x(2)| MBTS_C.x(2)| MBTS_A.x(1))\ - &( MBTS_A.x(2)| MBTS_C.x(2)| MBTS_C.x(1)) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_ZDC_MBTS_1_1' ).setLogic((ZDC_A.x(1)|ZDC_C.x(1))&( MBTS_A.x(1)& MBTS_C.x(1)) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_ZDC_MBTS_2_2' ).setLogic((ZDC_A.x(1)|ZDC_C.x(1))&( MBTS_A.x(2)& MBTS_C.x(2)) & physcond).setTriggerType(TT.minb) - - - # BCM - - LVL1MenuItem('L1_BCM_AC_CA_BGRP0',ctpid=0xe6 ).setLogic((BCM_AtoC.x(1)|BCM_CtoA.x(1))&BGRP0).setTriggerType(TT.minb) - LVL1MenuItem('L1_BCM_AC_CA_UNPAIRED_ISO' ).setLogic((BCM_AtoC.x(1)|BCM_CtoA.x(1))&unpaired_isocond).setTriggerType(TT.minb) - LVL1MenuItem('L1_BCM_AC_CA_UNPAIRED_NONISO' ).setLogic((BCM_AtoC.x(1)|BCM_CtoA.x(1))&unpaired_nonisocond).setTriggerType(TT.minb) - LVL1MenuItem('L1_BCM_HT_BGRP0', ctpid=0xf8 ).setLogic( BCM_Comb.x(7)&BGRP0).setTriggerType(TT.minb) - LVL1MenuItem('L1_BCM_Wide_BGRP0', ctpid=0xe8 ).setLogic( BCM_Wide.x(1)&BGRP0).setTriggerType(TT.minb) - LVL1MenuItem('L1_BCM_Wide_EMPTY' ).setLogic( BCM_Wide.x(1)&cosmiccond).setTriggerType(TT.minb) - LVL1MenuItem('L1_BCM_Wide_UNPAIRED_ISO' ).setLogic( BCM_Wide.x(1)&unpaired_isocond).setTriggerType(TT.minb) - LVL1MenuItem('L1_BCM_Wide_UNPAIRED_NONISO' ).setLogic( BCM_Wide.x(1)&unpaired_nonisocond).setTriggerType(TT.minb) - - - # LUCID - - LVL1MenuItem('L1_LUCID_C', ctpid=0xed ).setLogic( LUCID_C.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_LUCID_A', ctpid=0xec ).setLogic( LUCID_A.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_LUCID_A_C', ctpid=0xee ).setLogic( LUCID_A.x(1)&LUCID_C.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_LUCID', ctpid=0xf5 ).setLogic( (LUCID_A.x(1)|LUCID_C.x(1)) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_LUCID_BGRP7' ).setLogic( (LUCID_A.x(1)|LUCID_C.x(1))&bgrp7cond).setTriggerType(TT.minb) - LVL1MenuItem('L1_LUCID_COMM' ).setLogic( NIMDIR5.x(1) & physcond).setTriggerType(TT.minb) - LVL1MenuItem('L1_LUCID_A_C_EMPTY' ).setLogic( LUCID_A.x(1)&LUCID_C.x(1)&cosmiccond).setTriggerType(TT.minb) - LVL1MenuItem('L1_LUCID_EMPTY' ).setLogic( (LUCID_A.x(1)|LUCID_C.x(1))&cosmiccond).setTriggerType(TT.minb) - LVL1MenuItem('L1_LUCID_UNPAIRED_ISO' ).setLogic( (LUCID_A.x(1)|LUCID_C.x(1))&unpaired_isocond).setTriggerType(TT.minb) - LVL1MenuItem('L1_LUCID_UNPAIRED_NONISO' ).setLogic( (LUCID_A.x(1)|LUCID_C.x(1))&unpaired_nonisocond).setTriggerType(TT.minb) - LVL1MenuItem('L1_LUCID_COMM_EMPTY' ).setLogic( NIMDIR5.x(1)&cosmiccond).setTriggerType(TT.minb) - LVL1MenuItem('L1_LUCID_COMM_UNPAIRED_ISO' ).setLogic( NIMDIR5.x(1)&unpaired_isocond).setTriggerType(TT.minb) - LVL1MenuItem('L1_LUCID_A_C_UNPAIRED_ISO' ).setLogic( LUCID_A.x(1)&LUCID_C.x(1)&unpaired_isocond).setTriggerType(TT.minb) - LVL1MenuItem('L1_LUCID_A_C_UNPAIRED_NONISO').setLogic( LUCID_A.x(1)&LUCID_C.x(1)&unpaired_nonisocond).setTriggerType(TT.minb) - - - # RANDOM - - LVL1MenuItem('L1_RD0_FILLED' ).setLogic( RNDM0 & physcond ).setTriggerType(TT.rand) - LVL1MenuItem('L1_RD0_EMPTY' ).setLogic( RNDM0 & cosmiccond ).setTriggerType(TT.rand) - LVL1MenuItem('L1_RD0_FIRSTEMPTY' ).setLogic( RNDM0 & firstempty ).setTriggerType(TT.rand) - LVL1MenuItem('L1_RD0_UNPAIRED_ISO' ).setLogic( RNDM0 & unpaired_isocond ).setTriggerType(TT.rand) - LVL1MenuItem('L1_RD0_UNPAIRED_NONISO').setLogic( RNDM0 & unpaired_nonisocond).setTriggerType(TT.rand) - LVL1MenuItem('L1_RD1_FILLED' ).setLogic( RNDM1 & physcond ).setTriggerType(TT.rand) - LVL1MenuItem('L1_RD1_EMPTY' ).setLogic( RNDM1 & cosmiccond ).setTriggerType(TT.zerobs) - - - # Bunch groups - - LVL1MenuItem('L1_BGRP1').setLogic(BGRP0 & BGRP1).setTriggerType(TT.rand) - LVL1MenuItem('L1_BGRP7').setLogic(BGRP0 & BGRP7).setTriggerType(TT.rand) - LVL1MenuItem('L1_BGRP1_ALFA_BGT').setLogic(BGRP0 & BGRP1).setTriggerType(TT.rand) - LVL1MenuItem('L1_BGRP4_ALFA_BGT').setLogic(BGRP0 & BGRP4).setTriggerType(TT.rand) - LVL1MenuItem('L1_BGRP7_ALFA_BGT').setLogic(BGRP0 & BGRP7).setTriggerType(TT.rand) - LVL1MenuItem('L1_BPTX0_BGRP0', ctpid=0xf1).setLogic(BPTX0.x(1)&BGRP0).setTriggerType(TT.rand) - LVL1MenuItem('L1_BPTX1_BGRP0', ctpid=0xf2).setLogic(BPTX1.x(1)&BGRP0).setTriggerType(TT.rand) - - - # Direct inputs [0x50:0x5f] - #LVL1MenuItem('L1_LHCF', ctpid=-1).setLogic( (NIMDIR36.x(1) & physcond)).setTriggerType(TT.minb) - LVL1MenuItem('L1_LHCF', ctpid=-1).setLogic( (NIMDIR36.x(1) & physcond)) - - - - LVL1MenuItem('L1_ALFA_EMPTY').setLogic( NIM_ALFA_LOG.x(1) & cosmiccond).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_BGRP7').setLogic( NIM_ALFA_LOG.x(1) & bgrp7cond).setTriggerType(TT.rpcout) - - LVL1MenuItem('L1_ALFA_EMPTY_OD', ctpid=-1).setLogic( NIM_ALFA_LOG_OD.x(1)&cosmiccond).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_BGRP7_OD', ctpid=-1).setLogic( NIM_ALFA_LOG_OD.x(1)&bgrp7cond).setTriggerType(TT.rpcout) - - - LVL1MenuItem('L1_TRT', ctpid=0x4e).setLogic(NIMDIR25.x(1)&BGRP0).setTriggerType(TT.rpcout) - - LVL1MenuItem('L1_L1A_Mon', ctpid=0x4f).setLogic(NIMDIR26.x(1)&BGRP0).setTriggerType(TT.rpcout) - - LVL1MenuItem('L1_CALREQ0', ctpid=0xfd).setLogic( NIM28.x(1) & calibcond).setTriggerType(TT.calreq0) - LVL1MenuItem('L1_CALREQ1', ctpid=0xfe).setLogic( NIM29.x(1) & calibcond).setTriggerType(TT.calreq1) - LVL1MenuItem('L1_CALREQ2', ctpid=0xff).setLogic( NIM30.x(1) & calibcond).setTriggerType(TT.calreq2) - - - LVL1MenuItem('L1_NIM_S8C2B21').setLogic(NIMDIR6.x(1) & bgrpcond).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_NIM_S8C2B22').setLogic(NIMDIR7.x(1) & bgrpcond).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_NIM_S8C2B23').setLogic(NIMDIR8.x(1) & bgrpcond).setTriggerType(TT.rpcout) - - - - - # Alfa items - ARL = NIM_A7R1L.x(1) - ARU = NIM_A7R1U.x(1) - ALL = NIM_A7L1L.x(1) - ALU = NIM_A7L1U.x(1) - BRL = NIM_B7R1L.x(1) - BRU = NIM_B7R1U.x(1) - BLL = NIM_B7L1L.x(1) - BLU = NIM_B7L1U.x(1) - - # Elastics1 and 2 - LVL1MenuItem('L1_ALFA_ELAST1').setLogic( BLU & ALU & ARL & BRL & Not( BLL | ALL | ARU | BRU ) & physcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_ELAST2').setLogic( BLL & ALL & ARU & BRU & Not( BLU | ALU | ARL | BRL ) & physcond ).setTriggerType(TT.rpcout) - - # Elastics 11 - Elastics 18 - LVL1MenuItem('L1_ALFA_ELAST11').setLogic( BLU & ALU & ARL & BRL & physcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_ELAST12').setLogic( BLL & ALL & ARU & BRU & physcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_ELAST13').setLogic( ( BLU | ALU ) & ( ARL & BRL ) & physcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_ELAST14').setLogic( ( BLU & ALU ) & ( ARL | BRL ) & physcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_ELAST15').setLogic( ( BLU | ALU ) & ( ARL | BRL ) & physcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_ELAST16').setLogic( ( BLL | ALL ) & ( ARU & BRU ) & physcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_ELAST17').setLogic( ( BLL & ALL ) & ( ARU | BRU ) & physcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_ELAST18').setLogic( ( BLL | ALL ) & ( ARU | BRU ) & physcond ).setTriggerType(TT.rpcout) - - # Single_Diffraction 1 - 8 - LVL1MenuItem('L1_ALFA_SDIFF1').setLogic( BLU & ALU & Not( BLL | ALL | ARU | ARL | BRU | BRL ) & physcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_SDIFF2').setLogic( ARL & BRL & Not( BLU | BLL | ALU | ALL | ARU | BRU ) & physcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_SDIFF3').setLogic( BLL & ALL & Not( BLU | ALU | ARU | ARL | BRU | BRL ) & physcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_SDIFF4').setLogic( ARU & BRU & Not( BLU | BLL | ALU | ALL | ARL | BRL ) & physcond ).setTriggerType(TT.rpcout) - - LVL1MenuItem('L1_ALFA_SDIFF5').setLogic( BLU & ALU & physcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_SDIFF6').setLogic( ARL & BRL & physcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_SDIFF7').setLogic( BLL & ALL & physcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_SDIFF8').setLogic( ARU & BRU & physcond ).setTriggerType(TT.rpcout) - - # Big_showers 1 - 4 - LVL1MenuItem('L1_ALFA_SHOW1').setLogic( BLU & BLL & ALU & ALL & Not( ARU | ARL | BRU | BRL ) & physcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_SHOW2').setLogic( ARU & ARL & BRU & BRL & Not( BLU | BLL | ALU | ALL ) & physcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_SHOW3').setLogic( BLU & BLL & ALU & ALL & physcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_SHOW4').setLogic( ARU & ARL & BRU & BRL & physcond ).setTriggerType(TT.rpcout) - - # Systematics 1 - 4 - LVL1MenuItem('L1_ALFA_SYST1').setLogic( BLU & BLL & Not( ALU | ALL | ARU | ARL | BRU | BRL ) & physcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_SYST2').setLogic( ALU & ALL & Not( BLU | BLL | ARU | ARL | BRU | BRL ) & physcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_SYST3').setLogic( ARU & ARL & Not( BLU | BLL | ALU | ALL | BRU | BRL ) & physcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_SYST4').setLogic( BRU & BRL & Not( BLU | BLL | ALU | ALL | ARU | ARL ) & physcond ).setTriggerType(TT.rpcout) - - # Big_showers_Systematics 1 - 5 - LVL1MenuItem('L1_ALFA_SHOWSYST1').setLogic( BLU & BLL & physcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_SHOWSYST2').setLogic( ALU & ALL & physcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_SHOWSYST3').setLogic( ARU & ARL & physcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_SHOWSYST4').setLogic( BRU & BRL & physcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_SHOWSYST5').setLogic( ( BLU | BLL | ALU | ALL ) & ( ARU | ARL | BRU | BRL ) & physcond ).setTriggerType(TT.rpcout) - - # Systematics 9 - 12, 17, 18 - LVL1MenuItem('L1_ALFA_SYST9' ).setLogic( BLU & ALU & ARU & BRU & Not( BLL | ALL | ARL | BRL ) & physcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_SYST10').setLogic( BLL & ALL & ARL & BRL & Not( BLU | ALU | ARU | BRU ) & physcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_SYST11').setLogic( BLU & ALU & ARU & BRU & physcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_SYST12').setLogic( BLL & ALL & ARL & BRL & physcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_SYST17').setLogic( ( BLU | ALU ) & ( ARU | BRU ) & physcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_SYST18').setLogic( ( BLL | ALL ) & ( ARL | BRL ) & physcond ).setTriggerType(TT.rpcout) - - # ANY_ALFA = Minimum_Bias : B7L1U or B7L1L or A7L1U or A7L1L or A7R1U or A7R1L or B7R1U or B7R1L - ANY_ALFA = BLU | BLL | ALU | ALL | ARU | ARL | BRU | BRL - LVL1MenuItem('L1_ALFA_ANY' ).setLogic( ANY_ALFA & physcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_ANY_EMPTY' ).setLogic( ANY_ALFA & cosmiccond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_ANY_FIRSTEMPTY' ).setLogic( ANY_ALFA & firstempty ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_ANY_UNPAIRED_ISO' ).setLogic( ANY_ALFA & unpaired_isocond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_ANY_UNPAIRED_NONISO').setLogic( ANY_ALFA & unpaired_nonisocond ).setTriggerType(TT.rpcout) - - #--------------------------------- - # new ALFA items for 2012 running: - #--------------------------------- - ARL_OD = NIM_A7R1L_OD.x(1) - ARU_OD = NIM_A7R1U_OD.x(1) - ALL_OD = NIM_A7L1L_OD.x(1) - ALU_OD = NIM_A7L1U_OD.x(1) - BRL_OD = NIM_B7R1L_OD.x(1) - BRU_OD = NIM_B7R1U_OD.x(1) - BLL_OD = NIM_B7L1L_OD.x(1) - BLU_OD = NIM_B7L1U_OD.x(1) - - LVL1MenuItem('L1_ALFA_A7L1U').setLogic( ALU & BGRP0 ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_A7L1L').setLogic( ALL & BGRP0 ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_A7R1U').setLogic( ARU & BGRP0 ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_A7R1L').setLogic( ARL & BGRP0 ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_B7L1U').setLogic( BLU & BGRP0 ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_B7L1L').setLogic( BLL & BGRP0 ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_B7R1U').setLogic( BRU & BGRP0 ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_B7R1L').setLogic( BRL & BGRP0 ).setTriggerType(TT.rpcout) - - LVL1MenuItem('L1_ALFA_A7L1U_OD').setLogic( ALU_OD & BGRP0 ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_A7L1L_OD').setLogic( ALL_OD & BGRP0 ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_B7L1U_OD').setLogic( BLU_OD & BGRP0 ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_B7L1L_OD').setLogic( BLL_OD & BGRP0 ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_A7R1U_OD').setLogic( ARU_OD & BGRP0 ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_A7R1L_OD').setLogic( ARL_OD & BGRP0 ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_B7R1U_OD').setLogic( BRU_OD & BGRP0 ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_B7R1L_OD').setLogic( BRL_OD & BGRP0 ).setTriggerType(TT.rpcout) - - LVL1MenuItem('L1_ALFA_B7L1_OD').setLogic( ( BLU_OD & BLL_OD ) & BGRP0 ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_A7L1_OD').setLogic( ( ALU_OD & ALL_OD ) & BGRP0 ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_A7R1_OD').setLogic( ( ARU_OD & ARL_OD ) & BGRP0 ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_B7R1_OD').setLogic( ( BRU_OD & BRL_OD ) & BGRP0 ).setTriggerType(TT.rpcout) - - LVL1MenuItem('L1_ALFA_B1_EMPTY').setLogic( ( BLU | BLL | ALU | ALL ) & cosmiccond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ALFA_B2_EMPTY').setLogic( ( ARU | ARL | BRU | BRL ) & cosmiccond ).setTriggerType(TT.rpcout) - - # ALFA and MBTS - LVL1MenuItem('L1_MBTS_2_A_ALFA_C').setLogic( MBTS_A.x(2) & (( ARU & BRU ) | ( ARL & BRL )) & bgrpcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_MBTS_2_C_ALFA_A').setLogic( MBTS_C.x(2) & (( ALU & BLU ) | ( ALL & BLL )) & bgrpcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_MBTS_2_ALFA').setLogic( MBTS_2 & ANY_ALFA & bgrpcond ).setTriggerType(TT.rpcout) - - LVL1MenuItem('L1_MBTS_2_A_ALFA_C_UNPAIRED_ISO').setLogic( MBTS_A.x(2) & ((ARU & BRU) | (ARL & BRL)) & unpaired_isocond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_MBTS_2_C_ALFA_A_UNPAIRED_ISO').setLogic( MBTS_C.x(2) & ((ALU & BLU) | (ALL & BLL)) & unpaired_isocond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_MBTS_2_ALFA_UNPAIRED_ISO' ).setLogic( MBTS_2 & ANY_ALFA & unpaired_isocond ).setTriggerType(TT.rpcout) - - LVL1MenuItem('L1_MBTS_1_A_ALFA_C').setLogic( MBTS_A.x(1) & ((ARU & BRU) | (ARL & BRL)) & bgrpcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_MBTS_1_C_ALFA_A').setLogic( MBTS_C.x(1) & ((ALU & BLU) | (ALL & BLL)) & bgrpcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_MBTS_1_A_ALFA_C_UNPAIRED_ISO').setLogic( MBTS_A.x(1) & ((ARU & BRU) | (ARL & BRL)) & unpaired_isocond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_MBTS_1_C_ALFA_A_UNPAIRED_ISO').setLogic( MBTS_C.x(1) & ((ALU & BLU) | (ALL & BLL)) & unpaired_isocond ).setTriggerType(TT.rpcout) - - # ALFA and LUCID - LVL1MenuItem('L1_LUCID_A_ALFA_C').setLogic( LUCID_A.x(1) & ((ARU & BRU) | (ARL & BRL)) & bgrpcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_LUCID_C_ALFA_A').setLogic( LUCID_C.x(1) & ((ALU & BLU) | (ALL & BLL)) & bgrpcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_LUCID_A_ALFA_C_UNPAIRED_ISO').setLogic( LUCID_A.x(1) & ((ARU & BRU) | (ARL & BRL)) & unpaired_isocond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_LUCID_C_ALFA_A_UNPAIRED_ISO').setLogic( LUCID_C.x(1) & ((ALU & BLU) | (ALL & BLL)) & unpaired_isocond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_LUCID_ALFA').setLogic( (LUCID_A.x(1) | LUCID_C.x(1)) & ANY_ALFA & bgrpcond ).setTriggerType(TT.rpcout) - - # ALFA and ZDC - LVL1MenuItem('L1_ZDC_A_ALFA_C').setLogic( ZDC_A.x(1) & ((ARU & BRU) | (ARL & BRL)) & bgrpcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ZDC_C_ALFA_A').setLogic( ZDC_C.x(1) & ((ALU & BLU) | (ALL & BLL)) & bgrpcond ).setTriggerType(TT.rpcout) - LVL1MenuItem('L1_ZDC_ALFA').setLogic( (ZDC_A.x(1) | ZDC_C.x(1)) & ANY_ALFA & bgrpcond ).setTriggerType(TT.rpcout) - - # new combined ALFA items for 2012 running - LVL1MenuItem('L1_EM3_ALFA_ANY' ).setLogic( EM3.x(1) & ANY_ALFA & physcond ).setTriggerType( TT.calo | TT.caloem | TT.rpcout) - LVL1MenuItem('L1_EM3_ALFA_MBTS_A').setLogic( EM3.x(1) & MBTS_A.x(1) & ((BRU & ARU) | (BRL & ARL)) & physcond).setTriggerType( TT.calo | TT.caloem | TT.minb | TT.rpcout) - LVL1MenuItem('L1_EM3_ALFA_MBTS_C').setLogic( EM3.x(1) & MBTS_C.x(1) & ((BLU & ALU) | (BLL & ALL)) & physcond).setTriggerType( TT.calo | TT.caloem | TT.minb | TT.rpcout) - - LVL1MenuItem('L1_EM3_ALFA_ANY_UNPAIRED_ISO' ).setLogic( EM3.x(1) & ANY_ALFA & unpaired_isocond).setTriggerType( TT.calo | TT.caloem | TT.rpcout) - LVL1MenuItem('L1_EM3_ALFA_MBTS_C_UNPAIRED_ISO').setLogic( EM3.x(1) & MBTS_C.x(1) & ((BLU & ALU) | (BLL & ALL)) & unpaired_isocond).setTriggerType( TT.calo | TT.caloem | TT.minb | TT.rpcout) - LVL1MenuItem('L1_EM3_ALFA_MBTS_A_UNPAIRED_ISO').setLogic( EM3.x(1) & MBTS_A.x(1) & ((BRU & ARU) | (BRL & ARL)) & unpaired_isocond).setTriggerType( TT.calo | TT.caloem | TT.minb | TT.rpcout) - - - LVL1MenuItem('L1_TOPO_DPHI', ctpid=300).setLogic( TOPO_DPHI.x(1) & physcond).setTriggerType( TT.calo ) - - - # ======================================================= - - LVL1MenuItem.currentPartition = 1 - LVL1MenuItem.l1configForRegistration = None diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/LVL1MenuConfig/LVL1Menu/L1Seeds.py b/Trigger/TriggerCommon/TriggerMenuMT/python/LVL1MenuConfig/LVL1Menu/L1Seeds.py index af77952935900dd4caae9fe05274e3843c819336..cee0b67842ad89ecb2324c757af06ce40a3dcb49 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/LVL1MenuConfig/LVL1Menu/L1Seeds.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/LVL1MenuConfig/LVL1Menu/L1Seeds.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration from AthenaCommon.Logging import logging log = logging.getLogger("TriggerMenuMT.LVL1MenuConfig.L1Seeds") @@ -12,7 +12,7 @@ from TriggerMenuMT.LVL1MenuConfig.LVL1.Lvl1Flags import Lvl1Flags run1 = Lvl1Flags.CTPVersion()<=3 if run1: - from TriggerMenu.l1.TriggerTypeDefRun1 import TT + from TriggerMenuMT.LVL1MenuConfig.LVL1.TriggerTypeDefRun1 import TT rpcout_type = TT.rpcout | TT.phys rpcin_type = TT.rpcin | TT.phys else: diff --git a/Trigger/TriggerCommon/TriggerMenuMT/scripts/generateMenuMT.py b/Trigger/TriggerCommon/TriggerMenuMT/scripts/generateMenuMT.py deleted file mode 100644 index c98b0ae0c8cec78fb52f3ff326cd241d834dabbe..0000000000000000000000000000000000000000 --- a/Trigger/TriggerCommon/TriggerMenuMT/scripts/generateMenuMT.py +++ /dev/null @@ -1,42 +0,0 @@ -# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration - -# import flags -doWriteRDOTrigger = False -doWriteBS = False -include("TriggerJobOpts/runHLT_standalone.py") # noqa: F821 - -################################# -# Configure L1Decoder -################################# - -# provide a minimal menu information -from AthenaCommon.GlobalFlags import globalflags -from AthenaCommon.AlgSequence import AlgSequence -topSequence = AlgSequence() -if globalflags.InputFormat.is_bytestream(): - from AthenaCommon.Constants import DEBUG - topSequence.L1Decoder.ctpUnpacker.OutputLevel=DEBUG # noqa: ATL900 - - - -# this is a temporary hack to include new test chains -# very hacky indeed, the L1 part should be in in the GenerateMenuMT part - -from TriggerJobOpts.TriggerFlags import TriggerFlags -TriggerFlags.triggerMenuSetup = "LS2_v1" - -from TriggerMenuMT.HLTMenuConfig.Menu.GenerateMenuMT import GenerateMenuMT -g = GenerateMenuMT() - - - - - -########################################## -# Menu and CF construction -########################################## -g.generateMT() - - - - diff --git a/Trigger/TriggerCommon/TriggerMenuMT/scripts/testMenuMT.sh b/Trigger/TriggerCommon/TriggerMenuMT/scripts/testMenuMT.sh deleted file mode 100755 index c26ea2bbdf29e7c550167f8ee7616260378954c6..0000000000000000000000000000000000000000 --- a/Trigger/TriggerCommon/TriggerMenuMT/scripts/testMenuMT.sh +++ /dev/null @@ -1,82 +0,0 @@ -#!/usr/bin/env sh - -help() { - echo "Syntax: testMenuMT.sh [-r VERSION] MENU [DEST]" -} - -if [ $# -lt 1 ]; then - help - exit 0 -fi - -while true; do - case "$1" in - -r) - release=$2 - shift 2 - ;; - -h) - help - exit 0 - ;; - -*) - echo "Invalid parameter" - exit 1 - ;; - *) - break - esac -done - -menu=$1 -dest=$2 -if [ -z "$dest" ]; then - dest=$PWD -fi - -# Get absolute path name -dest=`cd $dest; pwd` - -if [ -z "$release" ]; then - release=${AtlasVersion} # for interactive use -fi - -# Temporary run directroy and cleanup traps in case of termination -rundir=`mktemp -t -d tmxml.${menu}.XXXXXXXXXX` -TRAPINT() { - rm -rf $rundir - return 130 # 128+SIGINT -} -TRAPTERM() { - rm -rf $rundir - return 143 # 128+SIGTERM -} - - -## menu generation starts here -echo "generateHLTMenuMT: Building menu: ${menu} for ${release}" -logfiletopo=topo${menu}.log -logfilelvl1=lvl1${menu}.log -logfilehlt=hlt${menu}.log -cd $rundir - -generateLVL1MenuMT.py $menu &> $logfiletopo -generateL1TopoMenuMT.py $menu &> $logfilelvl1 -generateMenuMT.py $menu &> $logfilehlt - -cp L1Topoconfig_*.xml ${dest} -cp LVL1config_*.xml ${dest} -#cp $logfilelvl1 $logfiletopo ${dest} - -if [[ -e outputLVL1config.xml ]]; then - cp outputLVL1config.xml ${dest}/LVL1config_${menu}_${release}.xml -fi - -#this gives some more sensitivity to hidden problems -grep --colour ERROR ${dest}/$logfile -grep --colour -A 100 "Shortened traceback" ${dest}/$logfile - -rm -rf $rundir - -# Do not return real athena exit code as we want to pretend everything was fine -#unset PYTHONDONTWRITEBYTECODE diff --git a/Trigger/TriggerCommon/TriggerMenuMT/scripts/test_HLTmenu.sh b/Trigger/TriggerCommon/TriggerMenuMT/scripts/test_HLTmenu.sh index bce1f232c39ffb24e91e73423ebffe21e662e314..1dd24c210961f334a335cf5d872a8e5934a4f7b2 100755 --- a/Trigger/TriggerCommon/TriggerMenuMT/scripts/test_HLTmenu.sh +++ b/Trigger/TriggerCommon/TriggerMenuMT/scripts/test_HLTmenu.sh @@ -2,6 +2,6 @@ set -e -athena --config-only=config.pkl -l DEBUG --threads=1 --skipEvents=10 --evtMax=20 --filesInput="/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TrigP1Test/data17_13TeV.00327265.physics_EnhancedBias.merge.RAW._lb0100._SFO-1._0001.1" TriggerMenuMT/generateMT.py; +athena --config-only=config.pkl --threads=1 --filesInput="/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TrigP1Test/data17_13TeV.00327265.physics_EnhancedBias.merge.RAW._lb0100._SFO-1._0001.1" -c "setMenu='LS2_v1'" TriggerJobOpts/runHLT_standalone.py verify_menu_config.py -f $PWD || { echo "ERROR: Menu verification failed" ; exit 1; } diff --git a/Trigger/TriggerCommon/TriggerMenuMT/share/full_menu_cf.py b/Trigger/TriggerCommon/TriggerMenuMT/share/full_menu_cf.py index 67529e23aa56629f39f4fdabcfb3347b42778615..b76dd9b1d0616fa0fe3f9bc2bea072f9deaa9b20 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/share/full_menu_cf.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/share/full_menu_cf.py @@ -13,14 +13,14 @@ ########################################## def generateChains(): - from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import Chain, ChainStep, RecoFragmentsPool + from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import RecoFragmentsPool from DecisionHandling.TestUtils import makeChain, makeChainStep testChains = [] ################################################################## # egamma chains ################################################################## - if opt.doEgammaSlice == True: + if opt.doEgammaSlice is True: from TriggerMenuMT.HLTMenuConfig.Egamma.ElectronDef import electronFastCaloCfg, fastElectronSequenceCfg, precisionCaloSequenceCfg fastCaloSeq = RecoFragmentsPool.retrieve( electronFastCaloCfg, None ) electronSeq = RecoFragmentsPool.retrieve( fastElectronSequenceCfg, None ) @@ -56,7 +56,7 @@ def generateChains(): ################################################################## # muon chains ################################################################## - if opt.doMuonSlice == True: + if opt.doMuonSlice is True: from TriggerMenuMT.HLTMenuConfig.Muon.MuonSequenceSetup import muFastSequence, muCombSequence, muEFSASequence, muEFCBSequence, muEFSAFSSequence, muEFCBFSSequence MuonChains = [] @@ -87,19 +87,12 @@ def generateChains(): step1_2mufast_sym= makeChainStep("Step1_2muFast_sym", [ mufastS], multiplicity=[2]) step2_2muComb_sym= makeChainStep("Step2_2muComb_sym", [ mucombS], multiplicity=[2]) - step3_2muEFSA_sym= makeChainStep("Step3_2muEFSA_sym", [ muEFSAS], multiplicity=[2]) - step4_2muEFCB_sym= makeChainStep("Step4_2muEFCB_sym", [ muEFCBS], multiplicity=[2]) - MuonChains += [ makeChain(name='HLT_2mu6Comb_L12MU6', L1Thresholds=["MU6"], ChainSteps=[ step1_2mufast_sym, step2_2muComb_sym ])] # 2muons asymmetric (this will change): 2 sequences, 2 seeds step1_2mufast_asym= makeChainStep("Step1_2muFast_asym", [ mufastS, mufastS], multiplicity=[1,1]) step2_2muComb_asym= makeChainStep("Step1_2muComb_asym", [ mucombS, mucombS], multiplicity=[1,1]) - step3_2muEFSA_asym= makeChainStep("Step3_2muEFSA_asym", [ muEFSAS, muEFSAS], multiplicity=[1,1]) - step4_2muEFCB_asym= makeChainStep("Step4_2muEFCB_asym", [ muEFCBS, muEFCBS], multiplicity=[1,1]) - - MuonChains += [ makeChain(name='HLT_mu6_mu4_L12MU4', L1Thresholds=["MU4", "MU6"], ChainSteps=[ step1_2mufast_asym, step2_2muComb_asym ])] @@ -135,7 +128,7 @@ def generateChains(): from TriggerMenuMT.HLTMenuConfig.Jet.JetMenuSequences import jetTrackingHypoMenuSequence return jetTrackingHypoMenuSequence(ConfigFlags, clustersKey=clustersKey, **jetRecoDict) - if opt.doJetSlice == True: + if opt.doJetSlice is True: # small-R jets jetSeq_a4_tc_em = jetCaloHypoMenuSequenceFromString("a4_tc_em_subjesIS") @@ -177,7 +170,7 @@ def generateChains(): ################################################################## # bjet chains ################################################################## - if opt.doBjetSlice == True: + if opt.doBjetSlice is True: from TriggerMenuMT.HLTMenuConfig.Bjet.BjetSequenceSetup import getBJetSequence jetSeq_a4_tc_em_presel, emclusters = jetCaloPreselMenuSequenceFromString("a4_tc_em_subjesIS") @@ -198,7 +191,7 @@ def generateChains(): ################################################################## # tau chains ################################################################## - if opt.doTauSlice == True and False: + if opt.doTauSlice is True and False: # not working at the moment from TriggerMenuMT.HLTMenuConfig.Tau.TauMenuSequences import getTauSequence step1=makeChainStep("Step1_tau", [getTauSequence('calo')]) @@ -221,8 +214,7 @@ def generateChains(): ################################################################## # MET chains ################################################################## - if opt.doMETSlice == True: - from TriggerMenuMT.HLTMenuConfig.MET.METMenuSequences import metMenuSequence + if opt.doMETSlice is True: from TriggerMenuMT.HLTMenuConfig.MET.METChainConfiguration import extractMETRecoDict from TriggerMenuMT.HLTMenuConfig.MET.ConfigHelpers import AlgConfig @@ -250,7 +242,7 @@ def generateChains(): ################################################################## # B-physics and light states chains ################################################################## - if opt.doBphysicsSlice == True: + if opt.doBphysicsSlice is True: from TriggerMenuMT.HLTMenuConfig.Muon.MuonSequenceSetup import muFastSequence, muCombSequence, muEFSASequence, muEFCBSequence from TrigBphysHypo.TrigMultiTrkComboHypoConfig import DimuL2ComboHypoCfg, DimuEFComboHypoCfg @@ -273,14 +265,14 @@ def generateChains(): ################################################################## # combined chains ################################################################## - if opt.doCombinedSlice == True: + if opt.doCombinedSlice is True: from TriggerMenuMT.HLTMenuConfig.Egamma.ElectronDef import electronFastCaloCfg fastCaloSeq = RecoFragmentsPool.retrieve( electronFastCaloCfg, None ) from TriggerMenuMT.HLTMenuConfig.Muon.MuonSequenceSetup import muFastSequence comboStep_et_mufast = makeChainStep("Step1_et_mufast", [fastCaloSeq, muFastSequence()], multiplicity=[1,1]) - comboStep_mufast_etcut1_step1 = makeChainStep("Step1_mufast_etcut1", [muFastSequence(), fastCaloSeq], multiplicity=[1,1]) + # comboStep_mufast_etcut1_step1 = makeChainStep("Step1_mufast_etcut1", [muFastSequence(), fastCaloSeq], multiplicity=[1,1]) comboChains = [ makeChain(name='HLT_e3_etcut_mu6_L1EM8I_MU10', L1Thresholds=["EM8I", "MU10"], ChainSteps=[comboStep_et_mufast ])] # comboChains += [Chain(name='HLT_mu8fast_e8_etcut1step', ChainSteps=[ comboStep_mufast_etcut1_step1 ])] @@ -315,7 +307,5 @@ generateJSON() from TriggerMenuMT.HLTMenuConfig.Menu.HLTPrescaleJSON import generateJSON as generatePrescaleJSON generatePrescaleJSON() -from AthenaCommon.AlgSequence import dumpSequence, AthSequencer +from AthenaCommon.AlgSequence import dumpSequence dumpSequence(topSequence) - - diff --git a/Trigger/TriggerCommon/TriggerMenuMT/share/generateMT.py b/Trigger/TriggerCommon/TriggerMenuMT/share/generateMT.py deleted file mode 100755 index 9f5039fe5a8d35d0942a26ec1af5698299978df6..0000000000000000000000000000000000000000 --- a/Trigger/TriggerCommon/TriggerMenuMT/share/generateMT.py +++ /dev/null @@ -1,10 +0,0 @@ -# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration - -setMenu = "LS2_v1" -doWriteRDOTrigger = False -doWriteBS = False -endJobAfterGenerate = False -from TriggerJobOpts.TriggerFlags import TriggerFlags -TriggerFlags.generateMenuDiagnostics = True -include("TriggerJobOpts/runHLT_standalone.py") - diff --git a/Trigger/TriggerCommon/TriggerMenuMT/share/trigermenuMT_test.py b/Trigger/TriggerCommon/TriggerMenuMT/share/trigermenuMT_test.py deleted file mode 100644 index 9f64d82acfc6014771f18b52d797af877cf8cbff..0000000000000000000000000000000000000000 --- a/Trigger/TriggerCommon/TriggerMenuMT/share/trigermenuMT_test.py +++ /dev/null @@ -1,55 +0,0 @@ -# -# Minimal example to build a trigger menu -# -from TriggerMenuMT.LVL1MenuConfig.TriggerConfigLVL1 import TriggerConfigLVL1 -from TriggerMenuMT.LVL1MenuConfig.LVL1.Lvl1Flags import Lvl1Flags -from TriggerMenuMT.LVL1MenuConfig.LVL1.Lvl1MenuItems import LVL1MenuItem -from TriggerMenuMT.L1.Config.TriggerTypeDef import TT -from TriggerMenuMT.LVL1MenuConfig.LVL1.Lvl1Condition import ThrCondition, Lvl1InternalTrigger -from TriggerMenuMT.L1.Base.Logic import Logic - -# Define L1 menu thresholds and items -Lvl1Flags.RemapThresholdsAsListed = True -Lvl1Flags.thresholds = ['EM3','MU4'] -Lvl1Flags.items = ['L1_EM3','L1_MU4'] - -l1menu = TriggerConfigLVL1( outputFile = 'l1menu.xml', - menuName = 'menutest', - topoMenu = None ) - -LVL1MenuItem.l1configForRegistration = l1menu - -# Register L1 menu -bgrp = Logic(Lvl1InternalTrigger('BGRP0')) & Logic(Lvl1InternalTrigger('BGRP1')) - -EM3 = l1menu.registerThr('EM3','EM').addThrValue(3) -LVL1MenuItem('L1_EM3' ).setLogic( ThrCondition(EM3) & bgrp ).setTriggerType( TT.calo ) - -MU4 = l1menu.registerThr('MU4','MUON').addThrValue(4) -LVL1MenuItem('L1_MU4' ).setLogic( ThrCondition(MU4) & bgrp ).setTriggerType( TT.muon ) - -# Generate and write L1 menu -l1menu.generateMenu() -l1menu.writeXML() - - -from TriggerMenu.menu.TriggerPythonConfig import TriggerPythonConfig -from TriggerMenu.menu.HLTObjects import HLTChain -hltmenu = TriggerPythonConfig('hltmenu.xml') - -from TrigSteeringTest.TrigSteeringTestConf import PESA__dummyAlgo -defalgo = PESA__dummyAlgo('Em3') -hltmenu.addSequence("EM3" , defalgo, "em3" ) - -chain = HLTChain( chain_name="HLT_e3", chain_counter="1", lower_chain_name="EM3", level = "HLT", prescale="1", pass_through="1") -chain.addHLTSignature( "em3" ).addHLTSignature( "em3" ) -chain.addTriggerTypeBit('4') -chain.addStreamTag('electrons', prescale='1', obeyLB="yes") -chain.addStreamTag('IDCalibration', prescale='1', obeyLB="no", type="calibration") -chain.addGroup("electrons") -hltmenu.addHLTChain(chain) - -hltmenu.writeConfigFiles(); - -import sys -sys.exit(0)