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.MuonRawDataProvider(name = "RpcRawDataProvider" + postFix,
64 ProviderTool = MuonRpcRawDataProviderTool,
65 UseHashIds = False,
66 DecodePerRoI = True)
67 acc.addEventAlgo(RpcRawDataProvider)
68
69 TGCRodDecoder = CompFactory.Muon.TGC_RodDecoderReadout(name = "TGC_RodDecoderReadout" + postFix)
70 MuonTgcRawDataProviderTool = CompFactory.Muon.TGC_RawDataProviderTool(name = "TGC_RawDataProviderTool" + postFix,
71 TgcContainerCacheKey = MuonCacheNames.TgcCache,
72 Decoder = TGCRodDecoder,
73 RdoLocation = "TGCRDO_L1")
74 TgcRawDataProvider = CompFactory.Muon.MuonRawDataProvider(name = "TgcRawDataProvider" + postFix,
75 ProviderTool = MuonTgcRawDataProviderTool,
76 UseHashIds = True,
77 DecodePerRoI = True)
78 acc.addEventAlgo(TgcRawDataProvider)
79
80 if flags.Detector.GeometrysTGC:
81 from MuonConfig.MuonBytestreamDecodeConfig import sTgcRODDecoderCfg
82 MuonsTgcRawDataProviderTool = CompFactory.Muon.STGC_RawDataProviderTool(name = "STGC_RawDataProviderTool"+postFix,
83 Decoder = acc.popToolsAndMerge(sTgcRODDecoderCfg(flags,
84 name = "sTgcROD_Decoder"+postFix)),
85 RdoLocation = "sTGCRDO_L1")
86 sTgcRawDataProvider = CompFactory.Muon.MuonRawDataProvider(name = "sTgcRawDataProvider"+postFix,
87 ProviderTool = MuonsTgcRawDataProviderTool,
88 UseHashIds = False,
89 DecodePerRoI = False)
90 acc.addEventAlgo(sTgcRawDataProvider)
91
92
93 if flags.Detector.GeometryMM:
94 from MuonConfig.MuonBytestreamDecodeConfig import MmRDODDecoderCfg
95 Muon_MM_RawDataProviderTool = CompFactory.Muon.MM_RawDataProviderTool
96 MuonMmRawDataProviderTool = Muon_MM_RawDataProviderTool(name = "MM_RawDataProviderTool"+postFix,
97 Decoder = acc.popToolsAndMerge(MmRDODDecoderCfg(flags,
98 name="MM_RODDecoder"+postFix)),
99 RdoLocation = "MMRDO_L1")
100 MmRawDataProvider = CompFactory.Muon.MuonRawDataProvider(name = "MmRawDataProvider"+postFix,
101 ProviderTool = MuonMmRawDataProviderTool,
102 UseHashIds = False,
103 DecodePerRoI = False)
104 acc.addEventAlgo(MmRawDataProvider)
105
106 if flags.Trigger.L1MuonSim.EmulateNSW and flags.Trigger.L1MuonSim.NSWVetoMode:
107
108 MDTRodDecoder = CompFactory.MdtROD_Decoder(name = "MdtROD_Decoder" + postFix)
109 MuonMdtRawDataProviderTool = CompFactory.Muon.MDT_RawDataProviderTool(name = f"MDT_RawDataProviderTool{postFix}",
110 CsmContainerCacheKey = MuonCacheNames.MdtCsmCache,
111 Decoder = MDTRodDecoder,
112 RdoLocation = "MDTCSM_L1")
113 MdtRawDataProvider = CompFactory.Muon.MuonRawDataProvider(name = "MdtRawDataProvider" + postFix,
114 ProviderTool = MuonMdtRawDataProviderTool,
115 UseHashIds = False,
116 DecodePerRoI = True)
117 acc.addEventAlgo(MdtRawDataProvider)
118
119 if flags.Detector.GeometryCSC:
120 CSCRodDecoder = CompFactory.Muon.CscROD_Decoder(name = "CscROD_Decoder" + postFix,
121 IsCosmics = False,
122 IsOldCosmics = False )
123 MuonCscRawDataProviderTool = CompFactory.Muon.CSC_RawDataProviderToolMT(name = "CSC_RawDataProviderToolMT" + postFix,
124 CscContainerCacheKey = MuonCacheNames.CscCache,
125 Decoder = CSCRodDecoder,
126 RdoLocation = "CSCRDO_L1" )
127 CscRawDataProvider = CompFactory.Muon.MuonRawDataProvider(name = "CscRawDataProvider" + postFix,
128 ProviderTool = MuonCscRawDataProviderTool,
129 UseHashIds = True,
130 DecodePerRoI = True,
131 RequireDetectorManager = True,
132 DetectorManagerKey = "MuonDetectorManager",
133 IgnoreMissingRoIs = True)
134 acc.addEventAlgo(CscRawDataProvider)
135
136 return acc
137