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 from AthenaConfiguration.Enums import LHCPeriod
688 if flags.GeoModel.Run > LHCPeriod.Run3:
689 from InDetConfig.TrackRecoConfig import SiDetectorElementStatusCfg
690 acc.merge(SiDetectorElementStatusCfg( flags), sequenceName="HLTBeginSeq")
691
692
693 acc.merge( hltSeedingAcc, sequenceName="HLTBeginSeq" )
694
695
696 if menu:
697 menuAcc =
menu( flags )
698 HLTSteps = menuAcc.getSequence( "HLTAllSteps" )
699 __log.info( "Configured menu with %d steps", len(HLTSteps.Members))
700 acc.merge( menuAcc, sequenceName="HLTTop")
701
702
703 hypos = collectHypos( HLTSteps )
704 filters = collectFilters( HLTSteps )
705 acc.addSequence( parOR("HLTEndSeq"), parentName="HLTTop" )
706 acc.addSequence( seqAND("HLTFinalizeSeq"), parentName="HLTEndSeq" )
707
708 nfilters = sum(len(v) for v in filters.values())
709 nhypos = sum(len(v) for v in hypos.values())
710 __log.info( "Algorithms counting: Number of Filter algorithms: %d - Number of Hypo algoirthms: %d", nfilters , nhypos)
711
712 summaryAcc, summaryAlg = triggerSummaryCfg( flags, hypos )
713 acc.merge( summaryAcc, sequenceName="HLTFinalizeSeq" )
714 if flags.Trigger.doCFEmulationTest:
715 summaryAlg.Prescaler=CompFactory.PrescalingEmulationTool()
716 acc.addEventAlgo( summaryAlg, sequenceName="HLTFinalizeSeq" )
717 acc.merge( triggerEndOfEventCfg(flags), sequenceName="HLTFinalizeSeq" )
718
719
720 hltSeedingAlg = hltSeedingAcc.getEventAlgo("HLTSeeding")
721
722 monitoringAcc, monitoringAlg = triggerMonitoringCfg( flags, hypos, filters, hltSeedingAlg )
723 acc.merge( monitoringAcc, sequenceName="HLTEndSeq" )
724 acc.addEventAlgo( monitoringAlg, sequenceName="HLTEndSeq" )
725
726 decObj, decObjHypoOut = collectDecisionObjects( hypos, filters, hltSeedingAlg, summaryAlg )
727
728
729
730 viewMakers = collectViewMakers( HLTSteps )
731
732
733
734 from TrigEDMConfig.TriggerEDMRun3 import TriggerHLTListRun3, addHLTNavigationToEDMList
735 __log.info( "Number of EDM items before adding navigation: %d", len(TriggerHLTListRun3))
736 addHLTNavigationToEDMList(flags, TriggerHLTListRun3, decObj, decObjHypoOut)
737 __log.info( "Number of EDM items after adding navigation: %d", len(TriggerHLTListRun3))
738
739
740
741 if flags.Trigger.ExtraEDMList:
742 from TrigEDMConfig.TriggerEDM import _addExtraCollectionsToEDMList
743 __log.info( "Adding extra collections to EDM: %s", str(flags.Trigger.ExtraEDMList))
744 _addExtraCollectionsToEDMList(TriggerHLTListRun3, flags.Trigger.ExtraEDMList)
745
746
747 outputAcc, edmSet = triggerOutputCfg( flags, hypos )
748 acc.merge( outputAcc, sequenceName="HLTTop" )
749
750
751 from TrigCostMonitor.TrigCostMonitorConfig import TrigCostMonitorFinalizeCfg
752 costFinalizeAlg = TrigCostMonitorFinalizeCfg(flags)
753 if costFinalizeAlg:
754 acc.addEventAlgo(costFinalizeAlg, sequenceName="HLTFinalizeSeq" )
755
756 if edmSet:
757
758 acc.merge( triggerMergeViewsCfg(flags, viewMakers), sequenceName="HLTFinalizeSeq" )
759
760
761 acc.merge( triggerEDMGapFillerCfg(flags, [edmSet] if edmSet!='BS' else [],
762 decObj, decObjHypoOut), sequenceName="HLTFinalizeSeq" )
763
764 if flags.Trigger.doOnlineNavigationCompactification:
765 from TrigNavSlimmingMT.TrigNavSlimmingMTConfig import getTrigNavSlimmingMTOnlineConfig
766 onlineSlimAlg = getTrigNavSlimmingMTOnlineConfig(flags)
767 acc.addEventAlgo( onlineSlimAlg, sequenceName="HLTFinalizeSeq" )
768
769
770 from TriggerMenuMT.HLT.Config.Utility.HLTMenuConfig import HLTMenuConfig
771 HLTMenuConfig.destroy()
772
773 return acc
774
775