Skip to content

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.

Merge request reports