359def MuonTrackSteeringCfg(flags, name="MuonTrackSteering", **kwargs):
360 Muon__MuonTrackSteering=CompFactory.Muon.MuonTrackSteering
361
362 result=ComponentAccumulator()
363
364
365 MoorelikeStrategy=[
366 "BarrelCombined[CombineSegInStation,DoRefinement,DoAmbiSolving,CutSeedsOnTracks]:BML,BMS;BOL,BOS;BIL,BIS",
367 "EndcapCombined[CombineSegInStation,DoRefinement,DoAmbiSolving,CutSeedsOnTracks]:EML,EMS;EOL,EOS;EIL,EIS;CSL,CSS;EEL,EES;BEE",
368 "BarrelEndcap[CombineSegInStation,DoRefinement,DoAmbiSolving,CutSeedsOnTracks,BarrelEndcapFilter]:EML,EMS;EEL,EES;BML,BMS;EIL,EIS;BIL,BIS;BOL,BOS"]
369
370 kwargs.setdefault("StrategyList", MoorelikeStrategy)
371
372
373
374
375 result = MCTBSLFitterCfg(flags)
376 mctbslfitter = result.getPrimary()
377
378 acc = MuonSegmentRegionRecoveryToolCfg(flags, name='MuonEORecoveryTool', OnlyEO = True, Fitter=mctbslfitter, UseFitterOutlierLogic=False)
379 muon_eo_recovery_tool = acc.getPrimary()
380 result.merge(acc)
381
382 kwargs.setdefault("HoleRecoveryTool", muon_eo_recovery_tool)
383 kwargs.setdefault("SegSeedQCut", 2 if flags.Beam.Type != BeamType.Cosmics else 1)
384 kwargs.setdefault("Seg2ndQCut", 1)
385
386 if "TrackBuilderTool" not in kwargs:
387
388
389
390
391
392
393
394 kwargs["TrackBuilderTool"] = result.popToolsAndMerge( MooTrackBuilderCfg(flags, name='MooMuonTrackBuilder', prefix="MuSt_"))
395
396 if "TrackRefinementTool" not in kwargs:
397 kwargs["TrackRefinementTool"] = result.popToolsAndMerge( MooTrackBuilderCfg(flags, name='MooTrackBuilderTemplate', doSegmentPhiMatching=False))
398
399 acc=MuPatCandidateToolCfg(flags)
400 cand_tool = acc.getPrimary()
401 result.merge(acc)
402 kwargs.setdefault("MuPatCandidateTool", cand_tool)
403
404 from MuonConfig.MuonRecToolsConfig import MuonAmbiProcessorCfg
405 acc = MuonAmbiProcessorCfg(flags, name='MuonAmbiProcessor')
406 ambi = acc.getPrimary()
407 result.merge(acc)
408 kwargs.setdefault("AmbiguityTool", ambi)
409
410 kwargs.setdefault("MooBuilderTool", result.popToolsAndMerge( MooTrackBuilderCfg(flags, name='MooMuonTrackBuilder', prefix="MuSt_")))
411
412 kwargs.setdefault("CandidateMatchingTool",
413 result.popToolsAndMerge(MooCandidateMatchingToolCfg(flags, doSegmentPhiMatching=True)))
414
415 kwargs.setdefault("MuonSegmentFittingTool",
416 result.popToolsAndMerge(MuonSegmentFittingToolCfg(flags)))
417 kwargs.setdefault("MuonTrackSelector",
418 result.popToolsAndMerge(MuonTrackSelectorCfg(flags)))
419
420 kwargs.setdefault("HoleRecoveryTool",
421 result.popToolsAndMerge(MuonChamberHoleRecoveryToolCfg(flags)))
422
423 from TrkConfig.TrkTrackSummaryToolConfig import MuonTrackSummaryToolCfg
424 kwargs.setdefault("TrackSummaryTool", result.popToolsAndMerge(MuonTrackSummaryToolCfg(flags)))
425 kwargs.setdefault("DoSummary", flags.Muon.printSummary)
426
427
428 track_maker_steering = Muon__MuonTrackSteering(name,**kwargs)
429 result.setPrivateTools(track_maker_steering)
430 return result
431