37 const double* inErr ) {
59 double d0ovSlope = -
rad *
rad / sqrt( 1. + slope * slope *
rad *
rad );
60 double d0 = slope * d0ovSlope;
63 double d0ovRad =
d0 /
rad;
66 ( d0ovRad > 1.0 || d0ovRad < -1.0 ) ? ( d0ovRad + 0.00001 ) / fabs( d0ovRad ) : d0ovRad;
72 double dphi0ds = -d0ovSlope * sqrt( 1. - d0ovRad * d0ovRad ) /
rad;
73 double dd0ds = d0ovSlope * ( 1. - d0ovRad * d0ovRad );
76 _errmat[0] = inErr[2] * dd0ds * dd0ds;
80 _errmat[2] = inErr[2] * dphi0ds * dphi0ds + inErr[0] + inErr[1] * 2. * dphi0ds;
83 _errmat[1] = inErr[2] * dd0ds * dphi0ds + inErr[1] * dd0ds;
88 std::cout <<
" ErrMsg(warning) "
89 <<
"Failed to invert matrix -- MdcSegInfo::calcStraight" << endl