1 """Define ComponentAccumulator functions for configuration of muon data conversions
3 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
5 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
6 from AthenaConfiguration.ComponentFactory
import CompFactory
7 from AthenaConfiguration.Enums
import ProductionStep
8 from MuonConfig.MuonGeometryConfig
import MuonIdHelperSvcCfg
9 from MuonConfig.MuonCablingConfig
import MDTCablingConfigCfg
15 kwargs.setdefault(
"MuonIdHelperSvc", acc.getService(
"MuonIdHelperSvc"))
16 acc.setPrivateTools(CompFactory.Muon.MdtRDO_Decoder(name, **kwargs))
21 """Return ComponentAccumulator with configured MdtRdoToMdtDigit algorithm"""
23 kwargs.setdefault(
"mdtRdoDecoderTool", acc.popToolsAndMerge(
MdtRDO_DecoderCfg(flags)))
24 if flags.Common.isOverlay:
25 kwargs.setdefault(
"MdtRdoContainer", f
"{flags.Overlay.BkgPrefix}MDTCSM")
26 kwargs.setdefault(
"MdtDigitContainer", f
"{flags.Overlay.BkgPrefix}MDT_DIGITS")
28 kwargs.setdefault(
"MdtRdoContainer",
"MDTCSM")
29 kwargs.setdefault(
"MdtDigitContainer",
"MDT_DIGITS")
31 if flags.Common.isOverlay
and not flags.Overlay.DataOverlay:
32 from SGComps.SGInputLoaderConfig
import SGInputLoaderCfg
33 acc.merge(
SGInputLoaderCfg(flags, [f
'MdtCsmContainer#{kwargs["MdtRdoContainer"]}']))
35 acc.addEventAlgo(CompFactory.MdtRdoToMdtDigit(name, **kwargs))
40 """Return ComponentAccumulator with configured RpcRdoToRpcDigit algorithm"""
42 from MuonConfig.MuonCablingConfig
import RPCCablingConfigCfg
44 kwargs.setdefault(
"DecodeNrpcRDO", flags.Muon.enableNRPC)
45 if flags.Common.isOverlay:
46 kwargs.setdefault(
"RpcRdoContainer", f
"{flags.Overlay.BkgPrefix}RPCPAD")
47 kwargs.setdefault(
"RpcDigitContainer", f
"{flags.Overlay.BkgPrefix}RPC_DIGITS")
48 kwargs.setdefault(
"NRpcRdoContainer", f
"{flags.Overlay.BkgPrefix}NRPCRDO")
50 kwargs.setdefault(
"RpcRdoContainer",
"RPCPAD")
51 kwargs.setdefault(
"RpcDigitContainer",
"RPC_DIGITS")
52 kwargs.setdefault(
"NRpcRdoContainer",
"NRPCRDO")
54 if flags.Common.isOverlay
and not flags.Overlay.DataOverlay:
55 from SGComps.SGInputLoaderConfig
import SGInputLoaderCfg
56 acc.merge(
SGInputLoaderCfg(flags, [f
'RpcPadContainer#{kwargs["RpcRdoContainer"]}']))
60 rpcrdo_decode = CompFactory.Muon.RpcRDO_Decoder(
"RpcRDO_Decoder", BCZERO=flags.Trigger.L1MuonSim.RPCNBCZ)
61 kwargs.setdefault(
"rpcRdoDecoderTool", rpcrdo_decode)
63 acc.addEventAlgo(CompFactory.RpcRdoToRpcDigit(name, **kwargs))
68 """Return ComponentAccumulator with configured TgcRdoToTgcDigit algorithm"""
70 from MuonConfig.MuonCablingConfig
import TGCCablingConfigCfg
73 if flags.Common.isOverlay:
74 kwargs.setdefault(
"TgcRdoContainer", f
"{flags.Overlay.BkgPrefix}TGCRDO")
75 kwargs.setdefault(
"TgcDigitContainer",f
"{flags.Overlay.BkgPrefix}TGC_DIGITS")
77 kwargs.setdefault(
"TgcRdoContainer",
"TGCRDO")
78 kwargs.setdefault(
"TgcDigitContainer",
"TGC_DIGITS")
80 if flags.Common.isOverlay
and not flags.Overlay.DataOverlay:
81 from SGComps.SGInputLoaderConfig
import SGInputLoaderCfg
82 acc.merge(
SGInputLoaderCfg(flags, [f
'TgcRdoContainer#{kwargs["TgcRdoContainer"]}']))
84 acc.addEventAlgo(CompFactory.TgcRdoToTgcDigit(name, **kwargs))
89 """Return ComponentAccumulator with configured STGC_RdoToDigit algorithm"""
91 if flags.Common.isOverlay:
92 kwargs.setdefault(
"sTgcRdoContainer", f
"{flags.Overlay.BkgPrefix}sTGCRDO")
93 kwargs.setdefault(
"sTgcDigitContainer", f
"{flags.Overlay.BkgPrefix}sTGC_DIGITS")
95 kwargs.setdefault(
"sTgcRdoContainer",
"sTGCRDO")
96 kwargs.setdefault(
"sTgcDigitContainer",
"sTGC_DIGITS")
98 kwargs.setdefault(
"sTgcRdoDecoderTool", acc.popToolsAndMerge(
STgcRdoDecoderCfg(flags)))
100 if flags.Common.isOverlay
and not flags.Overlay.DataOverlay:
101 from SGComps.SGInputLoaderConfig
import SGInputLoaderCfg
102 acc.merge(
SGInputLoaderCfg(flags, [f
'Muon::STGC_RawDataContainer#{kwargs["sTgcRdoContainer"]}']))
104 acc.addEventAlgo(CompFactory.STGC_RdoToDigit(name, **kwargs))
109 """Return ComponentAccumulator with configured MM_RdoToDigit algorithm"""
111 if flags.Common.isOverlay:
112 kwargs.setdefault(
"MmRdoContainer", f
"{flags.Overlay.BkgPrefix}MMRDO")
113 kwargs.setdefault(
"MmDigitContainer", f
"{flags.Overlay.BkgPrefix}MM_DIGITS")
115 kwargs.setdefault(
"MmRdoContainer",
"MMRDO")
116 kwargs.setdefault(
"MmDigitContainer",
"MM_DIGITS")
118 kwargs.setdefault(
"mmRdoDecoderTool", acc.popToolsAndMerge(
MMRdoDecoderCfg(flags)))
120 if flags.Common.isOverlay
and not flags.Overlay.DataOverlay:
121 from SGComps.SGInputLoaderConfig
import SGInputLoaderCfg
122 acc.merge(
SGInputLoaderCfg(flags, [f
'Muon::MM_RawDataContainer#{kwargs["MmRdoContainer"]}']))
124 acc.addEventAlgo(CompFactory.MM_RdoToDigit(name, **kwargs))
129 """Return ComponentAccumulator with configured MdtDigitToMdtRDO algorithm"""
131 kwargs.setdefault(
"MuonIdHelperSvc", acc.getPrimaryAndMerge(
MuonIdHelperSvcCfg(flags)).name)
133 from AthenaConfiguration.Enums
import LHCPeriod
134 kwargs.setdefault(
"isPhaseII", flags.GeoModel.Run >= LHCPeriod.Run4)
135 if flags.Common.ProductionStep == ProductionStep.PileUpPresampling:
136 kwargs.setdefault(
"OutputObjectName", f
"{flags.Overlay.BkgPrefix}MDTCSM")
138 kwargs.setdefault(
"OutputObjectName",
"MDTCSM")
140 acc.addEventAlgo(CompFactory.MdtDigitToMdtRDO(name, **kwargs))
145 """Return ComponentAccumulator with configured RpcDigitToRpcRDO algorithm"""
147 kwargs.setdefault(
"MuonIdHelperSvc", acc.getPrimaryAndMerge(
MuonIdHelperSvcCfg(flags)).name)
149 if flags.Common.ProductionStep == ProductionStep.PileUpPresampling:
150 kwargs.setdefault(
"OutputObjectName", flags.Overlay.BkgPrefix +
"RPCPAD")
152 kwargs.setdefault(
"OutputObjectName",
"RPCPAD")
154 kwargs.setdefault(
"NOBXS", flags.Trigger.L1MuonSim.RPCNBX)
155 kwargs.setdefault(
"BCZERO", flags.Trigger.L1MuonSim.RPCNBCZ)
157 acc.addEventAlgo(CompFactory.RpcDigitToRpcRDO(name, **kwargs))
162 """Return ComponentAccumulator with configured NrpcDigitToNrpcRDO algorithm"""
164 kwargs.setdefault(
"MuonIdHelperSvc", acc.getPrimaryAndMerge(
MuonIdHelperSvcCfg(flags)).name)
166 if flags.Common.ProductionStep == ProductionStep.PileUpPresampling:
167 kwargs.setdefault(
"NrpcRdoKey", flags.Overlay.BkgPrefix +
"NRPCRDO")
169 kwargs.setdefault(
"NrpcRdoKey",
"NRPCRDO")
171 acc.addEventAlgo(CompFactory.NrpcDigitToNrpcRDO(name, **kwargs))
176 """Return ComponentAccumulator with configured TgcDigitToTgcRDO algorithm"""
178 kwargs.setdefault(
"MuonIdHelperSvc", acc.getPrimaryAndMerge(
MuonIdHelperSvcCfg(flags)).name)
180 if flags.Common.ProductionStep == ProductionStep.PileUpPresampling:
181 kwargs.setdefault(
"OutputObjectName", f
"{flags.Overlay.BkgPrefix}TGCRDO")
183 kwargs.setdefault(
"OutputObjectName",
"TGCRDO")
185 acc.addEventAlgo(CompFactory.TgcDigitToTgcRDO(name, **kwargs))
190 """Return ComponentAccumulator with configured CscDigitToCscRDOTool"""
193 kwargs.setdefault(
"MuonIdHelperSvc", acc.getPrimaryAndMerge(
MuonIdHelperSvcCfg(flags)).name)
194 from MuonConfig.MuonCalibrationConfig
import CscCalibToolCfg
195 kwargs.setdefault(
"cscCalibTool", acc.popToolsAndMerge(
CscCalibToolCfg(flags)))
196 kwargs.setdefault(
"NumSamples", 4)
197 kwargs.setdefault(
"Latency", 0)
198 kwargs.setdefault(
"addNoise",
not flags.Common.isOverlay)
200 if flags.Common.isOverlay:
201 kwargs.setdefault(
"InputObjectName", f
"{flags.Overlay.SigPrefix}CSC_DIGITS")
202 kwargs.setdefault(
"OutputObjectName", f
"{flags.Overlay.SigPrefix}CSCRDO")
203 elif flags.Common.ProductionStep == ProductionStep.PileUpPresampling:
204 kwargs.setdefault(
"OutputObjectName", f
"{flags.Overlay.BkgPrefix}CSCRDO")
206 kwargs.setdefault(
"OutputObjectName",
"CSCRDO")
208 from RngComps.RngCompsConfig
import AthRNGSvcCfg
209 kwargs.setdefault(
"RndmSvc", acc.getPrimaryAndMerge(
AthRNGSvcCfg(flags)).name)
210 acc.setPrivateTools(CompFactory.CscDigitToCscRDOTool(
"CscDigitToCscRDOTool", **kwargs))
215 """Return ComponentAccumulator with configured CscDigitToCscRDO algorithm"""
220 if flags.Concurrency.NumThreads > 0:
221 kwargs.setdefault(
"Cardinality", flags.Concurrency.NumThreads)
223 acc.addEventAlgo(CompFactory.CscDigitToCscRDO(name, **kwargs))
228 """Return ComponentAccumulator with configured STGC_DigitToRDO algorithm"""
230 kwargs.setdefault(
"MuonIdHelperSvc", acc.getPrimaryAndMerge(
MuonIdHelperSvcCfg(flags)).name)
232 if flags.Common.ProductionStep == ProductionStep.PileUpPresampling:
233 kwargs.setdefault(
"OutputObjectName", f
"{flags.Overlay.BkgPrefix}sTGCRDO")
235 kwargs.setdefault(
"OutputObjectName",
"sTGCRDO")
237 from MuonConfig.MuonCalibrationConfig
import NSWCalibToolCfg
238 kwargs.setdefault(
"CalibrationTool", acc.popToolsAndMerge(
NSWCalibToolCfg(flags)))
239 the_alg = CompFactory.STGC_DigitToRDO(name, **kwargs)
240 acc.addEventAlgo(the_alg)
245 """Return ComponentAccumulator with configured MM_DigitToRDO algorithm"""
247 kwargs.setdefault(
"MuonIdHelperSvc", acc.getPrimaryAndMerge(
MuonIdHelperSvcCfg(flags)).name)
249 if flags.Common.ProductionStep == ProductionStep.PileUpPresampling:
250 kwargs.setdefault(
"OutputObjectName", f
"{flags.Overlay.BkgPrefix}MMRDO")
252 kwargs.setdefault(
"OutputObjectName",
"MMRDO")
254 from MuonConfig.MuonCalibrationConfig
import NSWCalibToolCfg
255 kwargs.setdefault(
"CalibrationTool", acc.popToolsAndMerge(
NSWCalibToolCfg(flags)))
256 the_alg = CompFactory.MM_DigitToRDO(name, **kwargs)
257 acc.addEventAlgo(the_alg)
262 """Return ComponentAccumulator with configured MdtDigitToMdtRDO algorithm"""
264 kwargs.setdefault(
"MuonIdHelperSvc", acc.getPrimaryAndMerge(
MuonIdHelperSvcCfg(flags)).name)
265 kwargs.setdefault(
"InputObjectName", f
"{flags.Overlay.SigPrefix}MDT_DIGITS")
266 kwargs.setdefault(
"OutputObjectName", f
"{flags.Overlay.SigPrefix}MDTCSM")
267 acc.addEventAlgo(CompFactory.MdtDigitToMdtRDO(name, **kwargs))
272 """Return ComponentAccumulator with configured RpcDigitToRpcRDO algorithm"""
274 kwargs.setdefault(
"MuonIdHelperSvc", acc.getPrimaryAndMerge(
MuonIdHelperSvcCfg(flags)).name)
275 kwargs.setdefault(
"InputObjectName", f
"{flags.Overlay.SigPrefix}RPC_DIGITS")
276 kwargs.setdefault(
"OutputObjectName", f
"{flags.Overlay.SigPrefix}RPCPAD")
277 acc.addEventAlgo(CompFactory.RpcDigitToRpcRDO(name, **kwargs))
282 """Return ComponentAccumulator with configured TgcDigitToTgcRDO algorithm"""
284 kwargs.setdefault(
"MuonIdHelperSvc", acc.getPrimaryAndMerge(
MuonIdHelperSvcCfg(flags)).name)
285 kwargs.setdefault(
"InputObjectName", f
"{flags.Overlay.SigPrefix}TGC_DIGITS")
286 kwargs.setdefault(
"OutputObjectName", f
"{flags.Overlay.SigPrefix}TGCRDO")
287 acc.addEventAlgo(CompFactory.TgcDigitToTgcRDO(name, **kwargs))
292 from MuonConfig.MuonCalibrationConfig
import NSWCalibToolCfg
293 kwargs.setdefault(
"CalibrationTool", result.popToolsAndMerge(
NSWCalibToolCfg(flags)))
294 the_tool = CompFactory.Muon.STGC_RDO_Decoder(name, **kwargs)
295 result.setPrivateTools(the_tool)
300 from MuonConfig.MuonCalibrationConfig
import NSWCalibToolCfg
301 kwargs.setdefault(
"CalibrationTool", result.popToolsAndMerge(
NSWCalibToolCfg(flags)))
302 the_tool = CompFactory.Muon.MM_RDO_Decoder(name, **kwargs)
303 result.setPrivateTools(the_tool)
308 from MuonConfig.MuonCablingConfig
import MDTCablingConfigCfg
310 the_tool = CompFactory.Muon.MdtRDO_Decoder(name, **kwargs)
311 result.setPrivateTools(the_tool)