Skip to content

Commit fe45bae

Browse files
authored
Fixing typo in global forward covariance conversion (#12496)
* Fixing typo in global forward covariance conversion and improving readability * Clang format
1 parent ab99bfd commit fe45bae

File tree

1 file changed

+20
-20
lines changed

1 file changed

+20
-20
lines changed

DataFormats/Reconstruction/src/TrackFwd.cxx

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)