diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/runMenuTest.py b/Trigger/TrigValidation/TrigUpgradeTest/share/runMenuTest.py index 9bdc32c36004d9ec4f9a92a459324c05a0719385..ec93d83895705f63406c7146b13b341b904e81ee 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/share/runMenuTest.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/share/runMenuTest.py @@ -16,6 +16,7 @@ def signaturesToGenerate(): TriggerFlags.Slices_all_setOff() TriggerFlags.EgammaSlice.setAll() TriggerFlags.MuonSlice.setAll() + TriggerFlags.METSlice.setAll() # generate the Chains from the Menu Dictionary diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/runMenuTest.ref b/Trigger/TrigValidation/TrigUpgradeTest/share/runMenuTest.ref index 32f9d6da3b6b3305ab50028ff0254e3f3c57b3cc..3d4b4067f1859857366c4431c45ce63fe2f980f9 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/share/runMenuTest.ref +++ b/Trigger/TrigValidation/TrigUpgradeTest/share/runMenuTest.ref @@ -1,7 +1,7 @@ IOVSvcTool 8 0 FATAL Cannot update Conditions via callback functions in MT after the first event TrigSignatureMoniMT INFO Chains passing step (1st row events & 2nd row decision counts TrigSignatureMoniMT INFO Chain name L1, AfterPS, [... steps ...], Output -TrigSignatureMoniMT INFO All 20 20 0 0 0 0 19 +TrigSignatureMoniMT INFO All 20 20 0 0 0 0 20 TrigSignatureMoniMT INFO HLT_2mu6Comb_L1MU6 20 20 0 0 0 0 0 TrigSignatureMoniMT INFO HLT_2mu6Comb_L1MU6 decisions 0 0 0 0 TrigSignatureMoniMT INFO HLT_2mu6_L1MU6 20 20 0 0 0 0 0 @@ -24,3 +24,7 @@ TrigSignatureMoniMT INFO HLT_mu6fast_L1MU6 TrigSignatureMoniMT INFO HLT_mu6fast_L1MU6 decisions 3 0 0 0 TrigSignatureMoniMT INFO HLT_mu6noL1_L1MU6 20 20 4 0 0 0 0 TrigSignatureMoniMT INFO HLT_mu6noL1_L1MU6 decisions 6 0 0 0 +TrigSignatureMoniMT INFO HLT_xe30_cell_L1XE10 20 20 12 0 0 0 12 +TrigSignatureMoniMT INFO HLT_xe30_cell_L1XE10 decisions 12 0 0 0 +TrigSignatureMoniMT INFO HLT_xe65_cell_L1XE50 20 20 3 0 0 0 3 +TrigSignatureMoniMT INFO HLT_xe65_cell_L1XE50 decisions 3 0 0 0 \ No newline at end of file diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MET/MetDef.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MET/MetDef.py new file mode 100644 index 0000000000000000000000000000000000000000..af329787a669f4d62717fca6b140eb4bef35ad75 --- /dev/null +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MET/MetDef.py @@ -0,0 +1,71 @@ +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + +from AthenaCommon.Logging import logging +logging.getLogger().info("Importing %s",__name__) +log = logging.getLogger("TriggerMenuMT.HLTMenuConfig.Met.MetDef") + + +from TriggerMenuMT.HLTMenuConfig.Menu.ChainConfigurationBase import ChainConfigurationBase +from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import ChainStep + +from TriggerMenuMT.HLTMenuConfig.MET.metMenuDefs import metCellMenuSequence # still needs to be created/renamed metsecquencesetup + +#---------------------------------------------------------------- +# fragments generating configuration will be functions in New JO, +# so let's make them functions already now +#---------------------------------------------------------------- + + +def MetCellSequenceCfg( flags ): + return metCellMenuSequence() + + + +#---------------------------------------------------------------- +# Class to configure chain +#---------------------------------------------------------------- +class MetChainConfiguration(ChainConfigurationBase): + + def __init__(self, chainDict): + ChainConfigurationBase.__init__(self,chainDict) + + # ---------------------- + # Assemble the chain depending on information from chainName + # ---------------------- + def assembleChain(self): + MetStepNames = [] + chainSteps = [] + log.debug("Assembling chain for " + self.chainName) + # -------------------- + # define here the names of the steps and obtain the chainStep configuration + # -------------------- + + if 'cell' in self.chainPart['EFrecoAlg']: + + MetStepNames += ["Step1_met_cell"] + for step in MetStepNames: + chainSteps += [self.getMetCellStep(step)] + else: + raise RuntimeError("Chain configuration unknown for chain: " + self.chainName ) + + myChain = self.buildChain(chainSteps) + return myChain + + # -------------------- + # Configuration of cell chain + # -------------------- + def getMetCellStep(self, stepName): + if stepName == "Step1_met_cell": + log.debug("Configuring step " + stepName) + metCellSeq = metCellMenuSequence() + chainStep =ChainStep(stepName, [metCellSeq]) + else: + raise RuntimeError("chainStepName unknown: " + stepName ) + + log.debug("Returning chainStep from getMetCellStep function: " + stepName) + return chainStep + + + + + diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MET/generateMETChainDefs.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MET/generateMETChainDefs.py new file mode 100644 index 0000000000000000000000000000000000000000..b52b840859258cbeec9673e605c1cf5c1718e8ec --- /dev/null +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MET/generateMETChainDefs.py @@ -0,0 +1,45 @@ +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + +from TriggerMenuMT.HLTMenuConfig.Menu.ChainDictTools import splitChainDict +from TriggerMenuMT.HLTMenuConfig.MET.MetDef import MetChainConfiguration as MetChainConfiguration + + +from AthenaCommon.Logging import logging +log = logging.getLogger( 'TriggerMenuMT.HLTMenuConfig.MET.generateChainConfigs' ) +log.info("Importing %s",__name__) + + + +def generateChainConfigs( chainDict ): + import pprint + pprint.pprint( chainDict ) + + + listOfChainDicts = splitChainDict(chainDict) + listOfChainDefs = [] + + for subChainDict in listOfChainDicts: + + Met = MetChainConfiguration(subChainDict).assembleChain() + + listOfChainDefs += [Met] + log.debug('length of chaindefs %s', len(listOfChainDefs) ) + + + if len(listOfChainDefs)>1: + log.warning("Implement case for mulit-step met chain!!") + theChainDef = listOfChainDefs[0] #needs to be implemented properly + else: + theChainDef = listOfChainDefs[0] + + log.debug("theChainDef.name: %s" , theChainDef.name) + log.debug("theChainDef.seed: %s" , theChainDef.seed) + log.debug("theChainDef.ChainSteps: %s" , theChainDef.steps) + + return theChainDef + + + + + + diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py index 3ebf8fe73428c55689f68b43dfa53a9b6f514671..d4871354f33cc6908f7240224a2a10dbd1db8e47 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py @@ -49,13 +49,18 @@ def setupMenu(): ['HLT_e5_etcut_L1EM3', [], [PhysicsStream], ['RATE:SingleElectron', 'BW:Electron']], ['HLT_e7_etcut_L1EM3', [], [PhysicsStream], ['RATE:SingleElectron', 'BW:Electron']], ] + + TriggerFlags.METSlice.signatures = [ + ['HLT_xe65_cell_L1XE50', [], [PhysicsStream], ['RATE:MET', 'BW:MET']], + ['HLT_xe30_cell_L1XE10', [], [PhysicsStream], ['RATE:MET', 'BW:MET']], + ] + TriggerFlags.CombinedSlice.signatures = [ #['e8_mu8_L1EM6_MU6', [], [PhysicsStream], ['RATE:SingleMuon', 'BW:Muon']], ] TriggerFlags.JetSlice.signatures = [ ] TriggerFlags.BjetSlice.signatures = [] - TriggerFlags.METSlice.signatures = [] TriggerFlags.TauSlice.signatures = [] TriggerFlags.BphysicsSlice.signatures = [ ] TriggerFlags.HeavyIonSlice.signatures = []