122def muFastSteeringCfg( flags, roisKey="", setup="", **kwargs ):
123 from MuonConfig.MuonCalibrationConfig import MdtCalibrationToolCfg
124
125 acc = ComponentAccumulator()
126
127
128 rpcAcc, RpcDataPreparator = RpcDataPreparatorCfg( flags )
129 acc.merge( rpcAcc )
130
131
132 tgcAcc, TgcDataPreparator = TgcDataPreparatorCfg( flags )
133 acc.merge( tgcAcc )
134
135
136 mdtAcc, MdtDataPreparator = MdtDataPreparatorCfg( flags )
137 acc.merge( mdtAcc )
138
139
140 if flags.Detector.GeometryCSC:
141 cscAcc, CscDataPreparator = CscDataPreparatorCfg( flags )
142 acc.merge( cscAcc )
143 else:
144 CscDataPreparator = ""
145
146
147 if flags.Detector.GeometrysTGC:
148 stgcAcc, StgcDataPreparator = StgcDataPreparatorCfg( flags )
149 acc.merge( stgcAcc )
150 else:
151 StgcDataPreparator = ""
152
153
154 if flags.Detector.GeometryMM:
155 mmAcc, MmDataPreparator = MmDataPreparatorCfg( flags )
156 acc.merge( mmAcc )
157 else:
158 MmDataPreparator = ""
159
160
161 rpcRDAcc, RpcRoadDefiner = RpcRoadDefinerCfg( flags )
162 acc.merge( rpcRDAcc )
163
164
165 tgcRDAcc, TgcRoadDefiner = TgcRoadDefinerCfg( flags )
166 acc.merge( tgcRDAcc )
167
168
169 clusRDAcc, ClusterRoadDefiner = ClusterRoadDefinerCfg(flags)
170 acc.merge(clusRDAcc)
171
172
173 TrigL2MuonSA__MuFastDataPreparator=CompFactory.getComp("TrigL2MuonSA::MuFastDataPreparator")
174
175 from TrigT1MuonRecRoiTool.TrigT1MuonRecRoiToolConfig import RPCRecRoiToolCfg
176 MuFastDataPreparator = TrigL2MuonSA__MuFastDataPreparator( CSCDataPreparator = CscDataPreparator,
177 MDTDataPreparator = MdtDataPreparator,
178 RPCDataPreparator = RpcDataPreparator,
179 TGCDataPreparator = TgcDataPreparator,
180 STGCDataPreparator = StgcDataPreparator,
181 MMDataPreparator = MmDataPreparator,
182 RpcRoadDefiner = RpcRoadDefiner,
183 TgcRoadDefiner = TgcRoadDefiner,
184 ClusterRoadDefiner = ClusterRoadDefiner,
185 TrigT1RPCRecRoiTool = acc.popToolsAndMerge(RPCRecRoiToolCfg(flags, useRun3Config=flags.Trigger.enableL1MuonPhase1)) )
186
187
188 TrigL2MuonSA__MuFastStationFitter,TrigL2MuonSA__PtFromAlphaBeta=CompFactory.getComps("TrigL2MuonSA::MuFastStationFitter","TrigL2MuonSA::PtFromAlphaBeta")
189 PtFromAlphaBeta = TrigL2MuonSA__PtFromAlphaBeta()
190 PtFromAlphaBeta.useCscPt = True
191 PtFromAlphaBeta.AvoidMisalignedCSCs = False
192
193 MuFastStationFitter = TrigL2MuonSA__MuFastStationFitter( PtFromAlphaBeta = PtFromAlphaBeta )
194 TrigL2MuonSA__MuFastPatternFinder,TrigL2MuonSA__MuFastTrackFitter,TrigL2MuonSA__MuFastTrackExtrapolator,TrigL2MuonSA__MuCalStreamerTool,TrigL2MuonSA__CscSegmentMaker=CompFactory.getComps("TrigL2MuonSA::MuFastPatternFinder","TrigL2MuonSA::MuFastTrackFitter","TrigL2MuonSA::MuFastTrackExtrapolator","TrigL2MuonSA::MuCalStreamerTool","TrigL2MuonSA::CscSegmentMaker")
195 MuFastPatternFinder = TrigL2MuonSA__MuFastPatternFinder(CalibrationTool=acc.popToolsAndMerge( MdtCalibrationToolCfg(flags)))
196 MuFastTrackFitter = TrigL2MuonSA__MuFastTrackFitter()
197 MuFastTrackExtrapolator = TrigL2MuonSA__MuFastTrackExtrapolator()
198
199 from RegionSelector.RegSelToolConfig import regSelTool_MDT_Cfg, regSelTool_TGC_Cfg
200 MuCalStreamerTool = TrigL2MuonSA__MuCalStreamerTool(
201 RegSel_MDT = acc.popToolsAndMerge(regSelTool_MDT_Cfg(flags)),
202 RegSel_TGC = acc.popToolsAndMerge(regSelTool_TGC_Cfg(flags)) )
203
204
205 CscSegmentMaker = TrigL2MuonSA__CscSegmentMaker()
206
207 if not flags.Detector.GeometrysTGC and not flags.Detector.GeometryMM:
208 MuFastStationFitter.NswStationFitter=""
209
210
211 useNSW = (( not flags.Muon.runCommissioningChain ) and ( not flags.Muon.disableNSWForL2SA ))
212 from TrigL2MuonSA.TrigL2MuonSAMonitoring import TrigL2MuonSAMonitoring
213 from TrkConfig.AtlasExtrapolatorConfig import AtlasExtrapolatorCfg
214 muFastAlg = CompFactory.MuFastSteering(
215 name = "MuFastSteering_Muon"+setup,
216 DataPreparator = MuFastDataPreparator,
217 StationFitter = MuFastStationFitter,
218 PatternFinder = MuFastPatternFinder,
219 TrackFitter = MuFastTrackFitter,
220 TrackExtrapolator = MuFastTrackExtrapolator,
221 FtfRoadDefiner = CompFactory.TrigL2MuonSA.FtfRoadDefiner(
222 IOExtrapolator=acc.popToolsAndMerge(AtlasExtrapolatorCfg(flags))),
223 CalibrationStreamer = MuCalStreamerTool,
224 MuonCalibrationStream = recordable("HLT_MuonCalibrationStream") if setup == "Calib" else "",
225 CscSegmentMaker = CscSegmentMaker,
226 MuRoIs = roisKey,
227 R_WIDTH_TGC_FAILED = 200,
228 R_WIDTH_RPC_FAILED = 400,
229 DoCalibrationStream = False,
230 USE_ROIBASEDACCESS_CSC = True,
231
232 USE_STGC = useNSW,
233 USE_MM = useNSW,
234
236 USE_ROIBASEDACCESS_STGC= False,
237 USE_ROIBASEDACCESS_MM = False,
238
239 RpcErrToDebugStream = True,
240 topoRoad = True,
241 dEtasurrRoI = 0.14,
242 dPhisurrRoI = 0.14,
244 UseRun3Config = flags.Trigger.enableL1MuonPhase1,
245 UseEndcapInnerFromBarrel = True,
246 **kwargs )
247
248
249 TrigMuonBackExtrapolator=CompFactory.TrigMuonBackExtrapolator
251 Aligned = False,
252 DataSet = False )
253
254 if setup == '900GeV':
255 muFastAlg.WinPt = 4.0
256 muFastAlg.Scale_Road_BarrelInner = 3
257 muFastAlg.Scale_Road_BarrelMiddle = 3
258 muFastAlg.Scale_Road_BarrelOuter = 3
259 else:
260 muFastAlg.WinPt = 6.0
261 muFastAlg.Scale_Road_BarrelInner = 1
262 muFastAlg.Scale_Road_BarrelMiddle = 1
263 muFastAlg.Scale_Road_BarrelOuter = 1
264
265 if setup == 'Calib' and not flags.Muon.usePhaseIIGeoSetup:
266 muFastAlg.DoCalibrationStream = True
267 muFastAlg.MuonCalDataScouting = False
268 muFastAlg.MuonCalBufferSize = 1024*1024
269
270 elif setup == 'MuonCalibDataScouting' and not flags.Muon.usePhaseIIGeoSetup:
271 muFastAlg.DoCalibrationStream = True
272 muFastAlg.MuonCalDataScouting = True
273 muFastAlg.MuonCalBufferSize = 1024*1024
274
275 elif setup == 'l2mtmode':
276 muFastAlg.multitrackMode = True
277 muFastAlg.doEndcapForl2mt = False
278
279 elif setup == 'IOmode':
280
281 muFastAlg.topoRoad = False
282 muFastAlg.InsideOutMode = True
283
284 return acc, muFastAlg
285