85def fromRunArgs(runArgs):
86 from AthenaCommon.Logging import logging
87 logOverlay = logging.getLogger('Overlay')
88 logOverlay.info('****************** STARTING OVERLAY *****************')
89
90 logOverlay.info('**** Transformation run arguments')
91 logOverlay.info(str(runArgs))
92
93 logOverlay.info('**** Setting-up configuration flags')
94 from AthenaConfiguration.AllConfigFlags import initConfigFlags
95 flags = initConfigFlags()
96
97 commonRunArgsToFlags(runArgs, flags)
98
99 flags.Common.ProductionStep = ProductionStep.Overlay
100
101
102 setOverlayInputFiles(runArgs, flags, logOverlay)
103
104
105 if hasattr(runArgs, 'outputRDOFile'):
106 if runArgs.outputRDOFile == 'None':
107 flags.Output.RDOFileName = ''
108 else:
109 flags.Output.RDOFileName = runArgs.outputRDOFile
110 else:
111 raise RuntimeError('No output RDO file defined')
112
113 if hasattr(runArgs, 'outputRDO_SGNLFile'):
114 flags.Output.RDO_SGNLFileName = runArgs.outputRDO_SGNLFile
115
116
117 if hasattr(runArgs, 'detectors'):
118 detectors = runArgs.detectors
119 else:
120 detectors = None
121
122
123 from DigitizationConfig.DigitizationConfigFlags import digitizationRunArgsToFlags
124 digitizationRunArgsToFlags(runArgs, flags)
125
126
127 from AthenaConfiguration.DetectorConfigFlags import setupDetectorFlags
128 setupDetectorFlags(flags, detectors, use_metadata=True, toggle_geometry=True)
129
130
131 if hasattr(runArgs, 'triggerConfig') and runArgs.triggerConfig == 'NONE':
132 flags.Detector.EnableL1Calo = False
133
134
135 from PerfMonComps.PerfMonConfigHelpers import setPerfmonFlagsFromRunArgs
136 setPerfmonFlagsFromRunArgs(flags, runArgs)
137
138
139 specialConfigPreInclude(flags)
140
141
142 processPreInclude(runArgs, flags)
143
144
145 processPreExec(runArgs, flags)
146
147
148 flags.fillFromArgs()
149
150
151
152 from OverlayConfiguration.OverlayMetadata import overlayMetadataCheck
153
154 overlayMetadataCheck(flags)
155
156
157 flags.lock()
158
159
160 from OverlayConfiguration.OverlaySteering import OverlayMainCfg
161 cfg = OverlayMainCfg(flags)
162
163
164 from DigitizationConfig.DigitizationSteering import DigitizationMessageSvcCfg
165 cfg.merge(DigitizationMessageSvcCfg(flags))
166
167
168 specialConfigPostInclude(flags, cfg)
169
170
171 processPostInclude(runArgs, flags, cfg)
172
173
174 processPostExec(runArgs, flags, cfg)
175
176
177 from PyUtils.AMITagHelperConfig import AMITagCfg
178 cfg.merge(AMITagCfg(flags, runArgs))
179
180
181 sc = cfg.run()
182 sys.exit(not sc.isSuccess())