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