Skip to content
Snippets Groups Projects
Commit 9c9048ff authored by Adam Edward Barton's avatar Adam Edward Barton :speech_balloon:
Browse files

Merge branch 'mungeZeroQOverP_implement_via_setters' into 'master'

Implement mungeZeroQOverP in terms of updateParameters

See merge request atlas/athena!38306
parents 93c35368 bb38f2db
No related branches found
No related tags found
No related merge requests found
......@@ -77,12 +77,15 @@ public:
/** virtual Destructor */
virtual ~ParametersBase() = default;
/** Access method for the parameters */
/** Access methods for the parameters */
const AmgVector(DIM) & parameters() const;
AmgVector(DIM) & parameters();
/** Access method for the covariance matrix - returns nullptr if no covariance
* matrix is given */
const AmgSymMatrix(DIM) * covariance() const;
AmgSymMatrix(DIM)* covariance();
/** Access method for transverse momentum */
double pT() const;
......
......@@ -49,17 +49,28 @@ Trk::ParametersBase<DIM, T>::ParametersBase(const AmgVector(DIM) & parameters,
: m_parameters(parameters)
, m_covariance(covariance)
, m_chargeDef{}
{}
template<int DIM, class T>
const AmgVector(DIM)& ParametersBase<DIM, T>::parameters() const
{
return m_parameters;
}
template<int DIM, class T>
const AmgVector(DIM) & ParametersBase<DIM, T>::parameters() const
AmgVector(DIM)& ParametersBase<DIM, T>::parameters()
{
return m_parameters;
}
template<int DIM, class T>
const AmgSymMatrix(DIM) * ParametersBase<DIM, T>::covariance() const
const AmgSymMatrix(DIM)* ParametersBase<DIM, T>::covariance() const
{
return m_covariance.get();
}
template<int DIM, class T>
AmgSymMatrix(DIM)* ParametersBase<DIM, T>::covariance()
{
return m_covariance.get();
}
......@@ -89,7 +100,6 @@ ParametersBase<DIM, T>::isCharged() const
}
}
template<int DIM, class T>
Amg::Vector2D
ParametersBase<DIM, T>::localPosition() const
......
......@@ -47,7 +47,7 @@ class MaterialEffectsEngine;
@author Christos Anastopoulos (Athena MT modifications)
*/
template<int DIM, class T, class S>
class ParametersT : public ParametersBase<DIM, T>
class ParametersT final : public ParametersBase<DIM, T>
{
public:
static_assert(
......
......@@ -19,27 +19,18 @@
#ifndef TRKEVENTTPCNV_MUNGEZEROQOVERP_H
#define TRKEVENTTPCNV_MUNGEZEROQOVERP_H
#include "CxxUtils/no_sanitize_undefined.h"
namespace TrkEventTPCnv {
template <int DIM, class T, class S>
class MungeZeroQOverP
: public Trk::ParametersT<DIM, T, S>
template<int DIM, class T, class S>
void mungeZeroQOverP
NO_SANITIZE_UNDEFINED(Trk::ParametersT<DIM, T, S>& p)
{
public:
void setZero() { this->m_parameters[Trk::qOverP] = 0; }
};
template <int DIM, class T, class S>
void mungeZeroQOverP NO_SANITIZE_UNDEFINED (Trk::ParametersT<DIM, T, S>& p)
{
static_cast<MungeZeroQOverP<DIM, T, S>&>(p).setZero();
AmgVector(DIM) newParam = p.parameters();
newParam[Trk::qOverP] = 0;
p.updateParameters(newParam);
}
}
......
......@@ -13,30 +13,18 @@
#include "TrkEventTPCnv/helpers/EigenHelpers.h"
namespace {
template <class ATA_SURFACE>
class SurfaceGetCovariance : public ATA_SURFACE
{
public:
AmgSymMatrix(ATA_SURFACE::dim)* getCovariance() { return this->m_covariance.get(); }
};
}
template< class SURFACE_CNV, class ATA_SURFACE >
void
MeasuredNeutralAtaSurfaceCnv_p1< SURFACE_CNV, ATA_SURFACE >::
persToTrans( const Trk::MeasuredAtaSurface_p1 *persObj, ATA_SURFACE *transObj, MsgStream &log )
{
m_surfaceCnv.persToTrans( persObj, transObj, log );
Trk::ErrorMatrix dummy;
this->fillTransFromPStore( &m_errorMxCnv, persObj->m_errorMatrix, &dummy, log );
AmgSymMatrix(ATA_SURFACE::dim)* cov = static_cast<SurfaceGetCovariance<ATA_SURFACE>*>(transObj)->getCovariance();
AmgSymMatrix(ATA_SURFACE::dim)* cov = transObj->covariance();
EigenHelpers::vectorToEigenMatrix(dummy.values, *cov, "MeasuredNeutralAtaSurfaceCnv_p1");
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment