def findFreeCTPIDs(menu): from pickle import load f = open("L1Items.pickle","r") [menus,allItems,allThrs] = load(f) TF.triggerMenuSetup = menu tpcl1 = TriggerConfigLVL1( outputFile = TF.outputLVL1configFile() ) # noqa: F841 log.info(set(Lvl1Flags.CtpIdMap().keys()) - allItems)
def findUnneededRun2(): from TriggerJobOpts.TriggerFlags import TriggerFlags as TF from TriggerMenuMT.LVL1MenuConfig.LVL1.Lvl1Flags import Lvl1Flags menus = ['Physics_pp_v6'] for menu in menus: TF.triggerMenuSetup = menu tpcl1 = TriggerConfigLVL1() log.info(set(tpcl1.registeredItems.keys()) - set(Lvl1Flags.items()))
def generateLVL1(self): """ == Generates the LVL1 menu """ if not TriggerFlags.readLVL1configFromXML( ) and not TriggerFlags.readMenuFromTriggerDb(): log.info('Generating L1 configuration for %s', TriggerFlags.triggerMenuSetup()) from TriggerMenuMT.LVL1MenuConfig.TriggerConfigLVL1 import TriggerConfigLVL1 self.trigConfL1 = TriggerConfigLVL1( outputFile=TriggerFlags.outputLVL1configFile()) # build the menu structure self.trigConfL1.generateMenu() log.debug('Menu has %i items', len(self.trigConfL1.menu.items)) # write xml file self.trigConfL1.writeXML() elif TriggerFlags.readLVL1configFromXML(): log.info("ReadingLVL1cofnigFromXML currently not implemented") else: log.info("Doing nothing with L1 menu configuration...")
def findUnneededRun1(what="items"): from pickle import load f = open("L1Items.pickle","r") [menus,allItems,allThrs] = load(f) # the TPC for L1 tpcl1 = TriggerConfigLVL1( outputFile = TF.outputLVL1configFile() ) if what=="items": unneeded = sorted(list(set( tpcl1.registeredItems.keys() ) - allItems)) else: unneeded = sorted(list(set( tpcl1.registeredThresholds.keys() ) - allThrs)) log.info("==> unneeded %s:%d", what, len(unneeded)) import re p = re.compile('.*$') log.info([x for x in unneeded if p.match(x)])
def readL1MenuFromXML(menu="LVL1config_Physics_pp_v6.xml"): fullname = None if '/' in menu: fullname = menu import os for path in os.environ['XMLPATH'].split(':'): if 'TriggerMenuXML' not in os.listdir(path): continue if menu in os.listdir("%s/TriggerMenuXML/" % path): fullname = "%s/TriggerMenuXML/%s" % (path,menu) break # we only want to look into the first TriggerMenuXML package if fullname: tpcl1 = TriggerConfigLVL1( inputFile = fullname, outputFile = "test.xml" ) tpcl1.writeXML() return tpcl1.menu else: log.error("Did not find file %s", menu) return None
def generateL1Menu(menu): # what menu to build TF.triggerMenuSetup = menu # TPC for L1 tpcl1 = TriggerConfigLVL1( outputFile = TF.outputLVL1configFile() ) # build the menu structure tpcl1.generateMenu() # write xml file outfilename = tpcl1.writeXML() # consistency checker checkResult = os.system("get_files -xmls -symlink LVL1config.dtd > /dev/null") checkResult = os.system("xmllint --noout --dtdvalid LVL1config.dtd %s" % outfilename) if checkResult == 0: log.info("XML file %s is conform with LVL1config.dtd", outfilename) else: log.error("The XML does not follow the document type definition LVL1config.dtd") return tpcl1.menu
# 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()