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