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...