From a4c1747fa424de4cc30fd295b8990371523a4e5a Mon Sep 17 00:00:00 2001 From: Tomasz Bold <tomasz.bold@gmail.com> Date: Thu, 16 Aug 2018 22:43:25 +0200 Subject: [PATCH] Prototype for comete menu configuration using Comp Accumlators --- .../TrigUpgradeTest/python/TestUtils.py | 8 ++-- .../TrigUpgradeTest/share/newJOtest.py | 39 +++++++++++-------- .../TriggerJobOpts/CMakeLists.txt | 5 +++ .../TriggerJobOpts/python/TriggerConfig.py | 15 ++++++- .../python/TriggerConfigFlags.py | 3 ++ 5 files changed, 48 insertions(+), 22 deletions(-) diff --git a/Trigger/TrigValidation/TrigUpgradeTest/python/TestUtils.py b/Trigger/TrigValidation/TrigUpgradeTest/python/TestUtils.py index c17c60d6221..0d2a34eb6e8 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/python/TestUtils.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/python/TestUtils.py @@ -13,10 +13,10 @@ def writeEmulationFiles(data): # Testing menu used in the L1 decoders class MenuTest: - CTPToChainMapping = {"LT_e3_etcut": "L1_EM3", - "LT_e5_etcut": "L1_EM3", - "LT_g5_etcut": "L1_EM3", - "LT_e7_etcut": "L1_EM7", + CTPToChainMapping = {"HLT_e3_etcut": "L1_EM3", + "HLT_e5_etcut": "L1_EM3", + "HLT_g5_etcut": "L1_EM3", + "HLT_e7_etcut": "L1_EM7", "HLT_mu6idperf": "L1_EM7", "HLT_mu6": "L1_EM7", "HLT_xs20": "L1_EM7", diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/newJOtest.py b/Trigger/TrigValidation/TrigUpgradeTest/share/newJOtest.py index c8a46bc6909..2c9ad0065d1 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/share/newJOtest.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/share/newJOtest.py @@ -22,6 +22,7 @@ flags.set( "global.InputFiles", flags.set( "Trigger.LVL1ConfigFile", "LVL1config_Physics_pp_v7.xml" ) flags.set( "Trigger.L1Decoder.forceEnableAllChains", True) + flags.lock() from AthenaCommon.Constants import INFO,DEBUG @@ -59,23 +60,26 @@ from TrigUpgradeTest.TriggerHistSvcConfig import TriggerHistSvcConfig acc.merge(TriggerHistSvcConfig(flags )) def menu( mf ): - menuAcc = ComponentAccumulator() - HLTSteps = seqAND( "HLTSteps") - menuAcc.addSequence( HLTSteps ) - menuAcc.addSequence( parOR("HLTStep_1_filters"), parentName="HLTSteps" ) - menuAcc.addSequence( parOR("HLTStep_1"), parentName="HLTSteps" ) - menuAcc.addSequence( parOR("HLTStep_2_filters"), parentName="HLTSteps" ) - menuAcc.addSequence( parOR("HLTStep_2"), parentName="HLTSteps" ) + from TrigUpgradeTest.MenuComponents import HLTMenuAccumulator + menuAcc = HLTMenuAccumulator() + + # here menu generation starts + + if flags.get("Trigger.menu.electrons"): # maybe it is better if this check is done in generateElectrons + from TrigUpgradeTest.ElectronMenuConfig import generateElectrons + accElectrons, electronSteps = generateElectrons( flags ) + if len( electronSteps ) != 0: + menuAcc.setupSteps( electronSteps ) + menuAcc.merge( accElectrons ) - from TrigUpgradeTest.EgammaCaloMod import EgammaCaloMod - accECM,seqECM=EgammaCaloMod(flags) - menuAcc.merge(accECM) - menuAcc.addSequence(seqECM, parentName="HLTStep_1" ) - return menuAcc, HLTSteps + # here setting of the Summary + top level Monitoring algs should be done + menuAcc.printConfig() + + return menuAcc, menuAcc.steps() from TriggerJobOpts.TriggerConfig import triggerRunCfg -acc.merge( triggerRunCfg(flags, menu) ) +acc.merge( triggerRunCfg( flags, menu ) ) from EventInfoMgt.EventInfoMgtConf import TagInfoMgr @@ -102,10 +106,13 @@ acc.merge( RegSelConfig( flags ) ) acc.getEventAlgo( "TrigSignatureMoniMT" ).OutputLevel=DEBUG print acc.getEventAlgo( "TrigSignatureMoniMT" ) -from TrigUpgradeTest.TestUtils import applyMenu -applyMenu( acc.getEventAlgo( "L1Decoder" ) ) + + +# from TrigUpgradeTest.TestUtils import applyMenu +# applyMenu( acc.getEventAlgo( "L1Decoder" ) ) acc.getEventAlgo( "L1Decoder" ).OutputLevel=DEBUG -acc.getEventAlgo( "L2CaloHypo" ).OutputLevel=DEBUG +acc.getEventAlgo( "L2ElectronCaloHypo" ).OutputLevel=DEBUG +acc.getEventAlgo( "FastEMCaloAlgo" ).OutputLevel=DEBUG acc.printConfig() diff --git a/Trigger/TriggerCommon/TriggerJobOpts/CMakeLists.txt b/Trigger/TriggerCommon/TriggerJobOpts/CMakeLists.txt index 529724f1f89..2eff2428fb8 100644 --- a/Trigger/TriggerCommon/TriggerJobOpts/CMakeLists.txt +++ b/Trigger/TriggerCommon/TriggerJobOpts/CMakeLists.txt @@ -18,6 +18,11 @@ atlas_add_test( TriggerConfigFlagsTest SCRIPT python -m unittest TriggerJobOpts.TriggerConfigFlags POST_EXEC_SCRIPT nopost.sh ) +atlas_add_test( TriggerMenuFlagsTest + SCRIPT python -m unittest TriggerJobOpts.MenuConfigFlags + POST_EXEC_SCRIPT nopost.sh ) + + atlas_add_test( TriggerConfigTest SCRIPT python -m TriggerJobOpts.TriggerConfig POST_EXEC_SCRIPT nopost.sh ) diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py index 471a219ea8f..5d47b50b37a 100644 --- a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py +++ b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py @@ -68,7 +68,17 @@ def triggerMonitoringCfg(flags, hypos): return acc, mon +def setupL1DecoderFromMenu( flags, l1Decoder ): + """ Post setup of the L1Decoder, once approved, it should be moved to L1DecoderCfg function """ + l1Decoder.ctpUnpacker.CTPToChainMapping = {} + from TriggerJobOpts.MenuConfigFlags import MenuUtils + l1Decoder.ctpUnpacker.CTPToChainMapping.update( MenuUtils.toCTPSeedingDict( flags ) ) + # this will go away once full L1 config info will be used by L1 Decoder + for c in flags.get( "Trigger.menu.electrons" ) + flags.get( "Trigger.menu.photons" ) : + chain, l1item = c.split()[:2] + threshold = l1item.split("_")[1] + l1Decoder.roiUnpackers["EMRoIsUnpackingTool"].ThresholdToChainMapping += [ "%s : %s" % (threshold, chain) ] def triggerRunCfg(flags, menu=None): @@ -81,14 +91,15 @@ def triggerRunCfg(flags, menu=None): pass acc = ComponentAccumulator() - + from L1Decoder.L1DecoderConfig import L1DecoderCfg #TODO # information about the menu has to be injected into L1 decoder config # necessary ingreedient is list of mappings from L1 item to chain # and item to threshold (the later can be maybe extracted from L1 config file) l1DecoderAcc, l1DecoderAlg = L1DecoderCfg( flags ) - acc.merge( l1DecoderAcc) + setupL1DecoderFromMenu( flags, l1DecoderAlg ) + acc.merge( l1DecoderAcc ) # detour to the menu here, (missing now, instead a temporary hack) diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigFlags.py b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigFlags.py index dc11900ca95..2c17a6132ca 100644 --- a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigFlags.py +++ b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigFlags.py @@ -140,6 +140,9 @@ def createTriggerFlags(): # muons flags.addFlag('Trigger.muon.doEFRoIDrivenAccess', False) + + from TriggerJobOpts.MenuConfigFlags import createMenuFlags + flags.join( createMenuFlags() ) return flags # for reference, this flags are skipped as never used or never set in fact, or set identical to de default or used in a very old JO: -- GitLab