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.";
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));
GlobalPoint position() const
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.
TrackCharge charge() const
GlobalVector momentum() const
bool updateCoeffs(const GlobalPoint &, const GlobalPoint &)
Cos< T >::type cos(const T &t)
bool calculate(const GlobalTrajectoryParameters &, const GlobalTrajectoryParameters &, const float qual=.001)
TwoTrackMinimumDistanceHelixHelix()
const MagneticField & magneticField() const
GlobalTrajectoryParameters const * theG
bool oneIteration(double &, double &)
~TwoTrackMinimumDistanceHelixHelix()
Log< level::Warning, false > LogWarning
GlobalTrajectoryParameters const * theH
MPlex< T, D1, D2, N > atan2(const MPlex< T, D1, D2, N > &y, const MPlex< T, D1, D2, N > &x)