44def MuonBytestream2RdoConfig(flags):
45 acc = ComponentAccumulator()
46 if flags.Input.isMC:
47 return acc
48
49 postFix = "_L1MuonSim"
50 from MuonConfig.MuonBytestreamDecodeConfig import MuonCacheNames
51 cacheCreator = CompFactory.MuonCacheCreator(RpcCacheKey = MuonCacheNames.RpcCache,
52 TgcCacheKey = MuonCacheNames.TgcCache,
53 MdtCsmCacheKey = MuonCacheNames.MdtCsmCache,
54 CscCacheKey = (MuonCacheNames.CscCache if flags.Detector.GeometryCSC else ""))
55 acc.addEventAlgo(cacheCreator)
56
57 RPCRodDecoder = CompFactory.Muon.RpcROD_Decoder(name = "RpcROD_Decoder" + postFix, NOBXS=flags.Trigger.L1MuonSim.RPCNBX)
58 MuonRpcRawDataProviderTool = CompFactory.Muon.RPC_RawDataProviderTool(name = "RPC_RawDataProviderTool" + postFix,
59 RpcContainerCacheKey = MuonCacheNames.RpcCache,
60 WriteOutRpcSectorLogic = False,
61 Decoder = RPCRodDecoder,
62 RdoLocation = "RPCPAD_L1" )
63 RpcRawDataProvider = CompFactory.Muon.RpcRawDataProvider(name = "RpcRawDataProvider" + postFix,
64 ProviderTool = MuonRpcRawDataProviderTool)
65 acc.addEventAlgo(RpcRawDataProvider)
66
67 TGCRodDecoder = CompFactory.Muon.TGC_RodDecoderReadout(name = "TGC_RodDecoderReadout" + postFix)
68 MuonTgcRawDataProviderTool = CompFactory.Muon.TGC_RawDataProviderToolMT(name = "TGC_RawDataProviderToolMT" + postFix,
69 TgcContainerCacheKey = MuonCacheNames.TgcCache,
70 Decoder = TGCRodDecoder,
71 RdoLocation = "TGCRDO_L1")
72 TgcRawDataProvider = CompFactory.Muon.MuonRawDataProvider(name = f"TgcRawDataProvider{postFix}",
73 ProviderTool = MuonTgcRawDataProviderTool,
74 UseHashIds = True,
75 DecodePerRoI = True)
76 acc.addEventAlgo(TgcRawDataProvider)
77
78 if flags.Detector.GeometrysTGC:
79 from MuonConfig.MuonBytestreamDecodeConfig import sTgcRODDecoderCfg
80 MuonsTgcRawDataProviderTool = CompFactory.Muon.STGC_RawDataProviderTool(name = "STGC_RawDataProviderToolMT"+postFix,
81 Decoder = acc.popToolsAndMerge(sTgcRODDecoderCfg(flags,
82 name = "sTgcROD_Decoder"+postFix)),
83 RdoLocation = "sTGCRDO_L1")
84 sTgcRawDataProvider = CompFactory.Muon.MuonRawDataProvider(name = f"sTgcRawDataProvider{postFix}",
85 ProviderTool = MuonsTgcRawDataProviderTool,
86 UseHashIds = False,
87 DecodePerRoI = False)
88 acc.addEventAlgo(sTgcRawDataProvider)
89
90
91 if flags.Detector.GeometryMM:
92 from MuonConfig.MuonBytestreamDecodeConfig import MmRDODDecoderCfg
93 Muon_MM_RawDataProviderTool = CompFactory.Muon.MM_RawDataProviderTool
94 MuonMmRawDataProviderTool = Muon_MM_RawDataProviderTool(name = "MM_RawDataProviderTool"+postFix,
95 Decoder = acc.popToolsAndMerge(MmRDODDecoderCfg(flags,
96 name="MM_RODDecoder"+postFix)),
97 RdoLocation = "MMRDO_L1")
98 MmRawDataProvider = CompFactory.Muon.MuonRawDataProvider(name = f"MmRawDataProvider{postFix}",
99 ProviderTool = MuonMmRawDataProviderTool,
100 UseHashIds = False,
101 DecodePerRoI = False)
102 acc.addEventAlgo(MmRawDataProvider)
103
104 return acc
105
106