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