38def sTGC_DigitizationToolCfg(flags, name="sTgcDigitizationTool", **kwargs):
39 result = ComponentAccumulator()
40
41 from RngComps.RngCompsConfig import AthRNGSvcCfg
42 kwargs.setdefault("RndmSvc", result.getPrimaryAndMerge(AthRNGSvcCfg(flags)))
43
44
45 if flags.Digitization.PileUp:
46 intervals = []
47 if flags.Digitization.DoXingByXingPileUp:
48 kwargs.setdefault("FirstXing", sTGC_FirstXing())
49 kwargs.setdefault("LastXing", sTGC_LastXing())
50 else:
51 intervals += [result.popToolsAndMerge(sTGC_RangeCfg(flags))]
52 kwargs.setdefault("PileUpMergeSvc", result.getPrimaryAndMerge(PileUpMergeSvcCfg(flags, Intervals=intervals)))
53 else:
54 kwargs.setdefault("PileUpMergeSvc", '')
55 kwargs.setdefault("OnlyUseContainerName", flags.Digitization.PileUp)
56
57 if flags.Common.ProductionStep == ProductionStep.PileUpPresampling:
58 kwargs.setdefault("OutputSDOName", flags.Overlay.BkgPrefix + "sTGC_SDO")
59 else:
60 kwargs.setdefault("OutputSDOName", "sTGC_SDO")
61 kwargs.setdefault("OutputObjectName", "sTGC_DIGITS")
62
63 the_tool = None
64 if not flags.Muon.usePhaseIIGeoSetup:
65 from MuonConfig.MuonCalibrationConfig import NSWCalibToolCfg, STgcCalibSmearingToolCfg
66 kwargs.setdefault("CalibrationTool", result.popToolsAndMerge(NSWCalibToolCfg(flags)))
67 kwargs.setdefault("SmearingTool", result.popToolsAndMerge(STgcCalibSmearingToolCfg(flags)))
68
69 kwargs.setdefault("doToFCorrection", True)
70 kwargs.setdefault("InputObjectName", "sTGC_Hits")
71 the_tool = CompFactory.sTgcDigitizationTool(name, **kwargs)
72
73 elif flags.Muon.doFastsTGCDigitization:
74 from ActsAlignmentAlgs.AlignmentAlgsConfig import ActsGeometryContextAlgCfg
75 result.merge(ActsGeometryContextAlgCfg(flags))
76 kwargs.setdefault("StreamName", "sTgcSimForklift")
77 kwargs.setdefault("SimHitKey", "xStgcSimHits")
78 kwargs.setdefault("EffiDataKey", "")
79 """
80 from MuonConfig.MuonCondAlgConfig import sTgcDigitEffiCondAlgCfg
81 result.merge(sTgcDigitEffiCondAlgCfg(flags,readFromJSON="EffMapsTGC.json"))
82 kwargs.setdefault("EffiDataKey", "sTgcDigitEff")
83 """
84 from MuonConfig.MuonCalibrationConfig import NswErrorCalibDbAlgCfg
85 result.merge(NswErrorCalibDbAlgCfg(flags))
86 the_tool = CompFactory.MuonR4.sTgcFastDigiTool(name, **kwargs)
87
88 else:
89 from ActsAlignmentAlgs.AlignmentAlgsConfig import ActsGeometryContextAlgCfg
90 result.merge(ActsGeometryContextAlgCfg(flags))
91 kwargs.setdefault("StreamName", "sTgcSimForklift")
92 kwargs.setdefault("SimHitKey", "xStgcSimHits")
93 kwargs.setdefault("EffiDataKey", "")
94
95 from MuonConfig.MuonCalibrationConfig import NswErrorCalibDbAlgCfg, STgcCalibSmearingToolCfg
96 kwargs.setdefault("doToFCorrection", True)
97 kwargs.setdefault("SmearingTool", result.popToolsAndMerge(STgcCalibSmearingToolCfg(flags)))
98 result.merge(NswErrorCalibDbAlgCfg(flags))
99 the_tool = CompFactory.MuonR4.sTgcDigitizationTool(name, **kwargs)
100
101 result.setPrivateTools(the_tool)
102 return result
103