649def triggerRunCfg( flags, menu=None ):
650 """
651 top of the trigger config (for real triggering online or on MC)
652 Returns: ca only
653 """
654 acc = ComponentAccumulator()
655
656
657 from TrigConfigSvc.TrigConfigSvcCfg import L1ConfigSvcCfg
658
659 acc.merge( L1ConfigSvcCfg(flags) )
660
661 acc.addSequence( seqOR( "HLTTop") )
662
663
664 if flags.Trigger.CostMonitoring.doCostMonitoring:
665 acc.addSequence( parOR("HLTPreSeq"), parentName="HLTTop" )
666
667 from TrigCostMonitor.TrigCostMonitorConfig import TrigCostMonitorCfg
668 acc.merge( TrigCostMonitorCfg( flags ), sequenceName="HLTPreSeq" )
669
670
671 acc.addSequence( parOR("HLTBeginSeq"), parentName="HLTTop" )
672
673
674
675 if flags.Trigger.doCFEmulationTest:
676 from TriggerMenuMT.CFtest.EmuStepProcessingConfig import emulateHLTSeedingCfg
677 hltSeedingAcc = emulateHLTSeedingCfg(flags)
678 else:
679 acc.merge( triggerIDCCacheCreatorsCfg( flags, seqName="AthAlgSeq" ), sequenceName="HLTBeginSeq" )
680
681 if flags.Trigger.doRuntimeNaviVal:
682 acc.addEventAlgo( CompFactory.TrigChainNameParserChecker(), sequenceName="HLTBeginSeq" )
683
684 from HLTSeeding.HLTSeedingConfig import HLTSeedingCfg
685 hltSeedingAcc = HLTSeedingCfg( flags )
686
687 if flags.Input.isMC:
688 from AthenaConfiguration.Enums import LHCPeriod
689 if flags.GeoModel.Run > LHCPeriod.Run3:
690 from InDetConfig.TrackRecoConfig import SiDetectorElementStatusCfg
691 acc.merge(SiDetectorElementStatusCfg( flags), sequenceName="HLTBeginSeq")
692
693
694 acc.merge( hltSeedingAcc, sequenceName="HLTBeginSeq" )
695
696
697 if menu:
698 menuAcc =
menu( flags )
699 HLTSteps = menuAcc.getSequence( "HLTAllSteps" )
700 __log.info( "Configured menu with %d steps", len(HLTSteps.Members))
701 acc.merge( menuAcc, sequenceName="HLTTop")
702
703
704 hypos = collectHypos( HLTSteps )
705 filters = collectFilters( HLTSteps )
706 acc.addSequence( parOR("HLTEndSeq"), parentName="HLTTop" )
707 acc.addSequence( seqAND("HLTFinalizeSeq"), parentName="HLTEndSeq" )
708
709 nfilters = sum(len(v) for v in filters.values())
710 nhypos = sum(len(v) for v in hypos.values())
711 __log.info( "Algorithms counting: Number of Filter algorithms: %d - Number of Hypo algoirthms: %d", nfilters , nhypos)
712
713 summaryAcc, summaryAlg = triggerSummaryCfg( flags, hypos )
714 acc.merge( summaryAcc, sequenceName="HLTFinalizeSeq" )
715 if flags.Trigger.doCFEmulationTest:
716 summaryAlg.Prescaler=CompFactory.PrescalingEmulationTool()
717 acc.addEventAlgo( summaryAlg, sequenceName="HLTFinalizeSeq" )
718 acc.merge( triggerEndOfEventCfg(flags), sequenceName="HLTFinalizeSeq" )
719
720
721 hltSeedingAlg = hltSeedingAcc.getEventAlgo("HLTSeeding")
722
723 monitoringAcc, monitoringAlg = triggerMonitoringCfg( flags, hypos, filters, hltSeedingAlg )
724 acc.merge( monitoringAcc, sequenceName="HLTEndSeq" )
725 acc.addEventAlgo( monitoringAlg, sequenceName="HLTEndSeq" )
726
727 decObj, decObjHypoOut = collectDecisionObjects( hypos, filters, hltSeedingAlg, summaryAlg )
728
729
730
731 viewMakers = collectViewMakers( HLTSteps )
732
733
734
735 from TrigEDMConfig.TriggerEDMRun3 import TriggerHLTListRun3, addHLTNavigationToEDMList
736 __log.info( "Number of EDM items before adding navigation: %d", len(TriggerHLTListRun3))
737 addHLTNavigationToEDMList(flags, TriggerHLTListRun3, decObj, decObjHypoOut)
738 __log.info( "Number of EDM items after adding navigation: %d", len(TriggerHLTListRun3))
739
740
741
742 if flags.Trigger.ExtraEDMList:
743 from TrigEDMConfig.TriggerEDM import _addExtraCollectionsToEDMList
744 __log.info( "Adding extra collections to EDM: %s", str(flags.Trigger.ExtraEDMList))
745 _addExtraCollectionsToEDMList(TriggerHLTListRun3, flags.Trigger.ExtraEDMList)
746
747
748 outputAcc, edmSet = triggerOutputCfg( flags, hypos )
749 acc.merge( outputAcc, sequenceName="HLTTop" )
750
751
752 from TrigCostMonitor.TrigCostMonitorConfig import TrigCostMonitorFinalizeCfg
753 costFinalizeAlg = TrigCostMonitorFinalizeCfg(flags)
754 if costFinalizeAlg:
755 acc.addEventAlgo(costFinalizeAlg, sequenceName="HLTFinalizeSeq" )
756
757 if edmSet:
758
759 acc.merge( triggerMergeViewsCfg(flags, viewMakers), sequenceName="HLTFinalizeSeq" )
760
761
762 acc.merge( triggerEDMGapFillerCfg(flags, [edmSet] if edmSet!='BS' else [],
763 decObj, decObjHypoOut), sequenceName="HLTFinalizeSeq" )
764
765 if flags.Trigger.doOnlineNavigationCompactification:
766 from TrigNavSlimmingMT.TrigNavSlimmingMTConfig import getTrigNavSlimmingMTOnlineConfig
767 onlineSlimAlg = getTrigNavSlimmingMTOnlineConfig(flags)
768 acc.addEventAlgo( onlineSlimAlg, sequenceName="HLTFinalizeSeq" )
769
770
771 from TriggerMenuMT.HLT.Config.Utility.HLTMenuConfig import HLTMenuConfig
772 HLTMenuConfig.destroy()
773
774 return acc
775
776