3 from AthenaCommon.Logging
import logging
4 logging.getLogger().
info(
"Importing %s",__name__)
5 log = logging.getLogger(__name__)
7 from TriggerMenuMT.HLT.Config.ChainConfigurationBase
import ChainConfigurationBase
8 from TriggerMenuMT.HLT.Config.MenuComponents
import MenuSequenceCA, SelectionCA, InEventRecoCA
9 from AthenaConfiguration.ComponentFactory
import CompFactory
10 from TrigGenericAlgs.TrigGenericAlgsConfig
import TimeBurnerCfg, TimeBurnerHypoToolGen, L1CorrelationAlgCfg
11 from L1TopoOnlineMonitoring
import L1TopoOnlineMonitoringConfig
as TopoMonConfig
12 from L1TopoSimulation
import L1TopoSimulationConfig
as TopoSimConfig
13 from TrigHypoCommonTools.TrigHypoCommonTools
import TrigGenericHypoToolFromDict
14 from TrigEDMConfig.TriggerEDM
import recordable
15 from AthenaCommon.CFElements
import seqAND
23 inputMaker = CompFactory.InputMakerForRoI(
"IM_TimeBurner",
24 RoITool=CompFactory.ViewCreatorInitialROITool(),
25 RoIs=
"TimeBurnerInputRoIs",
27 reco = InEventRecoCA(
'TimeBurner_reco',inputMaker=inputMaker)
29 selAcc = SelectionCA(
'TimeBurnerSequence')
30 selAcc.mergeReco(reco)
33 name=
"TimeBurnerHypo",
38 msca = MenuSequenceCA(flags, selAcc,
39 HypoToolGen=TimeBurnerHypoToolGen)
45 inputMaker = CompFactory.InputMakerForRoI(
"IM_L1TopoOnlineMonitor")
46 inputMaker.RoITool = CompFactory.ViewCreatorInitialROITool()
47 inputMaker.RoIs=
"L1TopoOnlineMonitorInputRoIs"
49 reco = InEventRecoCA(
'L1TopoPhase1OnlineMonitor_reco',inputMaker=inputMaker)
51 reco.addSequence(
seqAND(
'L1TopoSimSeq'))
52 reco.merge(TopoSimConfig.L1TopoSimulationCfg(flags,doMonitoring=
True,readMuCTPI=
False,name=
"L1OnlineTopoSimulation"), sequenceName=
'L1TopoSimSeq')
54 selAcc = SelectionCA(
"L1TopoOnlineMonitorSequence")
55 selAcc.mergeReco(reco)
57 hypoAlg = TopoMonConfig.getL1TopoOnlineMonitorHypo(flags)
58 selAcc.addHypoAlgo(hypoAlg)
60 return MenuSequenceCA(flags, selAcc,
61 HypoToolGen = TopoMonConfig.L1TopoOnlineMonitorHypoToolGen)
65 inputMaker = CompFactory.InputMakerForRoI(
"IM_MistimeMon",
66 RoITool = CompFactory.ViewCreatorInitialROITool(),
67 RoIs=
"MistimeMonInputRoIs",
70 outputName =
recordable(
"HLT_TrigCompositeMistimeJ400")
71 reco = InEventRecoCA(
'Mistime_reco',inputMaker=inputMaker)
72 recoAlg =
L1CorrelationAlgCfg(flags,
"MistimeMonj400", ItemList=[
'L1_J400',
'L1_gJ400p0ETA25'],
73 TrigCompositeWriteHandleKey=outputName, trigCompPassKey=outputName+
".pass",
74 l1AKey=outputName+
".l1a_type", otherTypeKey=outputName+
".other_type",
75 beforeAfterKey=outputName+
".beforeafterflag")
76 reco.addRecoAlgo(recoAlg)
77 selAcc = SelectionCA(
"MistimeMonSequence")
78 selAcc.mergeReco(reco)
81 hypoAlg = CompFactory.TrigGenericHypoAlg(
"MistimeMonJ400HypoAlg", TrigCompositeContainer=outputName)
82 selAcc.addHypoAlgo(hypoAlg)
84 return MenuSequenceCA(flags, selAcc,
85 HypoToolGen = TrigGenericHypoToolFromDict)
94 ChainConfigurationBase.__init__(self,chainDict)
101 log.debug(
"Assembling chain for %s", self.chainName)
103 monTypeList = self.chainPart.
get(
'monType')
105 raise RuntimeError(
'No monType defined in chain ' + self.chainName)
106 if len(monTypeList) > 1:
107 raise RuntimeError(
'Multiple monType values defined in chain ' + self.chainName)
108 monType = monTypeList[0]
110 if monType ==
'timeburner':
112 elif monType ==
'l1topoPh1debug':
114 elif monType ==
'mistimemonj400':
117 raise RuntimeError(
'Unexpected monType '+monType+
' in MonitorChainConfiguration')
119 return self.buildChain(chainSteps)
125 return self.getStep(flags,
'TimeBurner',[timeBurnerCfg])
132 sequenceCfg = L1TopoOnlineMonitorSequenceCfg
133 return self.getStep(flags,
'L1TopoOnlineMonitor',[sequenceCfg])
139 return self.getStep(flags,
'MistimeMon',[MistimeMonSequenceCfg])