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])) {
#define ATH_CHECK
Evaluate an expression and check for errors.
ToolHandle< Trk2dDistanceSeeder > m_2ddistanceseeder
virtual StatusCode initialize() override
std::atomic< int > m_numberOfMinimizationFailures
ToolHandle< NewtonTrkDistanceFinder > m_distancefinder
virtual ~SeedNewtonTrkDistanceFinder()
SeedNewtonTrkDistanceFinder(const std::string &t, const std::string &n, const IInterface *p)
virtual std::optional< TwoPoints > CalculateMinimumDistance(const Trk::Perigee &, const Trk::Perigee &) const override final
method to do the calculation starting from two Perigees
virtual StatusCode finalize() override
Ensure that the ATLAS eigen extensions are properly loaded.
ParametersT< TrackParametersDim, Charged, PerigeeSurface > Perigee