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