11 : theH(nullptr), theG(nullptr), pointsUpdated(
false), themaxjump(20), thesingjacI(1. / 0.1), themaxiter(4) {}
22 if (Ht == 0. || Gt == 0.) {
23 edm::LogWarning(
"TwoTrackMinimumDistanceHelixHelix") <<
"transverse momentum of input trajectory is zero.";
28 edm::LogWarning(
"TwoTrackMinimumDistanceHelixHelix") <<
"charge of input track is zero.";
33 edm::LogWarning(
"TwoTrackMinimumDistanceHelixHelix") <<
"magnetic field at point " << gpG <<
" is zero.";
38 edm::LogWarning(
"TwoTrackMinimumDistanceHelixHelix") <<
"magnetic field at point " << gpH <<
" is zero.";
62 thee1 = thetanlambdaH *
64 thee2 = thetanlambdaG *
85 const double detaI = 1. / (A11 * A22 - A12 * A21);
91 dH = (z1 * A22 - z2 * A12) * detaI;
92 dG = (z2 * A11 - z1 * A21) * detaI;
137 }
while ((!retval) && (fabs(pG) > qual || fabs(pH) > qual));
constexpr bool isNotFinite(T x)
Sin< T >::type sin(const T &t)
GlobalVector inInverseGeV(const GlobalPoint &gp) const
Field value ad specified global point, in 1/Gev.
bool updateCoeffs(const GlobalPoint &, const GlobalPoint &)
GlobalVector momentum() const
Cos< T >::type cos(const T &t)
bool calculate(const GlobalTrajectoryParameters &, const GlobalTrajectoryParameters &, const float qual=.001)
GlobalPoint position() const
TwoTrackMinimumDistanceHelixHelix()
GlobalTrajectoryParameters const * theG
bool oneIteration(double &, double &)
static std::atomic< unsigned int > counter
const MagneticField & magneticField() const
~TwoTrackMinimumDistanceHelixHelix()
Log< level::Warning, false > LogWarning
GlobalTrajectoryParameters const * theH
TrackCharge charge() const