174def setupGeoR4TestCfg(args, flags = None):
175
176 if flags is None:
177 from AthenaConfiguration.AllConfigFlags import initConfigFlags
178 flags = initConfigFlags()
179 flags.Concurrency.NumThreads = args.threads
180 flags.Concurrency.NumConcurrentEvents = args.threads
181 flags.Exec.MaxEvents = args.nEvents
182 flags.Exec.SkipEvents = args.skipEvents
183
184
186 from MuonConfig.MuonConfigUtils import prepareInput
188
189 flags.Exec.FPE= 500
190 flags.Exec.EventPrintoutInterval = 500
191
192 if args.defaultGeoFile == "RUN3":
193 flags.GeoModel.SQLiteDBFullPath = MuonPhaseIITestDefaults.GEODB_R3
194 elif args.defaultGeoFile == "RUN4":
195 flags.GeoModel.SQLiteDBFullPath = MuonPhaseIITestDefaults.GEODB_R4
196 elif args.defaultGeoFile == "RUN3MSOnly":
197 flags.GeoModel.SQLiteDBFullPath = MuonPhaseIITestDefaults.GEODB_R3MSOnly
198 elif args.defaultGeoFile == "RUN4MSOnly":
199 flags.GeoModel.SQLiteDBFullPath = MuonPhaseIITestDefaults.GEODB_R4MSOnly
200 elif args.defaultGeoFile == "ITkR3MS":
201 flags.GeoModel.SQLiteDBFullPath = MuonPhaseIITestDefaults.GEODB_ITk_R3MS
202 elif args.geoModelFile.startswith("root://"):
203 from os import system, path
204 if not path.exists("Geometry/{geoTag}.db".format(geoTag=args.geoTag)):
205 print ("Copy geometry file from EOS {source}".format(source = args.geoModelFile))
206 system("mkdir Geometry/")
207 system("xrdcp {source} Geometry/{geoTag}.db".format(source = args.geoModelFile,
208 geoTag=args.geoTag))
209
210 args.geoModelFile = "Geometry/{geoTag}.db".format(geoTag=args.geoTag)
211 else:
212 flags.GeoModel.SQLiteDBFullPath = args.geoModelFile
213
214 flags.GeoModel.SQLiteDB = True
215 from MuonConfig.MuonConfigUtils import configureDefaultTags
216 configureDefaultTags(flags)
217
218 if args.passiveMaterialMaps:
219 flags.Muon.trackGeometryMaterialMap = args.passiveMaterialMaps
220
221 flags.Detector.GeometryBpipe = False
222
223 flags.Detector.GeometryBCM = False
224 flags.Detector.GeometryPixel = False
225 flags.Detector.GeometrySCT = False
226 flags.Detector.GeometryTRT = False
227
228 flags.Detector.GeometryPLR = False
229 flags.Detector.GeometryBCMPrime = False
230 flags.Detector.GeometryITkPixel = False
231 flags.Detector.GeometryITkStrip = False
232
233 flags.Detector.GeometryHGTD = False
234
235 flags.Detector.GeometryLAr = False
236 flags.Detector.GeometryTile = False
237 flags.Detector.GeometryMBTS = False
238 flags.Detector.GeometryCalo = False
239
240 flags.Detector.GeometryCSC = False
241 if args.noSTGC:
242 flags.Detector.GeometrysTGC = False
243 if args.noMM:
244 flags.Detector.GeometryMM = False
245 if args.noTgc:
246 flags.Detector.GeometryTGC = False
247 if args.noRpc:
248 flags.Detector.GeometryRPC = False
249 if args.noMdt:
250 flags.Detector.GeometryMDT = False
251
252 try:
253 flags.Acts.TrackingGeometry.UseBlueprint = True
254 except AttributeError: pass
255 flags.Scheduler.CheckDependencies = True
256 flags.Scheduler.ShowDataDeps = True
257 flags.Scheduler.ShowDataFlow = True
258 flags.Scheduler.ShowControlFlow = True
259 flags.Scheduler.EnableVerboseViews = True
260 flags.Scheduler.AutoLoadUnmetDependencies = True
261
262 flags.lock()
263 flags.dump(evaluate = True)
264 cfg = setupServicesCfg(flags)
265
266 from MuonConfig.MuonGeometryConfig import MuonGeoModelCfg
267 cfg.merge(MuonGeoModelCfg(flags))
268
269 if not flags.Muon.usePhaseIIGeoSetup:
270 print ("WARNING: New Muon plugin is not part of the Geometry file {geoDBFile}".format(geoDBFile=args.geoModelFile))
271 else:
272 from ActsAlignmentAlgs.AlignmentAlgsConfig import ActsGeometryContextAlgCfg
273 cfg.merge(ActsGeometryContextAlgCfg(flags))
274
275 cfg.getService("MessageSvc").verboseLimit = 10000000
276 cfg.getService("MessageSvc").debugLimit = 10000000
277 cfg.getService("MessageSvc").errorLimit = 10000000
278
279 return flags, cfg
280
281
bool prepareInput(const std::string &name, const std::vector< int64_t > &shape, const std::vector< T > &data, std::vector< std::shared_ptr< tc::InferInput > > &inputs)