11 theH(
nullptr), theG(
nullptr), pointsUpdated(
false), themaxjump(20),thesingjacI(1./0.1), themaxiter(4)
25 if ( Ht == 0. || Gt == 0. ) {
27 <<
"transverse momentum of input trajectory is zero.";
33 <<
"charge of input track is zero.";
39 <<
"magnetic field at point " << gpG <<
" is zero.";
45 <<
"magnetic field at point " << gpH <<
" is zero.";
86 if (A11 < 0) {
return true; };
89 if (A22 < 0) {
return true; };
90 const double A12=
theh * (-
theg * thecospG * thecospH -
92 const double A21= -
theg * (
theh * thecospG * thecospH +
94 const double detaI = 1./(A11 * A22 - A12 * A21);
100 dH=( z1 * A22 - z2 * A12 ) * detaI;
101 dG=( z2 * A11 - z1 * A21 ) * detaI;
136 double pH=0;
double pG=0;
141 }
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 &)
const MagneticField & magneticField() const
~TwoTrackMinimumDistanceHelixHelix()
GlobalTrajectoryParameters const * theH
TrackCharge charge() const