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