ATLAS Offline Software
Loading...
Searching...
No Matches
python.FastChainSkeleton Namespace Reference

Functions

 fromRunArgs (runArgs)

Variables

 jobPropertiesDisallowed

Function Documentation

◆ fromRunArgs()

python.FastChainSkeleton.fromRunArgs ( runArgs)

Definition at line 15 of file FastChainSkeleton.py.

15def fromRunArgs(runArgs):
16 from AthenaCommon.Logging import logging
17 logFastChain = logging.getLogger('FastChainSkeleton')
18 logFastChain.info('****************** STARTING FastChain Simulation *****************')
19
20 logFastChain.info('**** Transformation run arguments')
21 logFastChain.info(str(runArgs))
22
23 logFastChain.info('**** Setting-up configuration flags')
24 from AthenaConfiguration.AllConfigFlags import initConfigFlags
25 flags = initConfigFlags()
26
27 from SimulationConfig.SimEnums import SimulationFlavour
28 commonRunArgsToFlags(runArgs, flags)
29
30 # Set ProductionStep
31 from AthenaConfiguration.Enums import ProductionStep
32 flags.Common.ProductionStep = ProductionStep.FastChain
33
34 # Set simulator
35 if hasattr(runArgs, 'simulator'):
36 flags.Sim.ISF.Simulator = SimulationFlavour(runArgs.simulator)
37
38 # This is ISF
39 flags.Sim.ISFRun = True
40
41 #Force old-style simulation parameters via sqlite until CI tests are updated
42 # See ATLASSIM-7742
43 flags.IOVDb.WriteParametersAsMetaData=False
44
45 # Set input files
46 if hasattr(runArgs, 'inputRDO_BKGFile'):
47 # Set inputs for Overlay
48 from OverlayConfiguration.OverlaySkeleton import setOverlayInputFiles
49 setOverlayInputFiles(runArgs, flags, logFastChain)
50 flags.Common.isOverlay = True
51 flags.Digitization.PileUp = False
52
53 if flags.Overlay.DataOverlay:
54 from SimulationConfig.SimEnums import VertexSource
55 if flags.Sim.VertexSource is VertexSource.CondDB: # check vs the default to allow overriding
56 flags.Sim.VertexSource = VertexSource.MatchingBkg
57 else:
58 # Setting input files for FastChain without overlay
59 if hasattr(runArgs, 'inputEVNTFile'):
60 flags.Input.Files = runArgs.inputEVNTFile
61 else:
62 raise RuntimeError('No input EVNT file defined')
63
64 # Setting output files (including for Overlay) for FastChain
65 if hasattr(runArgs, 'outputHITSFile'):
66 flags.Output.HITSFileName = runArgs.outputHITSFile
67
68 if hasattr(runArgs, 'outputRDOFile'):
69 if runArgs.outputRDOFile == 'None':
70 flags.Output.RDOFileName = ''
71 else:
72 flags.Output.RDOFileName = runArgs.outputRDOFile
73 else:
74 raise RuntimeError('No outputRDOFile defined')
75
76 if flags.Common.isOverlay:
77 if hasattr(runArgs, 'outputRDO_SGNLFile'):
78 flags.Output.RDO_SGNLFileName = runArgs.outputRDO_SGNLFile
79
80 if hasattr(runArgs, 'conditionsTag'):
81 flags.IOVDb.GlobalTag = runArgs.conditionsTag
82
83 # Generate detector list (must be after input setting)
84 from SimuJobTransforms.SimulationHelpers import getDetectorsFromRunArgs
85 detectors = getDetectorsFromRunArgs(flags, runArgs)
86
87 # Setup detector flags
88 from AthenaConfiguration.DetectorConfigFlags import setupDetectorFlags
89 setupDetectorFlags(flags, detectors, toggle_geometry=True)
90
91 # Common simulation runtime arguments
92 from SimulationConfig.SimConfigFlags import simulationRunArgsToFlags
93 simulationRunArgsToFlags(runArgs, flags)
94
95 # Setup digitization flags
96 from DigitizationConfig.DigitizationConfigFlags import digitizationRunArgsToFlags
97 digitizationRunArgsToFlags(runArgs, flags)
98
99 # Setup flags for pile-up
100 if not flags.Common.isOverlay:
101 # Setup common digitization flags
102 from DigitizationConfig.DigitizationConfigFlags import setupDigitizationFlags
103 setupDigitizationFlags(runArgs, flags)
104 logFastChain.info('Running with pile-up: %s', flags.Digitization.PileUp)
105
106 # Disable LVL1 trigger if triggerConfig explicitly set to 'NONE'
107 if hasattr(runArgs, 'triggerConfig') and runArgs.triggerConfig == 'NONE':
108 flags.Detector.EnableL1Calo = False
109
110 # Setup perfmon flags from runargs
111 from PerfMonComps.PerfMonConfigHelpers import setPerfmonFlagsFromRunArgs
112 setPerfmonFlagsFromRunArgs(flags, runArgs)
113
114 # Pre-include
115 processPreInclude(runArgs, flags)
116
117 # Special Configuration preInclude
118 specialConfigPreInclude(flags)
119
120 # Pre-exec
121 processPreExec(runArgs, flags)
122
123 if not flags.Common.isOverlay:
124 # Load pile-up stuff after pre-include/exec to ensure everything is up-to-date
125 from DigitizationConfig.DigitizationConfigFlags import pileupRunArgsToFlags
126 pileupRunArgsToFlags(runArgs, flags)
127
128 # Setup pile-up profile
129 if flags.Digitization.PileUp:
130 from RunDependentSimComps.PileUpUtils import setupPileUpProfile
131 setupPileUpProfile(flags)
132
133 flags.Sim.DoFullChain = True
134 # For jobs running Overlay we take the run number from the
135 # background RDOs, so we don't actually need to override the run
136 # number.
137 if flags.Common.isOverlay:
138 flags.Input.OverrideRunNumber = False
139 # data overlay is special, in this case we want and need to do it
140 if flags.Overlay.DataOverlay:
141 flags.Input.OverrideRunNumber = True
142 from CoolConvUtilities.MagFieldUtils import getTimeForLB
143 flags.Input.TimeStamps = [int(getTimeForLB(run=flags.Input.RunNumbers[0], LB=flags.Input.LumiBlockNumbers[0])/1e9)]
144
145
146 # To respect --athenaopts
147 flags.fillFromArgs()
148
149 # Moving here so that it is ahead of flags being locked. Need to
150 # iterate on exact best position w.r.t. above calls
151 # Handle metadata correctly
152 if flags.Common.isOverlay:
153 from OverlayConfiguration.OverlayMetadata import fastChainOverlayMetadataCheck
154 fastChainOverlayMetadataCheck(flags)
155
156 # Lock flags
157 flags.lock()
158
159 if flags.Digitization.PileUp:
160 from DigitizationConfig.PileUpConfig import PileUpEventLoopMgrCfg
161 cfg = MainServicesCfg(flags, LoopMgr="PileUpEventLoopMgr")
162 cfg.merge(PileUpEventLoopMgrCfg(flags))
163 else:
164 cfg = MainServicesCfg(flags)
165
166 cfg.merge(PoolReadCfg(flags))
167
168 from BeamEffects.BeamEffectsAlgConfig import BeamEffectsAlgCfg
169 cfg.merge(BeamEffectsAlgCfg(flags))
170
171 if not flags.Digitization.PileUp and not flags.Common.isOverlay:
172 # Make sure signal EventInfo is rebuilt from event context
173 # TODO: this is probably not needed, but keeping it to be in sync with standard simulation
174 from xAODEventInfoCnv.xAODEventInfoCnvConfig import EventInfoUpdateFromContextAlgCfg
175 cfg.merge(EventInfoUpdateFromContextAlgCfg(flags))
176
177 if flags.Common.isOverlay:
178 from xAODEventInfoCnv.xAODEventInfoCnvConfig import EventInfoOverlayCfg
179 cfg.merge(EventInfoOverlayCfg(flags))
180 # CopyMcEventCollection should be before Kernel
181 if not flags.Overlay.DataOverlay:
182 from OverlayCopyAlgs.OverlayCopyAlgsConfig import CopyMcEventCollectionCfg
183 cfg.merge(CopyMcEventCollectionCfg(flags))
184
185 from ISF_Config.ISF_MainConfig import ISF_KernelCfg
186 cfg.merge(ISF_KernelCfg(flags))
187
188 # Main Overlay Steering
189 if flags.Common.isOverlay:
190 from OverlayConfiguration.OverlaySteering import OverlayMainContentCfg
191 cfg.merge(OverlayMainContentCfg(flags))
192 else:
193 from DigitizationConfig.DigitizationSteering import DigitizationMainContentCfg
194 cfg.merge(DigitizationMainContentCfg(flags))
195
196 # Allow writing hits to output if requested
197 if flags.Output.HITSFileName:
198 from AthenaConfiguration.Enums import MetadataCategory
199 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
200 from SimuJobTransforms.SimOutputConfig import getStreamHITS_ItemList
201 from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
202 cfg.merge(OutputStreamCfg(flags, "HITS", ItemList=getStreamHITS_ItemList(flags)))
203 cfg.merge(SetupMetaDataForStreamCfg(flags, "HITS", createMetadata=[MetadataCategory.IOVMetaData]))
204
205 # Special message service configuration
206 from DigitizationConfig.DigitizationSteering import DigitizationMessageSvcCfg
207 cfg.merge(DigitizationMessageSvcCfg(flags))
208
209 # Special Configuration postInclude
210 specialConfigPostInclude(flags, cfg)
211
212 # Post-include
213 processPostInclude(runArgs, flags, cfg)
214
215 # Post-exec
216 processPostExec(runArgs, flags, cfg)
217
218 from AthenaConfiguration.Utils import setupLoggingLevels
219 setupLoggingLevels(flags, cfg)
220
221 # Run the final accumulator
222 sc = cfg.run()
223 sys.exit(not sc.isSuccess())

Variable Documentation

◆ jobPropertiesDisallowed

python.FastChainSkeleton.jobPropertiesDisallowed

Definition at line 12 of file FastChainSkeleton.py.