ATLAS Offline Software
Loading...
Searching...
No Matches
TrackParametersCovarianceCnv< PARMS > Class Template Reference

#include <TrackParametersCovarianceCnv.h>

Collaboration diagram for TrackParametersCovarianceCnv< PARMS >:

Static Public Member Functions

static void setCovariance (PARMS *p, const Trk::ErrorMatrix &mat)

Detailed Description

template<typename PARMS>
class TrackParametersCovarianceCnv< PARMS >

Definition at line 23 of file TrackParametersCovarianceCnv.h.

Member Function Documentation

◆ setCovariance()

template<typename PARMS>
void TrackParametersCovarianceCnv< PARMS >::setCovariance ( PARMS * p,
const Trk::ErrorMatrix & mat )
static

Definition at line 32 of file TrackParametersCovarianceCnv.h.

34{
35 if (!p->m_covariance || p->m_covariance->size() != PARMS::dim) {
36 p->m_covariance.emplace();
37 }
38 if (mat.values.size() == PARMS::dim*(PARMS::dim+1)/2){
39 EigenHelpers::vectorToEigenMatrix(mat.values, *(p->m_covariance), "TrackParametersCovarianceCnv");
40 }
41 else if (mat.values.size() == 6) {
42 auto& cov = *(p->m_covariance);
43 cov.setZero();
44 unsigned int pos = 0;
45 for (unsigned int i=0; i < 3; i++)
46 for (unsigned int j=0; j <= i; j++)
47 cov.fillSymmetric (i, j, mat.values[pos++]);
48 }
49 else
50 std::abort();
51}

The documentation for this class was generated from the following files: