40def TGC_DigitizationToolCfg(flags, name="TgcDigitizationTool", **kwargs):
41 """Return ComponentAccumulator with configured TgcDigitizationTool"""
42 acc = ComponentAccumulator()
43 if flags.Digitization.PileUp:
44 intervals = []
45 if not flags.Digitization.DoXingByXingPileUp:
46 intervals += [acc.popToolsAndMerge(TGC_RangeCfg(flags))]
47 kwargs.setdefault("PileUpMergeSvc", acc.getPrimaryAndMerge(PileUpMergeSvcCfg(flags, Intervals=intervals)))
48 else:
49 kwargs.setdefault("PileUpMergeSvc", '')
50 kwargs.setdefault("OnlyUseContainerName", flags.Digitization.PileUp)
51
52 if flags.Digitization.DoXingByXingPileUp:
53 kwargs.setdefault("FirstXing", TGC_FirstXing())
54 kwargs.setdefault("LastXing", TGC_LastXing())
55
56 if flags.Common.ProductionStep == ProductionStep.PileUpPresampling:
57 kwargs.setdefault("OutputSDOName", flags.Overlay.BkgPrefix + "TGC_SDO")
58 else:
59 kwargs.setdefault("OutputSDOName", "TGC_SDO")
60 kwargs.setdefault("OutputObjectName", "TGC_DIGITS")
61
62 from RngComps.RngCompsConfig import AthRNGSvcCfg
63 kwargs.setdefault("RndmSvc", acc.getPrimaryAndMerge(AthRNGSvcCfg(flags)))
64
65 the_tool = None
66 if not flags.Muon.usePhaseIIGeoSetup:
67 from MuonConfig.MuonCondAlgConfig import TgcDigitCondAlgCfg
68 acc.merge(TgcDigitCondAlgCfg(flags))
69 kwargs.setdefault("TGCDigitASDposKey", "TGCDigitASDposData")
70 kwargs.setdefault("TGCDigitTimeOffsetKey", "TGCDigitTimeOffsetData")
71 kwargs.setdefault("TGCDigitCrosstalkKey", "TGCDigitCrosstalkData")
72
73 from AthenaConfiguration.Enums import LHCPeriod
74 kwargs.setdefault("FourBunchDigitization", flags.GeoModel.Run >= LHCPeriod.Run3)
75 the_tool = CompFactory.TgcDigitizationTool(name, **kwargs)
76 else:
77 from ActsAlignmentAlgs.AlignmentAlgsConfig import ActsGeometryContextAlgCfg
78 acc.merge(ActsGeometryContextAlgCfg(flags))
79 kwargs.setdefault("StreamName", "TgcSimForklift")
80 kwargs.setdefault("SimHitKey", "xTgcSimHits")
81 kwargs.setdefault("EffiDataKey", "")
82 the_tool = CompFactory.MuonR4.TgcFastDigiTool(name, **kwargs)
83
84 acc.setPrivateTools(the_tool)
85 return acc
86
87