8 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
9 from AthenaConfiguration.ComponentFactory
import CompFactory
10 from AthenaConfiguration.AccumulatorCache
import AccumulatorCache
19 from TrigT1MuonRecRoiTool.TrigT1MuonRecRoiToolConfig
import RPCRecRoiToolCfg
20 from RegionSelector.RegSelToolConfig
import regSelTool_RPC_Cfg
22 recRoiTool = acc.popToolsAndMerge(
RPCRecRoiToolCfg(flags, useRun3Config=flags.Trigger.enableL1MuonPhase1))
23 RpcDataPreparator = CompFactory.getComp(
"TrigL2MuonSA::RpcDataPreparator")(
24 TrigT1RPCRecRoiTool = recRoiTool,
25 RpcClusterPreparator = CompFactory.getComp(
"TrigL2MuonSA::RpcClusterPreparator")(
26 TrigT1RPCRecRoiTool = recRoiTool),
30 return acc, RpcDataPreparator
38 TgcDataPreparator = CompFactory.getComp(
"TrigL2MuonSA::TgcDataPreparator")()
40 return acc, TgcDataPreparator
48 from RegionSelector.RegSelToolConfig
import regSelTool_MDT_Cfg
49 MdtDataPreparator = CompFactory.getComp(
"TrigL2MuonSA::MdtDataPreparator")(
51 isPhase2 = flags.Muon.usePhaseIIGeoSetup
53 return acc, MdtDataPreparator
61 CscDataPreparator = CompFactory.getComp(
"TrigL2MuonSA::CscDataPreparator")()
63 return acc, CscDataPreparator
70 from RegionSelector.RegSelToolConfig
import regSelTool_STGC_Cfg
71 StgcDataPreparator = CompFactory.getComp(
"TrigL2MuonSA::StgcDataPreparator")(
74 return acc, StgcDataPreparator
81 TrigL2MuonSA__MmDataPreparator=CompFactory.getComp(
"TrigL2MuonSA::MmDataPreparator")
82 MmDataPreparator = TrigL2MuonSA__MmDataPreparator()
83 from RegionSelector.RegSelToolConfig
import regSelTool_MM_Cfg
86 return acc, MmDataPreparator
93 from RegionSelector.RegSelToolConfig
import regSelTool_MDT_Cfg
94 RpcRoadDefiner = CompFactory.getComp(
"TrigL2MuonSA::RpcRoadDefiner")(
97 return acc, RpcRoadDefiner
104 from RegionSelector.RegSelToolConfig
import regSelTool_MDT_Cfg
105 TgcRoadDefiner = CompFactory.getComp(
"TrigL2MuonSA::TgcRoadDefiner")(
108 return acc, TgcRoadDefiner
114 from RegionSelector.RegSelToolConfig
import regSelTool_MDT_Cfg
115 ClusterRoadDefiner = CompFactory.getComp(
"TrigL2MuonSA::ClusterRoadDefiner")(
118 return acc, ClusterRoadDefiner
122 from MuonConfig.MuonCalibrationConfig
import MdtCalibrationToolCfg
139 if flags.Detector.GeometryCSC:
143 CscDataPreparator =
""
146 if flags.Detector.GeometrysTGC:
150 StgcDataPreparator =
""
153 if flags.Detector.GeometryMM:
157 MmDataPreparator =
""
161 acc.merge( rpcRDAcc )
165 acc.merge( tgcRDAcc )
172 TrigL2MuonSA__MuFastDataPreparator=CompFactory.getComp(
"TrigL2MuonSA::MuFastDataPreparator")
174 from TrigT1MuonRecRoiTool.TrigT1MuonRecRoiToolConfig
import RPCRecRoiToolCfg
175 MuFastDataPreparator = TrigL2MuonSA__MuFastDataPreparator( CSCDataPreparator = CscDataPreparator,
176 MDTDataPreparator = MdtDataPreparator,
177 RPCDataPreparator = RpcDataPreparator,
178 TGCDataPreparator = TgcDataPreparator,
179 STGCDataPreparator = StgcDataPreparator,
180 MMDataPreparator = MmDataPreparator,
181 RpcRoadDefiner = RpcRoadDefiner,
182 TgcRoadDefiner = TgcRoadDefiner,
183 ClusterRoadDefiner = ClusterRoadDefiner,
184 TrigT1RPCRecRoiTool = acc.popToolsAndMerge(
RPCRecRoiToolCfg(flags, useRun3Config=flags.Trigger.enableL1MuonPhase1)) )
187 TrigL2MuonSA__MuFastStationFitter,TrigL2MuonSA__PtFromAlphaBeta=CompFactory.getComps(
"TrigL2MuonSA::MuFastStationFitter",
"TrigL2MuonSA::PtFromAlphaBeta")
188 PtFromAlphaBeta = TrigL2MuonSA__PtFromAlphaBeta()
189 PtFromAlphaBeta.useCscPt =
True
190 PtFromAlphaBeta.AvoidMisalignedCSCs =
False
192 MuFastStationFitter = TrigL2MuonSA__MuFastStationFitter( PtFromAlphaBeta = PtFromAlphaBeta )
193 TrigL2MuonSA__MuFastPatternFinder,TrigL2MuonSA__MuFastTrackFitter,TrigL2MuonSA__MuFastTrackExtrapolator,TrigL2MuonSA__MuCalStreamerTool,TrigL2MuonSA__CscSegmentMaker=CompFactory.getComps(
"TrigL2MuonSA::MuFastPatternFinder",
"TrigL2MuonSA::MuFastTrackFitter",
"TrigL2MuonSA::MuFastTrackExtrapolator",
"TrigL2MuonSA::MuCalStreamerTool",
"TrigL2MuonSA::CscSegmentMaker")
194 MuFastPatternFinder = TrigL2MuonSA__MuFastPatternFinder(CalibrationTool=acc.popToolsAndMerge(
MdtCalibrationToolCfg(flags)))
195 MuFastTrackFitter = TrigL2MuonSA__MuFastTrackFitter()
196 MuFastTrackExtrapolator = TrigL2MuonSA__MuFastTrackExtrapolator()
198 from RegionSelector.RegSelToolConfig
import regSelTool_MDT_Cfg, regSelTool_TGC_Cfg
199 MuCalStreamerTool = TrigL2MuonSA__MuCalStreamerTool(
204 CscSegmentMaker = TrigL2MuonSA__CscSegmentMaker()
206 if not flags.Detector.GeometrysTGC
and not flags.Detector.GeometryMM:
207 MuFastStationFitter.NswStationFitter=
""
210 useNSW = ((
not flags.Muon.runCommissioningChain )
and (
not flags.Muon.disableNSWForL2SA ))
211 from TrigL2MuonSA.TrigL2MuonSAMonitoring
import TrigL2MuonSAMonitoring
212 from TrkConfig.AtlasExtrapolatorConfig
import AtlasExtrapolatorCfg
213 muFastAlg = CompFactory.MuFastSteering(
214 name =
"MuFastSteering_Muon"+setup,
215 DataPreparator = MuFastDataPreparator,
216 StationFitter = MuFastStationFitter,
217 PatternFinder = MuFastPatternFinder,
218 TrackFitter = MuFastTrackFitter,
219 TrackExtrapolator = MuFastTrackExtrapolator,
220 FtfRoadDefiner = CompFactory.TrigL2MuonSA.FtfRoadDefiner(
222 CalibrationStreamer = MuCalStreamerTool,
223 MuonCalibrationStream =
"MuonCalibrationStream"+setup,
224 CscSegmentMaker = CscSegmentMaker,
226 R_WIDTH_TGC_FAILED = 200,
227 R_WIDTH_RPC_FAILED = 400,
228 DoCalibrationStream =
False,
229 USE_ROIBASEDACCESS_CSC =
True,
235 USE_ROIBASEDACCESS_STGC=
False,
236 USE_ROIBASEDACCESS_MM =
False,
238 RpcErrToDebugStream =
True,
243 UseRun3Config = flags.Trigger.enableL1MuonPhase1,
244 UseEndcapInnerFromBarrel =
True,
248 TrigMuonBackExtrapolator=CompFactory.TrigMuonBackExtrapolator
253 if setup ==
'900GeV':
254 muFastAlg.WinPt = 4.0
255 muFastAlg.Scale_Road_BarrelInner = 3
256 muFastAlg.Scale_Road_BarrelMiddle = 3
257 muFastAlg.Scale_Road_BarrelOuter = 3
259 muFastAlg.WinPt = 6.0
260 muFastAlg.Scale_Road_BarrelInner = 1
261 muFastAlg.Scale_Road_BarrelMiddle = 1
262 muFastAlg.Scale_Road_BarrelOuter = 1
265 muFastAlg.DoCalibrationStream =
True
266 muFastAlg.MuonCalDataScouting =
False
267 muFastAlg.MuonCalBufferSize = 1024*1024
269 elif setup ==
'MuonCalibDataScouting':
270 muFastAlg.DoCalibrationStream =
True
271 muFastAlg.MuonCalDataScouting =
True
272 muFastAlg.MuonCalBufferSize = 1024*1024
274 elif setup ==
'l2mtmode':
275 muFastAlg.multitrackMode =
True
276 muFastAlg.doEndcapForl2mt =
False
278 elif setup ==
'IOmode':
280 muFastAlg.topoRoad =
False
281 muFastAlg.InsideOutMode =
True
283 return acc, muFastAlg
288 ptBarrelLUTSvc = CompFactory.getComp(
"TrigL2MuonSA::PtBarrelLUTSvc")(name =
'PtBarrelLUTSvc')
289 ptBarrelLUTSvc.LUTfile =
"pt_barrel.lut"
290 ptBarrelLUTSvc.SP_LUTfile =
"pt_barrelSP_new.lut"
292 acc.addService( ptBarrelLUTSvc )
294 return acc, ptBarrelLUTSvc
299 ptBarrelLUTSvc_MC = CompFactory.getComp(
"TrigL2MuonSA::PtBarrelLUTSvc")(name =
'PtBarrelLUTSvc_MC')
300 ptBarrelLUTSvc_MC.LUTfile =
"pt_barrel.mc10.lut"
301 acc.addService( ptBarrelLUTSvc_MC )
303 return acc, ptBarrelLUTSvc_MC
308 ptEndcapLUTSvc = CompFactory.getComp(
"TrigL2MuonSA::PtEndcapLUTSvc")(name =
'PtEndcapLUTSvc')
309 ptEndcapLUTSvc.FileName =
"pt_endcap.lut"
310 ptEndcapLUTSvc.EMeanLUT =
"pt_comb_mean.lut"
311 ptEndcapLUTSvc.ESigmaLUT =
"pt_comb_sigma.lut"
312 if flags.Detector.GeometrysTGC
or flags.Detector.GeometryMM:
313 ptEndcapLUTSvc.UseRun3LUT =
True
315 ptEndcapLUTSvc.UseRun3LUT =
False
316 acc.addService( ptEndcapLUTSvc )
318 return acc, ptEndcapLUTSvc
323 ptEndcapLUTSvc_MC = CompFactory.getComp(
"TrigL2MuonSA::PtEndcapLUTSvc")(name =
'PtEndcapLUTSvc_MC')
324 ptEndcapLUTSvc_MC.FileName =
"pt_endcap.mc10.lut"
325 ptEndcapLUTSvc_MC.EMeanLUT =
"pt_comb_mean.lut"
326 ptEndcapLUTSvc_MC.ESigmaLUT =
"pt_comb_sigma.lut"
327 if flags.Detector.GeometrysTGC
or flags.Detector.GeometryMM:
328 ptEndcapLUTSvc_MC.UseRun3LUT =
True
330 ptEndcapLUTSvc_MC.UseRun3LUT =
False
331 acc.addService( ptEndcapLUTSvc_MC )
333 return acc, ptEndcapLUTSvc_MC
339 alignmentBarrelLUTSvc = CompFactory.getComp(
"TrigL2MuonSA::AlignmentBarrelLUTSvc")(name =
'AlignmentBarrelLUTSvc')
340 alignmentBarrelLUTSvc.LUTfile =
"dZ_barrel.lut"
341 acc.addService( alignmentBarrelLUTSvc )
343 return acc, alignmentBarrelLUTSvc
352 from HLTSeeding.HLTSeedingConfig
import mapThresholdToL1RoICollection
357 acc.merge( muFastAcc )
365 acc.addEventAlgo(muFastFex)
371 if __name__ ==
"__main__":
372 from AthenaConfiguration.TestDefaults
import defaultTestFiles, defaultGeometryTags
373 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
375 flags.Input.Files = defaultTestFiles.RAW_RUN2
376 flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN2
380 cfg.printConfig(withDetails=
True, summariseProps=
True)