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

Variable Documentation

◆ jobPropertiesDisallowed

python.FastChainSkeleton.jobPropertiesDisallowed

Definition at line 12 of file FastChainSkeleton.py.