예제 #1
0
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)
예제 #2
0
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()))
예제 #3
0
 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...")
예제 #4
0
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)])
예제 #5
0
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
예제 #6
0
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
예제 #7
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()