57def MDT_DigitizationToolCommonCfg(flags, name="MdtDigitizationTool", **kwargs):
58 """Return ComponentAccumulator with common MdtDigitizationTool config"""
59 from MuonConfig.MuonCondAlgConfig import MdtCondDbAlgCfg
60 from MuonConfig.MuonCalibrationConfig import MdtCalibDbAlgCfg
61
62 acc = ComponentAccumulator()
63 acc.merge(MdtCondDbAlgCfg(flags))
64 acc.merge(MdtCalibDbAlgCfg(flags))
65
66
67 if not flags.Muon.usePhaseIIGeoSetup:
68 kwargs.setdefault("DiscardEarlyHits", True)
69 kwargs.setdefault("UseTof", flags.Beam.Type is not BeamType.Cosmics)
70 kwargs.setdefault("DoQballCharge", (flags.Input.SpecialConfiguration.get("MDT_QballConfig", "False") == "True"))
71 kwargs.setdefault("DigitizationTool", acc.popToolsAndMerge(MDT_Response_DigiToolCfg(flags)))
72 else:
73
74 from ActsAlignmentAlgs.AlignmentAlgsConfig import ActsGeometryContextAlgCfg
75 acc.merge(ActsGeometryContextAlgCfg(flags))
76 kwargs.setdefault("useTwinTubes", True)
77 if kwargs["useTwinTubes"]:
78 from MuonConfig.MuonCablingConfig import MdtTwinTubeMapCondAlgCfg
79 acc.merge(MdtTwinTubeMapCondAlgCfg(flags))
80 kwargs.setdefault("DigitizationTool", acc.popToolsAndMerge(RT_Relation_DB_DigiToolCfg(flags)))
81 kwargs.setdefault("SimHitKey", "xMdtSimHits")
82 kwargs.setdefault("StreamName", "MdtDigitForklifting")
83
84 if flags.Digitization.DoXingByXingPileUp:
85 kwargs.setdefault("FirstXing", MDT_FirstXing())
86 kwargs.setdefault("LastXing", MDT_LastXing())
87 from RngComps.RngCompsConfig import AthRNGSvcCfg
88 kwargs.setdefault("RndmSvc", acc.getPrimaryAndMerge(AthRNGSvcCfg(flags)))
89 if not flags.Muon.usePhaseIIGeoSetup:
90 acc.setPrivateTools(CompFactory.MdtDigitizationTool(name, **kwargs))
91 else:
92 acc.setPrivateTools(CompFactory.MuonR4.MdtDigitizationTool(name, **kwargs))
93 return acc
94
95