@@ -469,36 +469,36 @@ bool TrackParCovFwd::getCovXYZPxPyPzGlo(std::array<float, 21>& cv) const
469469 // Cov(pz,x)... : cv[15] cv[16] cv[17] cv[18] cv[19] cv[20]
470470 // ---------------------------------------------------------------------
471471 auto pt = getPt ();
472- auto pt2 = pt * pt ;
473- auto sign = getCharge ();
474- auto spt = pt * getSnp ();
475- auto cpt = std::sqrt (( 1 . - getSnp ()) * ( 1 . + getSnp ())) * pt * sign;
476- auto tpt2 = getTgl () * pt2 * sign ;
477- auto scpt2 = spt * cpt * sign ;
478- auto s2pt2 = spt * spt * sign ;
479- auto c2pt2 = cpt * cpt * sign ;
472+ auto cp = std::sqrt (( 1 . - getSnp ()) * ( 1 . + getSnp ())) ;
473+ auto sp = getSnp ();
474+ auto tgl = getTgl ();
475+
476+ auto px = pt * std::sqrt (( 1 . - getSnp ()) * ( 1 . + getSnp ())) ;
477+ auto py = pt * getSnp () ;
478+ auto pz = pt * getTgl () ;
479+ auto q = getCharge () ;
480480
481481 cv[0 ] = mCovariances (0 , 0 );
482482 cv[1 ] = mCovariances (1 , 0 );
483483 cv[2 ] = mCovariances (1 , 1 );
484484 cv[3 ] = 0 ;
485485 cv[4 ] = 0 ;
486486 cv[5 ] = 0 ;
487- cv[6 ] = -mCovariances (0 , 2 ) * spt - mCovariances (0 , 4 ) * cpt * pt;
488- cv[7 ] = -mCovariances (1 , 2 ) * spt - mCovariances (1 , 4 ) * cpt * pt;
487+ cv[6 ] = -mCovariances (0 , 2 ) * py - mCovariances (0 , 4 ) * px * pt * q ;
488+ cv[7 ] = -mCovariances (1 , 2 ) * py - mCovariances (1 , 4 ) * px * pt * q ;
489489 cv[8 ] = 0 ;
490- cv[9 ] = 2 * mCovariances (2 , 4 ) * spt * cpt * pt + mCovariances (2 , 2 ) * spt * spt + mCovariances (4 , 4 ) * c2pt2 * pt2 ;
491- cv[10 ] = mCovariances (0 , 2 ) * cpt * sign - mCovariances (0 , 4 ) * spt * pt * sign ;
492- cv[11 ] = mCovariances (1 , 2 ) * cpt * sign - mCovariances (1 , 4 ) * spt * pt * sign ;
490+ cv[9 ] = 2 * mCovariances (2 , 4 ) * px * py * q * pt + mCovariances (2 , 2 ) * py * py + mCovariances (4 , 4 ) * px * px * pt * pt ;
491+ cv[10 ] = mCovariances (0 , 2 ) * px - mCovariances (0 , 4 ) * py * pt * q ;
492+ cv[11 ] = mCovariances (1 , 2 ) * px - mCovariances (1 , 4 ) * py * pt * q ;
493493 cv[12 ] = 0 ;
494- cv[13 ] = mCovariances (2 , 4 ) * (s2pt2 - c2pt2) - mCovariances (2 , 2 ) * scpt2 + mCovariances (4 , 4 ) * scpt2 * pt2 ;
495- cv[14 ] = -2 * mCovariances (2 , 4 ) * spt * cpt * pt + mCovariances (2 , 2 ) * cpt * cpt + mCovariances (4 , 4 ) * s2pt2 * pt2 ;
496- cv[15 ] = mCovariances (0 , 3 ) * pt - mCovariances (0 , 4 ) * tpt2 ;
497- cv[16 ] = mCovariances (1 , 3 ) * pt - mCovariances (1 , 4 ) * tpt2 ;
494+ cv[13 ] = mCovariances (2 , 4 ) * (py * py - px * px) * q * pt - mCovariances (2 , 2 ) * px * py + mCovariances (4 , 4 ) * px * py * pt * pt ;
495+ cv[14 ] = -2 * mCovariances (2 , 4 ) * px * py * q * pt + mCovariances (2 , 2 ) * px * px + mCovariances (4 , 4 ) * py * py * pt * pt ;
496+ cv[15 ] = mCovariances (0 , 3 ) * pt - mCovariances (0 , 4 ) * pt * pz * q ;
497+ cv[16 ] = mCovariances (1 , 3 ) * pt - mCovariances (1 , 4 ) * pt * pz * q ;
498498 cv[17 ] = 0 ;
499- cv[18 ] = -mCovariances (2 , 3 ) * spt * pt - mCovariances (3 , 4 ) * cpt * pt2 + mCovariances (2 , 4 ) * spt * tpt2 + mCovariances (4 , 4 ) * cpt * tpt2 * pt;
500- cv[19 ] = mCovariances (2 , 3 ) * cpt * pt * sign - mCovariances (3 , 4 ) * spt * pt2 * sign - mCovariances (2 , 4 ) * spt * tpt2 * sign + mCovariances (2 , 4 ) * spt * tpt2 * pt2 * sign ;
501- cv[20 ] = -2 * mCovariances (3 , 4 ) * tpt2 * pt + mCovariances (3 , 3 ) * pt2 + mCovariances (4 , 4 ) * tpt2 * tpt2 ;
499+ cv[18 ] = -mCovariances (2 , 3 ) * py * pt - mCovariances (3 , 4 ) * px * q * pt * pt + mCovariances (2 , 4 ) * py * pz * q * pt + mCovariances (4 , 4 ) * px * pz * pt * pt;
500+ cv[19 ] = mCovariances (2 , 3 ) * px * pt - mCovariances (3 , 4 ) * q * pt * pt * py - mCovariances (2 , 4 ) * px * pz * q * pt + mCovariances (4 , 4 ) * py * pz * pt * pt ;
501+ cv[20 ] = -2 * mCovariances (3 , 4 ) * pz * q * pt * pt + mCovariances (3 , 3 ) * pt * pt + mCovariances (4 , 4 ) * pz * pz * pt * pt ;
502502
503503 return true ;
504504}
0 commit comments