64def MuonSeededSegmentFinderCfg(flags,name="MuonSeededSegmentFinder", **kwargs):
65
66 from MuonConfig.MuonSegmentFindingConfig import DCMathSegmentMakerCfg, MdtMathSegmentFinderCfg
67 from MuonConfig.MuonRIO_OnTrackCreatorToolConfig import MdtDriftCircleOnTrackCreatorCfg
68 from TrkConfig.TrkExRungeKuttaPropagatorConfig import RungeKuttaPropagatorCfg
69
70 result = ComponentAccumulator()
71
72 if "SegmentMaker" not in kwargs or "SegmentMakerNoHoles" not in kwargs:
73 seg_maker=""
74 mdt_segment_finder = result.popToolsAndMerge( MdtMathSegmentFinderCfg(flags, name="MCTBMdtMathSegmentFinder", UseChamberTheta = False, AssociationRoadWidth = 1.5) )
75 if flags.Beam.Type is BeamType.Collisions:
76 seg_maker = result.popToolsAndMerge ( DCMathSegmentMakerCfg( flags, name = "MCTBDCMathSegmentMaker", MdtSegmentFinder = mdt_segment_finder, SinAngleCut = 0.04, DoGeometry = True))
77 else:
78 seg_maker = result.popToolsAndMerge (DCMathSegmentMakerCfg( flags, name = "MCTBDCMathSegmentMaker", MdtSegmentFinder = mdt_segment_finder, SinAngleCut = 0.1, DoGeometry = False, AddUnassociatedPhiHits= True ))
79 kwargs.setdefault("SegmentMaker", seg_maker)
80 kwargs.setdefault("SegmentMakerNoHoles", seg_maker)
81
82 kwargs.setdefault("Propagator", result.popToolsAndMerge(RungeKuttaPropagatorCfg(flags)) )
83 kwargs.setdefault("MdtRotCreator", result.popToolsAndMerge (MdtDriftCircleOnTrackCreatorCfg(flags)))
84 kwargs.setdefault("Printer", result.getPrimaryAndMerge(MuonEDMPrinterToolCfg(flags)) )
85
86 if not flags.Detector.GeometryTGC:
87 kwargs.setdefault('TgcPrepDataContainer', "")
88 if not flags.Detector.GeometryMDT:
89 kwargs.setdefault('MdtPrepDataContainer', "")
90 if not flags.Detector.GeometryRPC:
91 kwargs.setdefault('RpcPrepDataContainer', "")
92 if not flags.Detector.GeometryCSC:
93 kwargs.setdefault("CscPrepDataContainer","")
94 if not flags.Detector.GeometrysTGC:
95 kwargs.setdefault("sTgcPrepDataContainer","")
96 if not flags.Detector.GeometryMM:
97 kwargs.setdefault("MMPrepDataContainer","")
98
99
100 kwargs.setdefault('TgcPrepDataContainer', 'TGC_MeasurementsAllBCs' if not flags.Muon.useTGCPriorNextBC else 'TGC_Measurements')
101
102 muon_seeded_segment_finder = CompFactory.Muon.MuonSeededSegmentFinder(name, **kwargs)
103 result.setPrivateTools(muon_seeded_segment_finder)
104 return result
105
106