39 double rad,
const double *inErr) {
61 double d0ovSlope = -
rad *
rad / sqrt( 1. + slope*slope *
rad*
rad );
62 double d0 = slope * d0ovSlope;
65 double d0ovRad =
d0 /
rad ;
67 d0ovRad = ( d0ovRad > 1.0 || d0ovRad < -1.0) ?
68 (d0ovRad+0.00001)/fabs(d0ovRad) : d0ovRad;
74 double dphi0ds = -d0ovSlope * sqrt( 1. - d0ovRad*d0ovRad ) /
rad;
75 double dd0ds = d0ovSlope * ( 1. - d0ovRad*d0ovRad );
78 _errmat[0] = inErr[2] * dd0ds * dd0ds;
82 _errmat[2] = inErr[2] * dphi0ds * dphi0ds + inErr[0] +
83 inErr[1] * 2. * dphi0ds;
86 _errmat[1] = inErr[2] * dd0ds * dphi0ds +
91 std::cout <<
" ErrMsg(warning) "
92 <<
"Failed to invert matrix -- MdcSegInfo::calcStraight" << endl