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