584     == Main function to generate the L1, L1Topo and HLT menu configs and CA, using the GenerateMenuMT class 
  588     from TrigConfigSvc.TrigConfigSvcCfg 
import generateL1Menu
 
  595     chains_gen_filter = FilterChainsToGenerate(flags)
 
  596     menu.setChainFilter(chains_gen_filter)
 
  597     log.debug(
'Filtering chains: %d', menu.chainFilter 
is not None)
 
  600     finalListOfChainConfigs = menu.generateAllChainConfigs(flags)
 
  602     checkNumberOfLegs = [chain.checkNumberOfLegs() 
for chain 
in finalListOfChainConfigs]
 
  603     if 0 
in checkNumberOfLegs:
 
  604         log.error(
'There is a chain with unexpected number of legs. Revisit your configuration')
 
  606     log.info(
'Number of configured chains: %d', len(finalListOfChainConfigs))
 
  608     from TriggerMenuMT.HLT.Config 
import MenuComponents
 
  609     if len(MenuComponents._CustomComboHypoAllowed)> _maxAllowedCustomCH:
 
  610         log.error(f
'Found {len(MenuComponents._CustomComboHypoAllowed)} ComboHypo algorithms  violating the one-CH-per-step rule, only {_maxAllowedCustomCH} are allowed (which are BLS ComboHypos). This is the list of current violations: {MenuComponents._CustomComboHypoAllowed}. Please consolidate your choice of ComboHypo, by checking that it is able to handle decisions internally; if yes eventually increase the limit set by _maxAllowedCustomCH, after discussing with experts')
 
  612     menu.generatePrescales(flags)
 
  616     finalListOfChainConfigs = menu.resolveEmptySteps(finalListOfChainConfigs)
 
  617     log.debug(
"finalListOfChainConfig: %s", finalListOfChainConfigs)
 
  621     log.info(
"Making the HLT configuration tree")
 
  622     menuAcc, CFseq_list = 
makeHLTTree(flags, finalListOfChainConfigs)
 
  625     from TriggerJobOpts.TriggerConfigFlags 
import ROBPrefetching
 
  626     if ROBPrefetching.InitialRoI 
in flags.Trigger.ROBPrefetchingOptions:
 
  627         from TrigGenericAlgs.TrigGenericAlgsConfig 
import prefetchingInitialRoIConfig
 
  632     log.info(
"Checking the L1HLTConsistency...")
 
  633     from TriggerMenuMT.HLT.Config.Validation.CheckL1HLTConsistency 
import checkL1HLTConsistency
 
  636     log.info(
"Checking the Coherent Prescale assignments...")
 
  637     from TriggerMenuMT.HLT.Config.Validation.CheckCPSGroups 
import checkCPSGroups
 
  640     log.info(
"Checking that all chains streamed in express have a signature or detctor monGroup")
 
  641     from TriggerMenuMT.HLT.Config.Validation.CheckMonGroups 
import checkMonGroups
 
  645     GenerateMenuMT.clear()
 
  646     from TriggerMenuMT.HLT.Config 
import MenuComponents
 
  647     MenuComponents._ComboHypoPool.clear() 
 
  648     MenuComponents._CustomComboHypoAllowed.clear()