8 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
9 from AthenaConfiguration.ComponentFactory
import CompFactory
10 from AthenaConfiguration.AccumulatorCache
import AccumulatorCache
12 from TrigEDMConfig.TriggerEDM
import recordable
20 from TrigT1MuonRecRoiTool.TrigT1MuonRecRoiToolConfig
import RPCRecRoiToolCfg
21 from RegionSelector.RegSelToolConfig
import regSelTool_RPC_Cfg
23 recRoiTool = acc.popToolsAndMerge(
RPCRecRoiToolCfg(flags, useRun3Config=flags.Trigger.enableL1MuonPhase1))
24 RpcDataPreparator = CompFactory.getComp(
"TrigL2MuonSA::RpcDataPreparator")(
25 TrigT1RPCRecRoiTool = recRoiTool,
26 RpcClusterPreparator = CompFactory.getComp(
"TrigL2MuonSA::RpcClusterPreparator")(
27 TrigT1RPCRecRoiTool = recRoiTool),
31 return acc, RpcDataPreparator
39 TgcDataPreparator = CompFactory.getComp(
"TrigL2MuonSA::TgcDataPreparator")()
41 return acc, TgcDataPreparator
49 from RegionSelector.RegSelToolConfig
import regSelTool_MDT_Cfg
50 MdtDataPreparator = CompFactory.getComp(
"TrigL2MuonSA::MdtDataPreparator")(
52 isPhase2 = flags.Muon.usePhaseIIGeoSetup
54 return acc, MdtDataPreparator
62 CscDataPreparator = CompFactory.getComp(
"TrigL2MuonSA::CscDataPreparator")()
64 return acc, CscDataPreparator
71 from RegionSelector.RegSelToolConfig
import regSelTool_STGC_Cfg
72 StgcDataPreparator = CompFactory.getComp(
"TrigL2MuonSA::StgcDataPreparator")(
75 return acc, StgcDataPreparator
82 TrigL2MuonSA__MmDataPreparator=CompFactory.getComp(
"TrigL2MuonSA::MmDataPreparator")
83 MmDataPreparator = TrigL2MuonSA__MmDataPreparator()
84 from RegionSelector.RegSelToolConfig
import regSelTool_MM_Cfg
87 return acc, MmDataPreparator
94 from RegionSelector.RegSelToolConfig
import regSelTool_MDT_Cfg
95 RpcRoadDefiner = CompFactory.getComp(
"TrigL2MuonSA::RpcRoadDefiner")(
98 return acc, RpcRoadDefiner
105 from RegionSelector.RegSelToolConfig
import regSelTool_MDT_Cfg
106 TgcRoadDefiner = CompFactory.getComp(
"TrigL2MuonSA::TgcRoadDefiner")(
109 return acc, TgcRoadDefiner
115 from RegionSelector.RegSelToolConfig
import regSelTool_MDT_Cfg
116 ClusterRoadDefiner = CompFactory.getComp(
"TrigL2MuonSA::ClusterRoadDefiner")(
119 return acc, ClusterRoadDefiner
123 from MuonConfig.MuonCalibrationConfig
import MdtCalibrationToolCfg
140 if flags.Detector.GeometryCSC:
144 CscDataPreparator =
""
147 if flags.Detector.GeometrysTGC:
151 StgcDataPreparator =
""
154 if flags.Detector.GeometryMM:
158 MmDataPreparator =
""
162 acc.merge( rpcRDAcc )
166 acc.merge( tgcRDAcc )
173 TrigL2MuonSA__MuFastDataPreparator=CompFactory.getComp(
"TrigL2MuonSA::MuFastDataPreparator")
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)) )
188 TrigL2MuonSA__MuFastStationFitter,TrigL2MuonSA__PtFromAlphaBeta=CompFactory.getComps(
"TrigL2MuonSA::MuFastStationFitter",
"TrigL2MuonSA::PtFromAlphaBeta")
189 PtFromAlphaBeta = TrigL2MuonSA__PtFromAlphaBeta()
190 PtFromAlphaBeta.useCscPt =
True
191 PtFromAlphaBeta.AvoidMisalignedCSCs =
False
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()
199 from RegionSelector.RegSelToolConfig
import regSelTool_MDT_Cfg, regSelTool_TGC_Cfg
200 MuCalStreamerTool = TrigL2MuonSA__MuCalStreamerTool(
205 CscSegmentMaker = TrigL2MuonSA__CscSegmentMaker()
207 if not flags.Detector.GeometrysTGC
and not flags.Detector.GeometryMM:
208 MuFastStationFitter.NswStationFitter=
""
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(
223 CalibrationStreamer = MuCalStreamerTool,
224 MuonCalibrationStream =
recordable(
"HLT_MuonCalibrationStream")
if setup ==
"Calib" else "",
225 CscSegmentMaker = CscSegmentMaker,
227 R_WIDTH_TGC_FAILED = 200,
228 R_WIDTH_RPC_FAILED = 400,
229 DoCalibrationStream =
False,
230 USE_ROIBASEDACCESS_CSC =
True,
236 USE_ROIBASEDACCESS_STGC=
False,
237 USE_ROIBASEDACCESS_MM =
False,
239 RpcErrToDebugStream =
True,
244 UseRun3Config = flags.Trigger.enableL1MuonPhase1,
245 UseEndcapInnerFromBarrel =
True,
249 TrigMuonBackExtrapolator=CompFactory.TrigMuonBackExtrapolator
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
260 muFastAlg.WinPt = 6.0
261 muFastAlg.Scale_Road_BarrelInner = 1
262 muFastAlg.Scale_Road_BarrelMiddle = 1
263 muFastAlg.Scale_Road_BarrelOuter = 1
266 muFastAlg.DoCalibrationStream =
True
267 muFastAlg.MuonCalDataScouting =
False
268 muFastAlg.MuonCalBufferSize = 1024*1024
270 elif setup ==
'MuonCalibDataScouting':
271 muFastAlg.DoCalibrationStream =
True
272 muFastAlg.MuonCalDataScouting =
True
273 muFastAlg.MuonCalBufferSize = 1024*1024
275 elif setup ==
'l2mtmode':
276 muFastAlg.multitrackMode =
True
277 muFastAlg.doEndcapForl2mt =
False
279 elif setup ==
'IOmode':
281 muFastAlg.topoRoad =
False
282 muFastAlg.InsideOutMode =
True
284 return acc, muFastAlg
289 ptBarrelLUTSvc = CompFactory.getComp(
"TrigL2MuonSA::PtBarrelLUTSvc")(name =
'PtBarrelLUTSvc')
290 ptBarrelLUTSvc.LUTfile =
"pt_barrel.lut"
291 ptBarrelLUTSvc.SP_LUTfile =
"pt_barrelSP_new.lut"
293 acc.addService( ptBarrelLUTSvc )
295 return acc, ptBarrelLUTSvc
300 ptBarrelLUTSvc_MC = CompFactory.getComp(
"TrigL2MuonSA::PtBarrelLUTSvc")(name =
'PtBarrelLUTSvc_MC')
301 ptBarrelLUTSvc_MC.LUTfile =
"pt_barrel.mc10.lut"
302 acc.addService( ptBarrelLUTSvc_MC )
304 return acc, ptBarrelLUTSvc_MC
309 ptEndcapLUTSvc = CompFactory.getComp(
"TrigL2MuonSA::PtEndcapLUTSvc")(name =
'PtEndcapLUTSvc')
310 ptEndcapLUTSvc.FileName =
"pt_endcap.lut"
311 ptEndcapLUTSvc.EMeanLUT =
"pt_comb_mean.lut"
312 ptEndcapLUTSvc.ESigmaLUT =
"pt_comb_sigma.lut"
313 if flags.Detector.GeometrysTGC
or flags.Detector.GeometryMM:
314 ptEndcapLUTSvc.UseRun3LUT =
True
316 ptEndcapLUTSvc.UseRun3LUT =
False
317 acc.addService( ptEndcapLUTSvc )
319 return acc, ptEndcapLUTSvc
324 ptEndcapLUTSvc_MC = CompFactory.getComp(
"TrigL2MuonSA::PtEndcapLUTSvc")(name =
'PtEndcapLUTSvc_MC')
325 ptEndcapLUTSvc_MC.FileName =
"pt_endcap.mc10.lut"
326 ptEndcapLUTSvc_MC.EMeanLUT =
"pt_comb_mean.lut"
327 ptEndcapLUTSvc_MC.ESigmaLUT =
"pt_comb_sigma.lut"
328 if flags.Detector.GeometrysTGC
or flags.Detector.GeometryMM:
329 ptEndcapLUTSvc_MC.UseRun3LUT =
True
331 ptEndcapLUTSvc_MC.UseRun3LUT =
False
332 acc.addService( ptEndcapLUTSvc_MC )
334 return acc, ptEndcapLUTSvc_MC
340 alignmentBarrelLUTSvc = CompFactory.getComp(
"TrigL2MuonSA::AlignmentBarrelLUTSvc")(name =
'AlignmentBarrelLUTSvc')
341 alignmentBarrelLUTSvc.LUTfile =
"dZ_barrel.lut"
342 acc.addService( alignmentBarrelLUTSvc )
344 return acc, alignmentBarrelLUTSvc
353 from HLTSeeding.HLTSeedingConfig
import mapThresholdToL1RoICollection
358 acc.merge( muFastAcc )
366 acc.addEventAlgo(muFastFex)
372 if __name__ ==
"__main__":
373 from AthenaConfiguration.TestDefaults
import defaultTestFiles, defaultGeometryTags
374 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
376 flags.Input.Files = defaultTestFiles.RAW_RUN2
377 flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN2
381 cfg.printConfig(withDetails=
True, summariseProps=
True)