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 jetProvider.gMETComponentsJwojKey =
""
132 if (energyProvider !=
""):
133 energyProvider.gFexSRJetRoIKey =
""
134 energyProvider.gFexLRJetRoIKey =
""
135 energyProvider.gMETComponentsJwojKey =
""
136 energyProvider.gMHTComponentsJwojKey =
""
137 energyProvider.gMETComponentsNoiseCutKey =
""
138 energyProvider.gMETComponentsRmsKey =
""
139 energyProvider.gScalarEJwojKey =
""
140 energyProvider.gEspressoKey =
""
142 if (jetProvider !=
"")
and (energyProvider !=
""):
144 jetProvider.gMETComponentsJwojKey = energyProvider.gMETComponentsJwojKey
146 topoSimAlg = CompFactory.LVL1.L1TopoSimulation(name,
147 MuonInputProvider = muProvider,
148 EMTAUInputProvider = emtauProvider,
149 JetInputProvider = jetProvider,
150 EnergyInputProvider = energyProvider,
151 ControlHistSvc = controlHistSvc,
152 IsLegacyTopo =
False,
153 doMonitoring = doMonitoring,
154 EnableInputDump = flags.Trigger.enableL1TopoDump,
155 UseBitwise = flags.Trigger.enableL1TopoBWSimulation
157 if name!=
"L1TopoSimulation":
158 topoSimAlg.MonHistBaseDir =
"L1/OnlineL1TopoAlgorithms"
160 acc.addEventAlgo(topoSimAlg)
164 from L1TopoOnlineMonitoring
import L1TopoOnlineMonitoringConfig
as TopoMonConfig
165 if name==
"L1TopoSimulation":
166 acc.addEventAlgo(TopoMonConfig.getL1TopoPhase1OnlineMonitor(flags,
'L1/L1TopoSimDecisions',
167 doHwMon=IsData,doComp=IsData, doMultComp=IsData))
169 acc.addEventAlgo(TopoMonConfig.getL1TopoPhase1OnlineMonitor(flags,
'L1/OnlineL1TopoSimDecisions',
170 toolName=name+
"_Monitor",
171 doHwMon=IsData,doComp=IsData, doMultComp=IsData))
179 efex_provider_attr = [
'eFexEMRoI',
'eFexTauRoI']
180 jfex_provider_attr = [
'jFexSRJetRoI',
'jFexLRJetRoI',
'jFexFwdElRoI',
'jFexTauRoI',
'jFexMETRoI',
'jFexSumETRoI',
'gMETComponentsJwoj']
181 gfex_provider_attr = [
'gFexSRJetRoI',
'gFexLRJetRoI',
'gScalarEJwoj',
'gMETComponentsJwoj',
'gMHTComponentsJwoj',
'gMETComponentsNoiseCut',
'gMETComponentsRms',
'gEspresso']
187 from L1TopoSimulation.L1TopoInputHistograms
import configureMuonInputProviderHistograms, configureeFexInputProviderHistograms, configurejFexInputProviderHistograms, configuregFexInputProviderHistograms
192 muProvider = CompFactory.LVL1.MuonInputProvider(
"MuonInputProvider")
194 if flags.Trigger.L1.doMuonTopoInputs:
195 muProvider.locationMuCTPItoL1Topo =
""
196 muProvider.locationMuCTPItoL1Topo1 =
""
197 muProvider.locationMuonRoI =
"L1MuCTPItoL1TopoLocationFromMuonRoI"
198 muProvider.locationMuonRoI1 =
"L1MuCTPItoL1TopoLocationFromMuonRoI1"
200 muProvider.locationMuonRoI =
""
201 muProvider.locationMuonRoI1 =
""
204 from TrigT1MuonRecRoiTool.TrigT1MuonRecRoiToolConfig
import RPCRecRoiToolCfg, TGCRecRoiToolCfg
208 muProvider.MonTool.HistPath =
'L1TopoSimulation/MuonInputProvider'
212 efexProvider = CompFactory.LVL1.eFexInputProvider(
"eFexInputProvider")
214 efexProvider.MonTool.HistPath =
'L1TopoSimulation/eFexInputProvider'
216 jfexProvider = CompFactory.LVL1.jFexInputProvider(
"jFexInputProvider")
218 jfexProvider.MonTool.HistPath =
'L1TopoSimulation/jFexInputProvider'
220 gfexProvider = CompFactory.LVL1.gFexInputProvider(
"gFexInputProvider")
222 gfexProvider.MonTool.HistPath =
'L1TopoSimulation/gFexInputProvider'
225 for attr
in efex_provider_attr:
226 res = [x
for x
in outputEDM
if attr
in x]
228 key = res[0].
split(
'#')[1]
229 print (f
'Key found for eFEX: {key}')
230 setattr(efexProvider,attr+
'Key',key)
232 setattr(efexProvider,attr+
'Key',
'')
234 for attr
in jfex_provider_attr:
235 res = [x
for x
in outputEDM
if attr
in x]
237 key = res[0].
split(
'#')[1]
238 print (f
'Key found for jFEX: {key}')
239 setattr(jfexProvider,attr+
'Key',key)
241 setattr(jfexProvider,attr+
'Key',
'')
243 for attr
in gfex_provider_attr:
244 res = [x
for x
in outputEDM
if attr
in x]
246 key = res[0].
split(
'#')[1]
247 print (f
'Key found for gFEX: {key}')
248 setattr(gfexProvider,attr+
'Key',key)
250 setattr(gfexProvider,attr+
'Key',
'')
252 topoSimAlg = CompFactory.LVL1.L1TopoSimulation(
"L1TopoSimulation",
253 MuonInputProvider = muProvider,
254 EMTAUInputProvider = efexProvider,
255 JetInputProvider = jfexProvider,
256 EnergyInputProvider = gfexProvider,
257 IsLegacyTopo =
False,
258 doMonitoring = doMonitoring,
259 EnableInputDump = flags.Trigger.enableL1TopoDump,
260 UseBitwise = flags.Trigger.enableL1TopoBWSimulation
263 acc.addEventAlgo(topoSimAlg)
267 if __name__ ==
'__main__':
268 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
269 from AthenaCommon.Logging
import logging
272 from argparse
import RawTextHelpFormatter
274 from libpyeformat_helper
import SourceIdentifier, SubDetector
276 log = logging.getLogger(
'runL1TopoSim')
280 parser = argparse.ArgumentParser(
"Running L1TopoSimulation standalone for the BS input", formatter_class=RawTextHelpFormatter)
281 parser.add_argument(
"-i",
"--inputs",nargs=
'*',action=
"store", dest=
"inputs", help=
"Inputs will be used in commands", required=
True)
282 parser.add_argument(
"-m",
"--module",action=
"store", dest=
"module", help=
"Input modules wants to be simulated.",default=
"", required=
False)
283 parser.add_argument(
"-bw",
"--useBitWise",action=
"store_true", dest=
"useBW", help=
"Run with L1Topo Bitwise simulation?",default=
True, required=
False)
284 parser.add_argument(
"-ifex",
"--doCaloInput",action=
"store_true", dest=
"doCaloInput", help=
"Decoding L1Calo inputs",default=
False, required=
False)
285 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)
286 parser.add_argument(
"-hdwMon",
"--algoHdwMon",action=
"store_true", dest=
"algoHdwMon", help=
"Fill algorithm histograms based on hardware decision.",default=
False, required=
False)
287 parser.add_argument(
"-perfMon",
"--perfMonitoring",action=
"store_true", dest=
"perfmon", help=
"Enable performance monitoring",default=
False, required=
False)
288 parser.add_argument(
"-redoMenu",
"--rederiveMenu",action=
"store_true", dest=
"redoMenu", help=
"Will rederive the menu based in local code",default=
False, required=
False)
289 parser.add_argument(
"-l",
"--logLevel",action=
"store", dest=
"log", help=
"Log level.",default=
"warning", required=
False)
290 parser.add_argument(
"-n",
"--nevent", type=int, action=
"store", dest=
"nevent", help=
"Maximum number of events will be executed.",default=0, required=
False)
291 parser.add_argument(
"-s",
"--skipEvents", type=int, action=
"store", dest=
"skipEvents", help=
"How many events will be skipped.",default=0, required=
False)
292 parser.add_argument(
"-d",
"--enableL1TopoDump", type=bool, action=
"store", dest=
"enableL1TopoDump", help=
"Whether to output events into inputdump.txt",default=
False, required=
False)
293 args = parser.parse_args()
295 supportedSubsystems = [
'Muons',
'jFex',
'eFex',
'gFex',
'Topo']
296 args_subsystem = args.module.split(
',')
297 subsystem =
list(
set(args_subsystem) &
set(supportedSubsystems) )
298 filename = args.inputs
300 if len(subsystem)==0:
301 log.warning(f
'subsystem not given or the given subsystem not supported with one of the: {supportedSubsystems}')
303 if args.log ==
'info': algLogLevel = INFO
304 if args.log ==
'warning': algLogLevel = WARNING
305 if args.log ==
'debug': algLogLevel = DEBUG
306 if args.log ==
'verbose': algLogLevel = VERBOSE
310 flags.Exec.OutputLevel = algLogLevel
312 flags.Exec.MaxEvents = args.nevent
313 flags.Trigger.triggerMenuSetup =
'PhysicsP1_pp_run3_v1'
315 flags.Trigger.triggerConfig =
'FILE'
317 flags.Trigger.triggerConfig =
'DB'
318 flags.Input.Files = args.inputs
319 flags.Concurrency.NumThreads = 1
320 flags.Concurrency.NumConcurrentEvents = 1
321 flags.Exec.SkipEvents = args.skipEvents
322 flags.Output.AODFileName =
'AOD.pool.root'
323 flags.Trigger.L1.doMuon =
True
324 flags.Trigger.enableL1MuonPhase1 =
True
325 flags.Trigger.L1.doMuonTopoInputs =
True
326 flags.Trigger.enableL1TopoBWSimulation = args.useBW
327 flags.PerfMon.doFullMonMT = args.perfmon
328 flags.PerfMon.OutputJSON =
'perfmonmt_test.json'
329 flags.Trigger.enableL1TopoDump = args.enableL1TopoDump
330 from IOVDbSvc.IOVDbAutoCfgFlags
import getLastGlobalTag
333 if not flags.Input.isMC:
334 from AthenaConfiguration.TestDefaults
import defaultGeometryTags
335 flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN2
338 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
342 from PerfMonComps.PerfMonCompsConfig
import PerfMonMTSvcCfg
345 from TriggerJobOpts.TriggerByteStreamConfig
import ByteStreamReadCfg
349 from TrigConfigSvc.TrigConfigSvcCfg
import L1ConfigSvcCfg,generateL1Menu
351 if "data22" not in filename:
355 from AnalysisTriggerAlgs.AnalysisTriggerAlgsConfig
import RoIBResultToxAODCfg
357 acc.merge(xRoIBResultAcc)
361 maybeMissingRobs = []
363 from TrigT1ResultByteStream.TrigT1ResultByteStreamConfig
import RoIBResultByteStreamToolCfg
365 decoderTools += [roibResultTool]
367 for module_id
in roibResultTool.L1TopoModuleIds:
368 maybeMissingRobs.append(
int(SourceIdentifier(SubDetector.TDAQ_CALO_TOPO_PROC, module_id)))
370 for module_id
in roibResultTool.JetModuleIds:
371 maybeMissingRobs.append(
int(SourceIdentifier(SubDetector.TDAQ_CALO_JET_PROC_ROI, module_id)))
373 for module_id
in roibResultTool.EMModuleIds:
374 maybeMissingRobs.append(
int(SourceIdentifier(SubDetector.TDAQ_CALO_CLUSTER_PROC_ROI, module_id)))
378 auxType = edmType.replace(
'Container',
'AuxContainer')
379 return [f
'{edmType}#{edmName}',
380 f
'{auxType}#{edmName}Aux.']
382 outputEDM += [
'CTP_RDO#*']
383 outputEDM += [
'ROIB::RoIBResult#*']
385 outputEDM +=
addEDM(
'xAOD::JetEtRoI' ,
'LVL1JetEtRoI')
386 outputEDM +=
addEDM(
'xAOD::JetRoIContainer' ,
'LVL1JetRoIs')
387 outputEDM +=
addEDM(
'xAOD::EmTauRoIContainer',
'LVL1EmTauRoIs')
389 outputEDM += [
"xAOD::EnergySumRoI#LVL1EnergySumRoI",
"xAOD::EnergySumRoIAuxInfo#LVL1EnergySumRoIAux."]
391 if 'Muons' in subsystem:
392 from MuonConfig.MuonBytestreamDecodeConfig
import RpcBytestreamDecodeCfg,TgcBytestreamDecodeCfg
394 acc.merge(rpcdecodingAcc)
396 acc.merge(tgcdecodingAcc)
398 from TrigT1ResultByteStream.TrigT1ResultByteStreamConfig
import MuonRoIByteStreamToolCfg
400 decoderTools += [muonRoiTool]
401 outputEDM +=
addEDM(
'xAOD::MuonRoIContainer' ,
'*')
402 maybeMissingRobs += muonRoiTool.ROBIDs
404 if 'jFex' in subsystem:
405 from L1CaloFEXByteStream.L1CaloFEXByteStreamConfig
import jFexRoiByteStreamToolCfg,jFexInputByteStreamToolCfg
407 decoderTools += [jFexTool]
408 outputEDM +=
addEDM(
'xAOD::jFexSRJetRoIContainer', jFexTool.jJRoIContainerWriteKey.Path)
409 outputEDM +=
addEDM(
'xAOD::jFexLRJetRoIContainer', jFexTool.jLJRoIContainerWriteKey.Path)
410 outputEDM +=
addEDM(
'xAOD::jFexTauRoIContainer' , jFexTool.jTauRoIContainerWriteKey.Path)
411 outputEDM +=
addEDM(
'xAOD::jFexFwdElRoIContainer', jFexTool.jEMRoIContainerWriteKey.Path)
412 outputEDM +=
addEDM(
'xAOD::jFexSumETRoIContainer', jFexTool.jTERoIContainerWriteKey.Path)
413 outputEDM +=
addEDM(
'xAOD::jFexMETRoIContainer' , jFexTool.jXERoIContainerWriteKey.Path)
414 maybeMissingRobs += jFexTool.ROBIDs
417 decoderTools += [jFexInputByteStreamTool]
418 outputEDM +=
addEDM(
'xAOD::jFexTowerContainer', jFexInputByteStreamTool.jTowersWriteKey.Path)
419 maybeMissingRobs += jFexInputByteStreamTool.ROBIDs
422 if 'eFex' in subsystem:
423 from L1CaloFEXByteStream.L1CaloFEXByteStreamConfig
import eFexByteStreamToolCfg
424 eFexTool = acc.popToolsAndMerge(
eFexByteStreamToolCfg(flags,
'eFexBSDecoder', writeBS=
False, decodeInputs=args.doCaloInput))
425 decoderTools += [eFexTool]
426 outputEDM +=
addEDM(
'xAOD::eFexEMRoIContainer', eFexTool.eEMContainerWriteKey.Path)
427 outputEDM +=
addEDM(
'xAOD::eFexTauRoIContainer', eFexTool.eTAUContainerWriteKey.Path)
429 outputEDM +=
addEDM(
'xAOD::eFexTowerContainer', eFexTool.eTowerContainerWriteKey.Path)
430 maybeMissingRobs += eFexTool.ROBIDs
433 if 'gFex' in subsystem:
434 from L1CaloFEXByteStream.L1CaloFEXByteStreamConfig
import gFexByteStreamToolCfg,gFexInputByteStreamToolCfg
436 decoderTools += [gFexTool]
437 outputEDM +=
addEDM(
'xAOD::gFexJetRoIContainer', gFexTool.gFexRhoOutputContainerWriteKey.Path)
438 outputEDM +=
addEDM(
'xAOD::gFexJetRoIContainer', gFexTool.gFexSRJetOutputContainerWriteKey.Path)
439 outputEDM +=
addEDM(
'xAOD::gFexJetRoIContainer', gFexTool.gFexLRJetOutputContainerWriteKey.Path)
440 outputEDM +=
addEDM(
'xAOD::gFexGlobalRoIContainer', gFexTool.gScalarEJwojOutputContainerWriteKey.Path)
441 outputEDM +=
addEDM(
'xAOD::gFexGlobalRoIContainer', gFexTool.gEspressoOutputContainerWriteKey.Path)
442 print(
"Espresso Path: ", gFexTool.gEspressoOutputContainerWriteKey.Path)
443 outputEDM +=
addEDM(
'xAOD::gFexGlobalRoIContainer', gFexTool.gMETComponentsJwojOutputContainerWriteKey.Path)
444 outputEDM +=
addEDM(
'xAOD::gFexGlobalRoIContainer', gFexTool.gMHTComponentsJwojOutputContainerWriteKey.Path)
445 outputEDM +=
addEDM(
'xAOD::gFexGlobalRoIContainer', gFexTool.gMSTComponentsJwojOutputContainerWriteKey.Path)
446 outputEDM +=
addEDM(
'xAOD::gFexGlobalRoIContainer', gFexTool.gMETComponentsNoiseCutOutputContainerWriteKey.Path)
447 outputEDM +=
addEDM(
'xAOD::gFexGlobalRoIContainer', gFexTool.gMETComponentsRmsOutputContainerWriteKey.Path)
448 outputEDM +=
addEDM(
'xAOD::gFexGlobalRoIContainer', gFexTool.gScalarENoiseCutOutputContainerWriteKey.Path)
449 outputEDM +=
addEDM(
'xAOD::gFexGlobalRoIContainer', gFexTool.gScalarERmsOutputContainerWriteKey.Path)
450 maybeMissingRobs += gFexTool.ROBIDs
453 decoderTools += [gFexInputByteStreamTool]
454 outputEDM +=
addEDM(
'xAOD::gFexTowerContainer', gFexInputByteStreamTool.gTowersWriteKey.Path)
455 maybeMissingRobs += gFexInputByteStreamTool.ROBIDs
457 if 'Topo' in subsystem:
458 from L1TopoByteStream.L1TopoByteStreamConfig
import L1TopoPhase1ByteStreamToolCfg
460 decoderTools += [l1topoBSTool]
461 outputEDM +=
addEDM(
'xAOD::L1TopoRawDataContainer', l1topoBSTool.L1TopoPhase1RAWDataWriteContainer.Path)
462 maybeMissingRobs += l1topoBSTool.ROBIDs
464 decoderAlg = CompFactory.L1TriggerByteStreamDecoderAlg(name=
"L1TriggerByteStreamDecoder",
465 DecoderTools=decoderTools,
466 MaybeMissingROBs=maybeMissingRobs,
467 OutputLevel=algLogLevel)
469 acc.addEventAlgo(decoderAlg, sequenceName=
'AthAlgSeq')
471 roib2topo = CompFactory.LVL1.RoiB2TopoInputDataCnv(name=
'RoiB2TopoInputDataCnv')
472 roib2topo.OutputLevel = algLogLevel
473 acc.addEventAlgo(roib2topo, sequenceName=
"AthAlgSeq")
474 from L1TopoByteStream.L1TopoByteStreamConfig
import L1TopoByteStreamCfg
476 outputEDM +=
addEDM(
'xAOD::L1TopoRawDataContainer',
'L1TopoRawData')
480 acc.getEventAlgo(
'L1TopoSimulation').FillHistoBasedOnHardware =
True
481 acc.getEventAlgo(
'L1TopoSimulation').PrescaleDAQROBAccess = 1
482 outputEDM +=
addEDM(
'xAOD::L1TopoSimResultsContainer',
'L1_TopoSimResults')
485 from L1TopoOnlineMonitoring
import L1TopoOnlineMonitoringConfig
as TopoMonConfig
487 TopoMonConfig.getL1TopoPhase1OnlineMonitor(flags,
'L1/L1TopoOffline',
True,
True,
True,
True,
True,args.forceCtp,algLogLevel),
488 sequenceName=
"AthAlgSeq"
491 from GaudiSvc.GaudiSvcConf
import THistSvc
492 histSvc = CompFactory.THistSvc(Output = [
"EXPERT DATAFILE='expert-monitoring-l1topo.root', OPT='RECREATE'"])
493 acc.addService(histSvc)
495 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
496 log.debug(
'Adding the following output EDM to ItemList: %s', outputEDM)
498 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
501 if args.log ==
'verbose' or args.perfmon:
502 acc.printConfig(withDetails=
True, summariseProps=
True, printDefaults=
True)
504 if acc.run().isFailure():