29 m_2ddistanceseeder(
"Trk::Trk2dDistanceSeeder"),
30 m_distancefinder(
"Trk::NewtonTrkDistanceFinder"),
31 m_numberOfMinimizationFailures(0)
33 declareProperty(
"Trk2dDistanceSeeder", m_2ddistanceseeder);
34 declareProperty(
"TrkDistanceFinderImplementation", m_distancefinder);
49 return StatusCode::SUCCESS;
56 return StatusCode::SUCCESS;
62 std::optional<ITrkDistanceFinder::TwoPoints>
67 std::pair<PointOnTrack,PointOnTrack> minpoints;
71 if (std::holds_alternative<TwoPoints>(ret)) {
72 return std::get<TwoPoints>(ret);
75 std::get<std::string>(ret) );
78 if (std::holds_alternative<TwoPoints>(ret)) {
79 return std::get<TwoPoints>(ret);
81 ATH_MSG_DEBUG(
"Problem with Newton finder, even after 2d seeder: no minimum between tracks found" << std::get<std::string>(ret));
89 std::optional<ITrkDistanceFinder::TwoPoints>
93 if (std::isnan(
a.perigeeParameters()->parameters()[
Trk::d0])||std::isnan(
b.perigeeParameters()->parameters()[
Trk::d0])) {