ATLAS Offline Software
Loading...
Searching...
No Matches
Lvl1SimulationConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2
3
6
7
8def Lvl1SimulationCfg(flags, seqName = None):
9 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
10 from AthenaCommon.CFElements import parOR
11 if seqName:
12 acc = ComponentAccumulator(sequence=parOR(seqName))
13 else:
14 acc = ComponentAccumulator()
15
16 from AthenaCommon.CFElements import seqAND
17 acc.addSequence(seqAND('L1SimSeq'))
18
19 if flags.Trigger.enableL1CaloLegacy:
20 acc.addSequence(seqAND('L1CaloLegacySimSeq'), parentName='L1SimSeq')
21 from TrigT1CaloSim.TrigT1CaloSimRun2Config import L1CaloLegacySimCfg
22 acc.merge(L1CaloLegacySimCfg(flags), sequenceName='L1CaloLegacySimSeq')
23
24 acc.addSequence(seqAND('L1CaloSimSeq'), parentName='L1SimSeq')
25
26 if flags.Trigger.enableL1CaloPhase1:
27 from L1CaloFEXSim.L1CaloFEXSimCfg import L1CaloFEXSimCfg
28 acc.merge(L1CaloFEXSimCfg(flags), sequenceName = 'L1CaloSimSeq')
29
30 if flags.Trigger.enableL0Muon:
31 acc.addSequence(seqAND('L0MuonSimSeq'), parentName='L1SimSeq')
32 from TriggerJobOpts.L0MuonSimulationConfig import L0MuonSimulationCfg
33 acc.merge(L0MuonSimulationCfg(flags), sequenceName='L0MuonSimSeq')
34 elif flags.Trigger.enableL1MuonPhase1:
35 acc.addSequence(seqAND('L1MuonSimSeq'), parentName='L1SimSeq')
36 from TriggerJobOpts.Lvl1MuonSimulationConfig import Lvl1MuonSimulationCfg
37 acc.merge(Lvl1MuonSimulationCfg(flags), sequenceName='L1MuonSimSeq')
38
39 if flags.Trigger.L1.doTopo:
40 acc.addSequence(seqAND('L1TopoSimSeq'), parentName='L1SimSeq')
41 from L1TopoSimulation.L1TopoSimulationConfig import L1TopoSimulationCfg
42 acc.merge(L1TopoSimulationCfg(flags), sequenceName='L1TopoSimSeq')
43
44 if flags.Trigger.L1.doGlobal:
45 globalSimSeqName = 'L0GlobalSimSeq'
46 acc.addSequence(parOR(globalSimSeqName), parentName='L1SimSeq')
47 from GlobalSimulation.GlobalL1TopoSimulation import GlobalL1TopoSimulationCfg
48 acc.merge(GlobalL1TopoSimulationCfg(flags), sequenceName=globalSimSeqName)
49
50 if flags.Trigger.doZDC:
51 acc.addSequence(seqAND('L1ZDCSimSeq'),parentName='L1SimSeq')
52 from TrigT1ZDC.TrigT1ZDCConfig import L1ZDCSimCfg
53 acc.merge(L1ZDCSimCfg(flags), sequenceName = 'L1ZDCSimSeq')
54
55 if flags.Trigger.doTRT:
56 acc.addSequence(seqAND('L1TRTSimSeq'),parentName='L1SimSeq')
57 from TrigT1TRT.TrigT1TRTConfig import L1TRTSimCfg
58 acc.merge(L1TRTSimCfg(flags), sequenceName = 'L1TRTSimSeq')
59
60
61 acc.addSequence(seqAND('L1CTPSimSeq'), parentName='L1SimSeq')
62 from TrigT1CTP.CTPSimulationConfig import CTPSimulationCfg
63 acc.merge(CTPSimulationCfg(flags), sequenceName="L1CTPSimSeq")
64
65
66 return acc
67
68if __name__ == '__main__':
69 import sys
70 from AthenaConfiguration.AllConfigFlags import initConfigFlags
71
72 # The HLS code will trip an assertion is this doesn't exist...
73 import os
74 os.makedirs ('tb_data', exist_ok = True)
75
76 flags = initConfigFlags()
77 flags.Input.Files = ['/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TriggerTest/valid1.601229.PhPy8EG_A14_ttbar_hdamp258p75_SingleLep.recon.RDO.e8514_e8528_s4159_s4114_r14799_tid34171421_00/RDO.34171421._000011.pool.root.1']
78 flags.Exec.MaxEvents = 5
79 flags.Concurrency.NumThreads = 1
80 flags.Trigger.triggerMenuSetup = 'Dev_pp_run3_v1'
81 flags.IOVDb.GlobalTag="OFLCOND-MC23-SDR-RUN3-05" # temporary override until the input RDO is updated to a MC23e setup
82 flags.Trigger.doHLT = True # this is necessary so that the simulation of L1Calo (if running on MC) gets output with keys that Topo sim expects
83 flags.fillFromArgs()
84 flags.lock()
85
86 from AthenaConfiguration.MainServicesConfig import MainServicesCfg
87 acc = MainServicesCfg(flags)
88
89 from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
90 acc.merge(PoolReadCfg(flags))
91
92 from TrigConfigSvc.TrigConfigSvcCfg import generateL1Menu
93 generateL1Menu(flags)
94
95 acc.merge(Lvl1SimulationCfg(flags))
96
97 acc.printConfig(withDetails=True, summariseProps=True, printDefaults=True)
98 sys.exit(acc.run().isFailure())
Lvl1SimulationCfg(flags, seqName=None)
this function sets up the top L1 simulation sequence