254def RegionSelCondAlgCfg(flags, detector: str, **kwargs):
255 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
256 from AthenaConfiguration.ComponentFactory import CompFactory
257 from MuonConfig.MuonCablingConfig import RPCCablingConfigCfg, MDTCablingConfigCfg, TGCCablingConfigCfg
258 from MuonConfig.MuonCondAlgConfig import MdtCondDbAlgCfg
259 result = ComponentAccumulator()
260 kwargs.setdefault("name", f"RegSelCondAlg_{detector}")
261 kwargs.setdefault("RegSelLUT", f"RegSelLUTCondData_{detector}")
262 kwargs.setdefault("PrintTable", flags.hasFlag("PrintLUT") and flags.PrintLUT)
263
264 result.merge(MuonGeoModelCfg(flags))
265 result.merge(RPCCablingConfigCfg(flags))
266 result.merge(MDTCablingConfigCfg(flags))
267 result.merge(TGCCablingConfigCfg(flags))
268
269
270 result.merge(MdtCondDbAlgCfg(flags))
271
272 the_alg = None
273 if (flags.Muon.usePhaseIIGeoSetup and flags.Trigger.Muon.useNewRegionSelector ):
274 if not flags.Detector.GeometryMDT:
275 kwargs.setdefault("MdtCablingKey", "")
276 if not flags.Detector.GeometryRPC:
277 kwargs.setdefault("RpcCablingKey", "")
278 if not flags.Detector.GeometryTGC:
279 kwargs.setdefault("TgcCablingKey", "")
280 alignDet = ""
281 if detector == "MDT": alignDet = "Mdt"
282 elif detector == "RPC": alignDet = "Rpc"
283 elif detector == "TGC": alignDet = "Tgc"
284 elif detector == "sTGC": alignDet = "sTgc"
285 elif detector == "MM": alignDet = "Mm"
286
287 kwargs.setdefault("AlignKey", f"{alignDet}ActsAlignContainer")
288 from MuonConfig.MuonConfigFlags import GeoTrfCacheMode
289 kwargs.setdefault("splitTrfCache", flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.SplitCache or
290 flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.SlopyCache)
291 the_alg = CompFactory.MuonR4.RegionSelectorCondAlg(**kwargs)
292
293 elif detector == "MDT":
294 if not flags.Muon.useMdtDcsData:
295 kwargs.setdefault("Conditions", "")
296 the_alg = CompFactory.MDT_RegSelCondAlg(**kwargs)
297 elif detector == "RPC":
298 the_alg = CompFactory.RPC_RegSelCondAlg(**kwargs)
299 elif detector == "TGC":
300 the_alg = CompFactory.TGC_RegSelCondAlg(**kwargs)
301 elif detector == "sTGC":
302 the_alg = CompFactory.sTGC_RegSelCondAlg(**kwargs)
303 elif detector == "MM":
304 the_alg = CompFactory.MM_RegSelCondAlg(**kwargs)
305 else:
306 raise ValueError(f"The {detector} is an unknown detector flag")
307 result.addCondAlgo(the_alg, primary = True)
308 return result