39def MM_DigitizationToolCfg(flags, name="MM_DigitizationTool", **kwargs):
40 """Return ComponentAccumulator with configured MM_DigitizationTool"""
41 result = ComponentAccumulator()
42
43 from RngComps.RngCompsConfig import AthRNGSvcCfg
44 kwargs.setdefault("RndmSvc", result.getPrimaryAndMerge(AthRNGSvcCfg(flags)))
45
46 if flags.Digitization.PileUp:
47 intervals = []
48 if flags.Digitization.DoXingByXingPileUp:
49 kwargs.setdefault("FirstXing", MM_FirstXing())
50 kwargs.setdefault("LastXing", MM_LastXing())
51 else:
52 intervals += [result.popToolsAndMerge(MM_RangeCfg(flags))]
53 kwargs.setdefault("PileUpMergeSvc", result.getPrimaryAndMerge(PileUpMergeSvcCfg(flags, Intervals=intervals)))
54 else:
55 kwargs.setdefault("PileUpMergeSvc", '')
56
57 kwargs.setdefault("OnlyUseContainerName", flags.Digitization.PileUp)
58
59 kwargs.setdefault("OutputObjectName", "MM_DIGITS")
60 if flags.Common.ProductionStep == ProductionStep.PileUpPresampling:
61 kwargs.setdefault("OutputSDOName", flags.Overlay.BkgPrefix + "MM_SDO")
62 else:
63 kwargs.setdefault("OutputSDOName", "MM_SDO")
64
65 the_tool = None
66 if not flags.Muon.usePhaseIIGeoSetup:
67 from MuonConfig.MuonCalibrationConfig import NSWCalibToolCfg, MMCalibSmearingToolCfg
68 kwargs.setdefault("CalibrationTool", result.popToolsAndMerge(NSWCalibToolCfg(flags)))
69 kwargs.setdefault("SmearingTool", result.popToolsAndMerge(MMCalibSmearingToolCfg(flags)))
70 result.merge(AtlasFieldCacheCondAlgCfg(flags))
71 kwargs.setdefault("CheckSimHits", True)
72 the_tool = CompFactory.MM_DigitizationTool(name, **kwargs)
73 elif flags.Muon.doFastMMDigitization:
74 kwargs.setdefault("StreamName", "MmSimForklift")
75 kwargs.setdefault("SimHitKey", "xMmSimHits")
76 """
77 from MuonConfig.MuonCondAlgConfig import MmDigitEffiCondAlgCfg
78 result.merge(MmDigitEffiCondAlgCfg(flags,readFromJSON="EffMapMM.json"))
79 kwargs.setdefault("EffiDataKey", "MmDigitEff")
80 """
81
82 kwargs.setdefault("EffiDataKey", "")
83
84 from MuonConfig.MuonCalibrationConfig import NswErrorCalibDbAlgCfg
85 result.merge(NswErrorCalibDbAlgCfg(flags))
86 from ActsAlignmentAlgs.AlignmentAlgsConfig import ActsGeometryContextAlgCfg
87 result.merge(ActsGeometryContextAlgCfg(flags))
88 the_tool = CompFactory.MuonR4.MmFastDigiTool(name, **kwargs)
89 else:
90 from MuonConfig.MuonCalibrationConfig import NSWCalibToolCfg, MMCalibSmearingToolCfg
91 kwargs.setdefault("CalibrationTool", result.popToolsAndMerge(NSWCalibToolCfg(flags)))
92 kwargs.setdefault("SmearingTool", result.popToolsAndMerge(MMCalibSmearingToolCfg(flags)))
93 result.merge(AtlasFieldCacheCondAlgCfg(flags))
94 kwargs.setdefault("CheckSimHits", True)
95
96 kwargs.setdefault("StreamName", "MmSimForklift")
97 kwargs.setdefault("SimHitKey", "xMmSimHits")
98
99 kwargs.setdefault("EffiDataKey", "")
100
101 from MuonConfig.MuonCalibrationConfig import NswErrorCalibDbAlgCfg
102 result.merge(NswErrorCalibDbAlgCfg(flags))
103 from ActsAlignmentAlgs.AlignmentAlgsConfig import ActsGeometryContextAlgCfg
104 result.merge(ActsGeometryContextAlgCfg(flags))
105 the_tool = CompFactory.MuonR4.MM_DigitizationTool(name, **kwargs)
106
107
108 result.setPrivateTools(the_tool)
109 return result
110
111