WIP: xAOD::TrackParticle Covariance Matrix Evolution, 21.2 branch (2019.06.17.)
This is meant as a replacement for !20947 (closed).
Following the discussions with the tracking and reconstruction experts, this is an attempt at implementing a schema evolution for xAOD::TrackParticle
. In the new setup the covariance matrix of the defining parameters end up in two separate variables called "definingParametersCovMatrixDiag" and "definingParametersCovMatrixOffDiag". Making it possible to handle the diagonal and off-diagonal elements of the covariance matrix more easily in the I/O system.
One main change in the xAOD::TrackParticle
interface is the introduction of the xAOD::TrackParticle::definingParametersCovMatrixFilled()
method. This function is meant to return a 5x5 matrix of booleans, describing which elements of the covariance matrix are actually available for a given track particle. To avoid hardcoding knowledge about the internal implementation of xAOD::TrackParticle
in "user code". Though in the helper functions provided in xAODTracking
I still kept using the accessor to the underlying std::vector<float>
variable for efficiency reasons. However in code outside of xAODTracking
we should not do that...
Pinging @tstreble and @christos as people who should have a look at the changes already at this point.