Skip to content

first import for Menu generation code migrated to CA

Francesca Pastore requested to merge fpastore/athena:CAMenu into master

Following up on ATR-24993, including also results of discussions from the HLT core software meeting on 06/05, which required to have one c-test only and to set the options to filter chains locally. Remaining request is to change the name of the files from _newJO to _CA which needs more wider discussion, so it’s postponed.

This code include the first example of using current Menu generation code, with ChainConfigurationBase class, in the new JO CA. Strategy:

  • using configurableRun3Behavior to switch behaviours
  • in the signature code, XXChainConfiguration can import functions for MenuSequence generation from different files, depending on old and new JO style
  • in newJO: added try/except blocks to allow missing functions (raising WARNING)
  • in newJO: if functions are missing, an Empty Step is generated (to avoid null pointers)
  • in newJO: if at least one intermediate Empty step is found in a chain, the chain is not created (to avoid issues in the alignment code and in the processing)
  • in newJO: raise WARNING when function is missed, when the chain is not configured and excluded because it’s incomplete
  • added options in two tests to filter chains and signatures
  • Tested with muon code primary, also electron and photon enabled; jet’s code needs more complicated modifications so it’s not included in the tests
  • modified existing newJO TMMT unit test to run this new generation code; the old one can be resumed by importing generateHLT from the old file

Tagging @tbold, @khoo

The flow of generation is this:

`

from TriggerMenuMT.HLT.Config.GenerateMenuMT_newJO import generateMenuMT

generateMenuMT()

     --> from TriggerMenuMT.HLT.Config.GenerateMenuMT import GenerateMenuMT
     menu=GenerateMenuMT()
     finalListOfChainConfigs = menu.generateAllChainConfigs(flags)
         ----> generateChains() --->  __generateChainConfig() which calls the SignatureXX.generateChainConfigs(chainPartDict)
                 ----> inside the signature code import MenuSequence in CA style and build steps as now
         ----> menuAlignment() 
 generateMenuAcc()
    ----> menuAcc = generateDecisionTree(flags, HLTMenuConfig.configsList())

`

Edited by Francesca Pastore

Merge request reports