3 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
4 from AthenaConfiguration.ComponentFactory
import CompFactory
5 from AthenaMonitoringKernel.GenericMonitoringTool
import GenericMonitoringTool
11 from L1TopoSimulation.L1TopoInputHistograms
import configureEMTauInputProviderHistograms, configureEnergyInputProviderHistograms, configureJetInputProviderHistograms
12 emtauProvider = CompFactory.LVL1.EMTauInputProvider(
"EMTauInputProvider")
14 emtauProvider.MonTool.HistPath =
'L1LegacyTopoSimulation/EMTauInputProvider'
16 energyProvider = CompFactory.LVL1.EnergyInputProvider(
"EnergyInputProvider")
18 energyProvider.MonTool.HistPath =
'L1LegacyTopoSimulation/EnergyInputProvider'
20 jetProvider = CompFactory.LVL1.JetInputProvider(
"JetInputProvider")
22 jetProvider.MonTool.HistPath =
'L1LegacyTopoSimulation/JetInputProvider'
25 topoSimAlg = CompFactory.LVL1.L1TopoSimulation(
"L1LegacyTopoSimulation",
26 EMTAUInputProvider = emtauProvider,
27 JetInputProvider = jetProvider,
28 EnergyInputProvider = energyProvider,
30 InputDumpFile =
"inputdump_legacy.txt",
31 EnableInputDump = flags.Trigger.enableL1TopoDump,
32 UseBitwise = flags.Trigger.enableL1TopoBWSimulation,
33 MonHistBaseDir =
"L1/L1LegacyTopoAlgorithms"
37 topoSimAlg.MuonInputProvider.locationMuCTPItoL1Topo =
""
38 topoSimAlg.MuonInputProvider.locationMuCTPItoL1Topo1 =
""
39 topoSimAlg.MuonInputProvider.locationMuonRoI =
""
40 topoSimAlg.MuonInputProvider.locationMuonRoI1 =
""
41 topoSimAlg.MuonInputProvider.ROIBResultLocation =
""
43 acc.addEventAlgo(topoSimAlg)
46 def L1TopoSimulationCfg(flags, doMonitoring=True, readMuCTPI=False, name="L1TopoSimulation", deactivateL1TopoMuons=False, useMuonRoIs=False, useMuonDecoder=False, writeMuonRoIs = True):
56 if flags.Trigger.L1.doMuon
and not deactivateL1TopoMuons:
57 muProvider = CompFactory.LVL1.MuonInputProvider(
"MuonInputProvider")
60 If muons coming from the decoding, we use MuonRoI, otherwise MuCTPIL1Topo
61 So here we should be adding proper flag for P1, and when input file is RAW
62 Simply, if muons are simulated, we will use MuCTPIL1Topo, if decoded MuonRoI
66 muProvider.locationMuCTPItoL1Topo =
""
67 muProvider.locationMuCTPItoL1Topo1 =
""
68 muProvider.locationMuonRoI =
"L1MuCTPItoL1TopoLocationFromMuonRoI"
69 muProvider.locationMuonRoI1 =
"L1MuCTPItoL1TopoLocationFromMuonRoI1"
71 muProvider.locationMuonRoI =
"LVL1MuonRoIs"
72 muProvider.locationMuonRoI1 =
"LVL1MuonRoIsBCp1"
74 muProvider.locationMuonRoI =
""
75 muProvider.locationMuonRoI1 =
""
78 from TrigT1MuonRecRoiTool.TrigT1MuonRecRoiToolConfig
import RPCRecRoiToolCfg, TGCRecRoiToolCfg
83 from MuonConfig.MuonBytestreamDecodeConfig
import RpcBytestreamDecodeCfg,TgcBytestreamDecodeCfg
86 from TrigT1ResultByteStream.TrigT1ResultByteStreamConfig
import MuonRoIByteStreamToolCfg
87 muonRoiTool = acc.popToolsAndMerge(
MuonRoIByteStreamToolCfg(flags, name=
"L1MuonBSDecoderToolInL1Topo", writeBS=
False, writeDecodedMuonRoIs = writeMuonRoIs))
88 decoderTools += [muonRoiTool]
95 if flags.Trigger.L1.doeFex:
96 emtauProvider = CompFactory.LVL1.eFexInputProvider(
"eFexInputProvider")
97 if flags.Trigger.L1.dojFex:
98 jetProvider = CompFactory.LVL1.jFexInputProvider(
"jFexInputProvider")
99 if flags.Trigger.L1.dogFex:
100 energyProvider = CompFactory.LVL1.gFexInputProvider(
"gFexInputProvider")
102 controlHistSvc = CompFactory.LVL1.ControlHistSvc(
"ControlHistSvc")
108 from L1TopoByteStream.L1TopoByteStreamConfig
import L1TopoPhase1ByteStreamToolCfg
110 decoderTools += [l1topoBSTool]
111 maybeMissingRobs += l1topoBSTool.ROBIDs
114 decoderAlg = CompFactory.L1TriggerByteStreamDecoderAlg(name=
"L1TriggerByteStreamDecoder",
115 DecoderTools=decoderTools,
116 MaybeMissingROBs=maybeMissingRobs)
118 acc.addEventAlgo(decoderAlg, sequenceName=
'AthAlgSeq')
120 if not flags.Trigger.enableL1CaloPhase1:
121 if (emtauProvider !=
""):
122 emtauProvider.eFexEMRoIKey =
""
123 emtauProvider.eFexTauRoIKey =
""
124 if (jetProvider !=
""):
125 jetProvider.jFexSRJetRoIKey =
""
126 jetProvider.jFexLRJetRoIKey =
""
127 jetProvider.jFexFwdElRoIKey =
""
128 jetProvider.jFexTauRoIKey =
""
129 jetProvider.jFexMETRoIKey =
""
130 jetProvider.jFexSumETRoIKey =
""
131 if (energyProvider !=
""):
132 energyProvider.gFexSRJetRoIKey =
""
133 energyProvider.gFexLRJetRoIKey =
""
134 energyProvider.gMETComponentsJwojKey =
""
135 energyProvider.gMHTComponentsJwojKey =
""
136 energyProvider.gMETComponentsNoiseCutKey =
""
137 energyProvider.gMETComponentsRmsKey =
""
138 energyProvider.gScalarEJwojKey =
""
140 topoSimAlg = CompFactory.LVL1.L1TopoSimulation(name,
141 MuonInputProvider = muProvider,
142 EMTAUInputProvider = emtauProvider,
143 JetInputProvider = jetProvider,
144 EnergyInputProvider = energyProvider,
145 ControlHistSvc = controlHistSvc,
146 IsLegacyTopo =
False,
147 doMonitoring = doMonitoring,
148 EnableInputDump = flags.Trigger.enableL1TopoDump,
149 UseBitwise = flags.Trigger.enableL1TopoBWSimulation
151 if name!=
"L1TopoSimulation":
152 topoSimAlg.MonHistBaseDir =
"L1/OnlineL1TopoAlgorithms"
154 acc.addEventAlgo(topoSimAlg)
158 from L1TopoOnlineMonitoring
import L1TopoOnlineMonitoringConfig
as TopoMonConfig
159 if name==
"L1TopoSimulation":
160 acc.addEventAlgo(TopoMonConfig.getL1TopoPhase1OnlineMonitor(flags,
'L1/L1TopoSimDecisions',
161 doHwMon=IsData,doComp=IsData, doMultComp=IsData))
163 acc.addEventAlgo(TopoMonConfig.getL1TopoPhase1OnlineMonitor(flags,
'L1/OnlineL1TopoSimDecisions',
164 toolName=name+
"_Monitor",
165 doHwMon=IsData,doComp=IsData, doMultComp=IsData))
173 efex_provider_attr = [
'eFexEMRoI',
'eFexTauRoI']
174 jfex_provider_attr = [
'jFexSRJetRoI',
'jFexLRJetRoI',
'jFexFwdElRoI',
'jFexTauRoI',
'jFexMETRoI',
'jFexSumETRoI']
175 gfex_provider_attr = [
'gFexSRJetRoI',
'gFexLRJetRoI',
'gScalarEJwoj',
'gMETComponentsJwoj',
'gMHTComponentsJwoj',
'gMETComponentsNoiseCut',
'gMETComponentsRms']
181 from L1TopoSimulation.L1TopoInputHistograms
import configureMuonInputProviderHistograms, configureeFexInputProviderHistograms, configurejFexInputProviderHistograms, configuregFexInputProviderHistograms
186 muProvider = CompFactory.LVL1.MuonInputProvider(
"MuonInputProvider")
188 if flags.Trigger.L1.doMuonTopoInputs:
189 muProvider.locationMuCTPItoL1Topo =
""
190 muProvider.locationMuCTPItoL1Topo1 =
""
191 muProvider.locationMuonRoI =
"L1MuCTPItoL1TopoLocationFromMuonRoI"
192 muProvider.locationMuonRoI1 =
"L1MuCTPItoL1TopoLocationFromMuonRoI1"
194 muProvider.locationMuonRoI =
""
195 muProvider.locationMuonRoI1 =
""
198 from TrigT1MuonRecRoiTool.TrigT1MuonRecRoiToolConfig
import RPCRecRoiToolCfg, TGCRecRoiToolCfg
202 muProvider.MonTool.HistPath =
'L1TopoSimulation/MuonInputProvider'
206 efexProvider = CompFactory.LVL1.eFexInputProvider(
"eFexInputProvider")
208 efexProvider.MonTool.HistPath =
'L1TopoSimulation/eFexInputProvider'
210 jfexProvider = CompFactory.LVL1.jFexInputProvider(
"jFexInputProvider")
212 jfexProvider.MonTool.HistPath =
'L1TopoSimulation/jFexInputProvider'
214 gfexProvider = CompFactory.LVL1.gFexInputProvider(
"gFexInputProvider")
216 gfexProvider.MonTool.HistPath =
'L1TopoSimulation/gFexInputProvider'
219 for attr
in efex_provider_attr:
220 res = [x
for x
in outputEDM
if attr
in x]
222 key = res[0].
split(
'#')[1]
223 print (f
'Key found for eFEX: {key}')
224 setattr(efexProvider,attr+
'Key',key)
226 setattr(efexProvider,attr+
'Key',
'')
228 for attr
in jfex_provider_attr:
229 res = [x
for x
in outputEDM
if attr
in x]
231 key = res[0].
split(
'#')[1]
232 print (f
'Key found for jFEX: {key}')
233 setattr(jfexProvider,attr+
'Key',key)
235 setattr(jfexProvider,attr+
'Key',
'')
237 for attr
in gfex_provider_attr:
238 res = [x
for x
in outputEDM
if attr
in x]
240 key = res[0].
split(
'#')[1]
241 print (f
'Key found for gFEX: {key}')
242 setattr(gfexProvider,attr+
'Key',key)
244 setattr(gfexProvider,attr+
'Key',
'')
246 topoSimAlg = CompFactory.LVL1.L1TopoSimulation(
"L1TopoSimulation",
247 MuonInputProvider = muProvider,
248 EMTAUInputProvider = efexProvider,
249 JetInputProvider = jfexProvider,
250 EnergyInputProvider = gfexProvider,
251 IsLegacyTopo =
False,
252 doMonitoring = doMonitoring,
253 EnableInputDump = flags.Trigger.enableL1TopoDump,
254 UseBitwise = flags.Trigger.enableL1TopoBWSimulation
257 acc.addEventAlgo(topoSimAlg)
261 if __name__ ==
'__main__':
262 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
263 from AthenaCommon.Logging
import logging
266 from argparse
import RawTextHelpFormatter
268 from libpyeformat_helper
import SourceIdentifier, SubDetector
270 log = logging.getLogger(
'runL1TopoSim')
274 parser = argparse.ArgumentParser(
"Running L1TopoSimulation standalone for the BS input", formatter_class=RawTextHelpFormatter)
275 parser.add_argument(
"-i",
"--inputs",nargs=
'*',action=
"store", dest=
"inputs", help=
"Inputs will be used in commands", required=
True)
276 parser.add_argument(
"-m",
"--module",action=
"store", dest=
"module", help=
"Input modules wants to be simulated.",default=
"", required=
False)
277 parser.add_argument(
"-bw",
"--useBitWise",action=
"store_true", dest=
"useBW", help=
"Run with L1Topo Bitwise simulation?",default=
True, required=
False)
278 parser.add_argument(
"-ifex",
"--doCaloInput",action=
"store_true", dest=
"doCaloInput", help=
"Decoding L1Calo inputs",default=
False, required=
False)
279 parser.add_argument(
"-fCtp",
"--forceCtp",action=
"store_true", dest=
"forceCtp", help=
"Force to CTP monitoring as primary in Sim/Hdw comparison.",default=
False, required=
False)
280 parser.add_argument(
"-hdwMon",
"--algoHdwMon",action=
"store_true", dest=
"algoHdwMon", help=
"Fill algorithm histograms based on hardware decision.",default=
False, required=
False)
281 parser.add_argument(
"-perfMon",
"--perfMonitoring",action=
"store_true", dest=
"perfmon", help=
"Enable performance monitoring",default=
False, required=
False)
282 parser.add_argument(
"-redoMenu",
"--rederiveMenu",action=
"store_true", dest=
"redoMenu", help=
"Will rederive the menu based in local code",default=
False, required=
False)
283 parser.add_argument(
"-l",
"--logLevel",action=
"store", dest=
"log", help=
"Log level.",default=
"warning", required=
False)
284 parser.add_argument(
"-n",
"--nevent", type=int, action=
"store", dest=
"nevent", help=
"Maximum number of events will be executed.",default=0, required=
False)
285 parser.add_argument(
"-s",
"--skipEvents", type=int, action=
"store", dest=
"skipEvents", help=
"How many events will be skipped.",default=0, required=
False)
286 parser.add_argument(
"-d",
"--enableL1TopoDump", type=bool, action=
"store", dest=
"enableL1TopoDump", help=
"Whether to output events into inputdump.txt",default=
False, required=
False)
287 args = parser.parse_args()
289 supportedSubsystems = [
'Muons',
'jFex',
'eFex',
'gFex',
'Topo']
290 args_subsystem = args.module.split(
',')
291 subsystem =
list(
set(args_subsystem) &
set(supportedSubsystems) )
292 filename = args.inputs
294 if len(subsystem)==0:
295 log.warning(f
'subsystem not given or the given subsystem not supported with one of the: {supportedSubsystems}')
297 if args.log ==
'info': algLogLevel = INFO
298 if args.log ==
'warning': algLogLevel = WARNING
299 if args.log ==
'debug': algLogLevel = DEBUG
300 if args.log ==
'verbose': algLogLevel = VERBOSE
304 flags.Exec.OutputLevel = algLogLevel
306 flags.Exec.MaxEvents = args.nevent
307 flags.Trigger.triggerMenuSetup =
'PhysicsP1_pp_run3_v1'
309 flags.Trigger.triggerConfig =
'FILE'
311 flags.Trigger.triggerConfig =
'DB'
312 flags.Input.Files = args.inputs
313 flags.Concurrency.NumThreads = 1
314 flags.Concurrency.NumConcurrentEvents = 1
315 flags.Exec.SkipEvents = args.skipEvents
316 flags.Output.AODFileName =
'AOD.pool.root'
317 flags.Trigger.L1.doMuon =
True
318 flags.Trigger.enableL1MuonPhase1 =
True
319 flags.Trigger.L1.doMuonTopoInputs =
True
320 flags.Trigger.enableL1TopoBWSimulation = args.useBW
321 flags.PerfMon.doFullMonMT = args.perfmon
322 flags.PerfMon.OutputJSON =
'perfmonmt_test.json'
323 flags.Trigger.enableL1TopoDump = args.enableL1TopoDump
324 from IOVDbSvc.IOVDbAutoCfgFlags
import getLastGlobalTag
327 if not flags.Input.isMC:
328 from AthenaConfiguration.TestDefaults
import defaultGeometryTags
329 flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN2
332 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
336 from PerfMonComps.PerfMonCompsConfig
import PerfMonMTSvcCfg
339 from TriggerJobOpts.TriggerByteStreamConfig
import ByteStreamReadCfg
343 from TrigConfigSvc.TrigConfigSvcCfg
import L1ConfigSvcCfg,generateL1Menu
345 if "data22" not in filename:
349 from AnalysisTriggerAlgs.AnalysisTriggerAlgsConfig
import RoIBResultToxAODCfg
351 acc.merge(xRoIBResultAcc)
355 maybeMissingRobs = []
357 from TrigT1ResultByteStream.TrigT1ResultByteStreamConfig
import RoIBResultByteStreamToolCfg
359 decoderTools += [roibResultTool]
361 for module_id
in roibResultTool.L1TopoModuleIds:
362 maybeMissingRobs.append(
int(SourceIdentifier(SubDetector.TDAQ_CALO_TOPO_PROC, module_id)))
364 for module_id
in roibResultTool.JetModuleIds:
365 maybeMissingRobs.append(
int(SourceIdentifier(SubDetector.TDAQ_CALO_JET_PROC_ROI, module_id)))
367 for module_id
in roibResultTool.EMModuleIds:
368 maybeMissingRobs.append(
int(SourceIdentifier(SubDetector.TDAQ_CALO_CLUSTER_PROC_ROI, module_id)))
372 auxType = edmType.replace(
'Container',
'AuxContainer')
373 return [f
'{edmType}#{edmName}',
374 f
'{auxType}#{edmName}Aux.']
376 outputEDM += [
'CTP_RDO#*']
377 outputEDM += [
'ROIB::RoIBResult#*']
379 outputEDM +=
addEDM(
'xAOD::JetEtRoI' ,
'LVL1JetEtRoI')
380 outputEDM +=
addEDM(
'xAOD::JetRoIContainer' ,
'LVL1JetRoIs')
381 outputEDM +=
addEDM(
'xAOD::EmTauRoIContainer',
'LVL1EmTauRoIs')
383 outputEDM += [
"xAOD::EnergySumRoI#LVL1EnergySumRoI",
"xAOD::EnergySumRoIAuxInfo#LVL1EnergySumRoIAux."]
385 if 'Muons' in subsystem:
386 from MuonConfig.MuonBytestreamDecodeConfig
import RpcBytestreamDecodeCfg,TgcBytestreamDecodeCfg
388 acc.merge(rpcdecodingAcc)
390 acc.merge(tgcdecodingAcc)
392 from TrigT1ResultByteStream.TrigT1ResultByteStreamConfig
import MuonRoIByteStreamToolCfg
394 decoderTools += [muonRoiTool]
395 outputEDM +=
addEDM(
'xAOD::MuonRoIContainer' ,
'*')
396 maybeMissingRobs += muonRoiTool.ROBIDs
398 if 'jFex' in subsystem:
399 from L1CaloFEXByteStream.L1CaloFEXByteStreamConfig
import jFexRoiByteStreamToolCfg,jFexInputByteStreamToolCfg
401 decoderTools += [jFexTool]
402 outputEDM +=
addEDM(
'xAOD::jFexSRJetRoIContainer', jFexTool.jJRoIContainerWriteKey.Path)
403 outputEDM +=
addEDM(
'xAOD::jFexLRJetRoIContainer', jFexTool.jLJRoIContainerWriteKey.Path)
404 outputEDM +=
addEDM(
'xAOD::jFexTauRoIContainer' , jFexTool.jTauRoIContainerWriteKey.Path)
405 outputEDM +=
addEDM(
'xAOD::jFexFwdElRoIContainer', jFexTool.jEMRoIContainerWriteKey.Path)
406 outputEDM +=
addEDM(
'xAOD::jFexSumETRoIContainer', jFexTool.jTERoIContainerWriteKey.Path)
407 outputEDM +=
addEDM(
'xAOD::jFexMETRoIContainer' , jFexTool.jXERoIContainerWriteKey.Path)
408 maybeMissingRobs += jFexTool.ROBIDs
411 decoderTools += [jFexInputByteStreamTool]
412 outputEDM +=
addEDM(
'xAOD::jFexTowerContainer', jFexInputByteStreamTool.jTowersWriteKey.Path)
413 maybeMissingRobs += jFexInputByteStreamTool.ROBIDs
416 if 'eFex' in subsystem:
417 from L1CaloFEXByteStream.L1CaloFEXByteStreamConfig
import eFexByteStreamToolCfg
418 eFexTool = acc.popToolsAndMerge(
eFexByteStreamToolCfg(flags,
'eFexBSDecoder', writeBS=
False, decodeInputs=args.doCaloInput))
419 decoderTools += [eFexTool]
420 outputEDM +=
addEDM(
'xAOD::eFexEMRoIContainer', eFexTool.eEMContainerWriteKey.Path)
421 outputEDM +=
addEDM(
'xAOD::eFexTauRoIContainer', eFexTool.eTAUContainerWriteKey.Path)
423 outputEDM +=
addEDM(
'xAOD::eFexTowerContainer', eFexTool.eTowerContainerWriteKey.Path)
424 maybeMissingRobs += eFexTool.ROBIDs
427 if 'gFex' in subsystem:
428 from L1CaloFEXByteStream.L1CaloFEXByteStreamConfig
import gFexByteStreamToolCfg,gFexInputByteStreamToolCfg
430 decoderTools += [gFexTool]
431 outputEDM +=
addEDM(
'xAOD::gFexJetRoIContainer', gFexTool.gFexRhoOutputContainerWriteKey.Path)
432 outputEDM +=
addEDM(
'xAOD::gFexJetRoIContainer', gFexTool.gFexSRJetOutputContainerWriteKey.Path)
433 outputEDM +=
addEDM(
'xAOD::gFexJetRoIContainer', gFexTool.gFexLRJetOutputContainerWriteKey.Path)
434 outputEDM +=
addEDM(
'xAOD::gFexGlobalRoIContainer', gFexTool.gScalarEJwojOutputContainerWriteKey.Path)
435 outputEDM +=
addEDM(
'xAOD::gFexGlobalRoIContainer', gFexTool.gMETComponentsJwojOutputContainerWriteKey.Path)
436 outputEDM +=
addEDM(
'xAOD::gFexGlobalRoIContainer', gFexTool.gMHTComponentsJwojOutputContainerWriteKey.Path)
437 outputEDM +=
addEDM(
'xAOD::gFexGlobalRoIContainer', gFexTool.gMSTComponentsJwojOutputContainerWriteKey.Path)
438 outputEDM +=
addEDM(
'xAOD::gFexGlobalRoIContainer', gFexTool.gMETComponentsNoiseCutOutputContainerWriteKey.Path)
439 outputEDM +=
addEDM(
'xAOD::gFexGlobalRoIContainer', gFexTool.gMETComponentsRmsOutputContainerWriteKey.Path)
440 outputEDM +=
addEDM(
'xAOD::gFexGlobalRoIContainer', gFexTool.gScalarENoiseCutOutputContainerWriteKey.Path)
441 outputEDM +=
addEDM(
'xAOD::gFexGlobalRoIContainer', gFexTool.gScalarERmsOutputContainerWriteKey.Path)
442 maybeMissingRobs += gFexTool.ROBIDs
445 decoderTools += [gFexInputByteStreamTool]
446 outputEDM +=
addEDM(
'xAOD::gFexTowerContainer', gFexInputByteStreamTool.gTowersWriteKey.Path)
447 maybeMissingRobs += gFexInputByteStreamTool.ROBIDs
449 if 'Topo' in subsystem:
450 from L1TopoByteStream.L1TopoByteStreamConfig
import L1TopoPhase1ByteStreamToolCfg
452 decoderTools += [l1topoBSTool]
453 outputEDM +=
addEDM(
'xAOD::L1TopoRawDataContainer', l1topoBSTool.L1TopoPhase1RAWDataWriteContainer.Path)
454 maybeMissingRobs += l1topoBSTool.ROBIDs
456 decoderAlg = CompFactory.L1TriggerByteStreamDecoderAlg(name=
"L1TriggerByteStreamDecoder",
457 DecoderTools=decoderTools,
458 MaybeMissingROBs=maybeMissingRobs,
459 OutputLevel=algLogLevel)
461 acc.addEventAlgo(decoderAlg, sequenceName=
'AthAlgSeq')
463 roib2topo = CompFactory.LVL1.RoiB2TopoInputDataCnv(name=
'RoiB2TopoInputDataCnv')
464 roib2topo.OutputLevel = algLogLevel
465 acc.addEventAlgo(roib2topo, sequenceName=
"AthAlgSeq")
466 from L1TopoByteStream.L1TopoByteStreamConfig
import L1TopoByteStreamCfg
468 outputEDM +=
addEDM(
'xAOD::L1TopoRawDataContainer',
'L1TopoRawData')
472 acc.getEventAlgo(
'L1TopoSimulation').FillHistoBasedOnHardware =
True
473 acc.getEventAlgo(
'L1TopoSimulation').PrescaleDAQROBAccess = 1
474 outputEDM +=
addEDM(
'xAOD::L1TopoSimResultsContainer',
'L1_TopoSimResults')
477 from L1TopoOnlineMonitoring
import L1TopoOnlineMonitoringConfig
as TopoMonConfig
479 TopoMonConfig.getL1TopoPhase1OnlineMonitor(flags,
'L1/L1TopoOffline',
True,
True,
True,
True,
True,args.forceCtp,algLogLevel),
480 sequenceName=
"AthAlgSeq"
483 from GaudiSvc.GaudiSvcConf
import THistSvc
484 histSvc = CompFactory.THistSvc(Output = [
"EXPERT DATAFILE='expert-monitoring-l1topo.root', OPT='RECREATE'"])
485 acc.addService(histSvc)
487 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
488 log.debug(
'Adding the following output EDM to ItemList: %s', outputEDM)
490 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
493 if args.log ==
'verbose' or args.perfmon:
494 acc.printConfig(withDetails=
True, summariseProps=
True, printDefaults=
True)
496 if acc.run().isFailure():