ATLAS Offline Software
|
#include <SeedNewtonTrkDistanceFinder.h>
Public Member Functions | |
virtual StatusCode | initialize () override |
virtual StatusCode | finalize () override |
SeedNewtonTrkDistanceFinder (const std::string &t, const std::string &n, const IInterface *p) | |
virtual | ~SeedNewtonTrkDistanceFinder () |
virtual std::optional< TwoPoints > | CalculateMinimumDistance (const Trk::Perigee &, const Trk::Perigee &) const override final |
method to do the calculation starting from two Perigees More... | |
virtual std::optional< TwoPoints > | CalculateMinimumDistance (const Trk::Track &, const Trk::Track &) const override final |
method to do the calculation starting from two tracks More... | |
Private Attributes | |
ToolHandle< Trk2dDistanceSeeder > | m_2ddistanceseeder |
ToolHandle< NewtonTrkDistanceFinder > | m_distancefinder |
std::atomic< int > | m_numberOfMinimizationFailures |
Algotool which calculates the distance between the two tracks, using: the distance finder you specify, which is an object of type NewtonTrkDistanceFinderAlgo, and using a starting position on the tracks given by Trk2dDistanceSeeder.
The class NewtonTrkDistanceFinderAlgo is based on a Newton minimization procedure, which finds the twodimensional point (position on first and second track) on which the derivatives of the distance is zero.
To avoid maxima the algorithm is initialized with two initial points on the two tracks, which are obtained using the Trk2dDistanceSeeder AlgoTool. This tool finds the point on minimum distance on the transverse plane, which is analitically well defined (intersection of two circles). In case of double intersection different possibilities were considered, at the end I found reasonably good to choose the intersection point where the tracks are nearest in the z coordinate...
Definition at line 44 of file SeedNewtonTrkDistanceFinder.h.
Trk::SeedNewtonTrkDistanceFinder::SeedNewtonTrkDistanceFinder | ( | const std::string & | t, |
const std::string & | n, | ||
const IInterface * | p | ||
) |
Definition at line 29 of file SeedNewtonTrkDistanceFinder.cxx.
|
virtualdefault |
|
finaloverridevirtual |
method to do the calculation starting from two Perigees
method to do the calculation starting from two MeasuredPerigees
If successful, returns the points on the two tracks at minimum distance.
return value is true if calculation is successfull
Definition at line 65 of file SeedNewtonTrkDistanceFinder.cxx.
|
finaloverridevirtual |
|
overridevirtual |
Definition at line 54 of file SeedNewtonTrkDistanceFinder.cxx.
|
overridevirtual |
Definition at line 41 of file SeedNewtonTrkDistanceFinder.cxx.
|
private |
Definition at line 66 of file SeedNewtonTrkDistanceFinder.h.
|
private |
Definition at line 67 of file SeedNewtonTrkDistanceFinder.h.
|
mutableprivate |
Definition at line 68 of file SeedNewtonTrkDistanceFinder.h.