62def fromRunArgs(runArgs):
63 from AthenaCommon.Logging import logging
64 logOverlay = logging.getLogger('Overlay')
65 logOverlay.info('****************** STARTING OVERLAY *****************')
66
67 logOverlay.info('**** Transformation run arguments')
68 logOverlay.info(
str(runArgs))
69
70 logOverlay.info('**** Setting-up configuration flags')
71 from AthenaConfiguration.AllConfigFlags import initConfigFlags
72 flags = initConfigFlags()
73
74 commonRunArgsToFlags(runArgs, flags)
75
76 flags.Common.ProductionStep = ProductionStep.Overlay
77
78
79 setOverlayInputFiles(runArgs, flags, logOverlay)
80
81
82 if hasattr(runArgs, 'outputRDOFile'):
83 if runArgs.outputRDOFile == 'None':
84 flags.Output.RDOFileName = ''
85 else:
86 flags.Output.RDOFileName = runArgs.outputRDOFile
87 else:
88 raise RuntimeError('No output RDO file defined')
89
90 if hasattr(runArgs, 'outputRDO_SGNLFile'):
91 flags.Output.RDO_SGNLFileName = runArgs.outputRDO_SGNLFile
92
93
94 if hasattr(runArgs, 'detectors'):
95 detectors = runArgs.detectors
96 else:
97 detectors = None
98
99
100 from DigitizationConfig.DigitizationConfigFlags import digitizationRunArgsToFlags
101 digitizationRunArgsToFlags(runArgs, flags)
102
103
104 from AthenaConfiguration.DetectorConfigFlags import setupDetectorFlags
105 setupDetectorFlags(flags, detectors, use_metadata=True, toggle_geometry=True)
106
107
108 if hasattr(runArgs, 'triggerConfig') and runArgs.triggerConfig == 'NONE':
109 flags.Detector.EnableL1Calo = False
110
111
112 from PerfMonComps.PerfMonConfigHelpers import setPerfmonFlagsFromRunArgs
113 setPerfmonFlagsFromRunArgs(flags, runArgs)
114
115
116 specialConfigPreInclude(flags)
117
118
119 processPreInclude(runArgs, flags)
120
121
122 processPreExec(runArgs, flags)
123
124
125 flags.fillFromArgs()
126
127
128
129 from OverlayConfiguration.OverlayMetadata import overlayMetadataCheck
130
131 overlayMetadataCheck(flags)
132
133
134 flags.lock()
135
136
137 from OverlayConfiguration.OverlaySteering import OverlayMainCfg
138 cfg = OverlayMainCfg(flags)
139
140
141 from DigitizationConfig.DigitizationSteering import DigitizationMessageSvcCfg
142 cfg.merge(DigitizationMessageSvcCfg(flags))
143
144
145 specialConfigPostInclude(flags, cfg)
146
147
148 processPostInclude(runArgs, flags, cfg)
149
150
151 processPostExec(runArgs, flags, cfg)
152
153
154 from PyUtils.AMITagHelperConfig import AMITagCfg
155 cfg.merge(AMITagCfg(flags, runArgs))
156
157
158 sc = cfg.run()
159 sys.exit(not sc.isSuccess())