 |
ATLAS Offline Software
|
Go to the documentation of this file.
5 #include <GeoModelKernel/throwExcept.h>
7 #include <GaudiKernel/SystemOfUnits.h>
14 return std::visit([&
a,&
b](
const auto&
cov) ->
double{
15 using CovType = std::decay_t<decltype(
cov)>;
17 return a.block<2,1>(0,0).
dot(
cov*
b.block<2,1>(0,0));
18 }
else if constexpr(std::is_same_v<CovType,
AmgSymMatrix(3)>){
19 return a.dot(
static_cast<const CovType&
>(
cov)*
b);
28 return std::visit([&
a,&
b](
const auto&
cov) ->
double {
29 using CovType = std::decay_t<decltype(
cov)>;
42 std::visit([&
v, &
result](
const auto&
cov) ->
void {
43 using CovType = std::decay_t<decltype(
cov)>;
45 result.block<2,1>(0,0) =
cov *
v.block<2,1>(0,0);
54 std::visit([&
v, &
result](
const auto&
cov) ->
void {
55 using CovType = std::decay_t<decltype(
cov)>;
57 result.block<2,1>(0,0) =
cov *
v.block<2,1>(0,0);
67 using CovType = std::decay_t<decltype(
cov)>;
76 return std::visit([](
const auto&
cov)-> std::string {
Eigen::Matrix< double, 2, 1 > Vector2D
Amg::Vector3D multiply(const CalibratedSpacePoint::Covariance_t &mat, const Amg::Vector3D &v)
Multiplies a 3D vector with the covariance matrix which can be either 2x2 or 3x3 matrix.
std::string toString(const CalibratedSpacePoint::Covariance_t &mat)
Returns the matrix in string.
std::string toString(const Translation3D &translation, int precision=4)
GeoPrimitvesToStringConverter.
CalibratedSpacePoint::Covariance_t inverse(const CalibratedSpacePoint::Covariance_t &mat)
Inverts the parsed matrix.
def dot(G, fn, nodesToHighlight=[])
Eigen::Matrix< double, 3, 1 > Vector3D
#define THROW_EXCEPTION(MESSAGE)
This header ties the generic definitions in this package.
const AmgSymMatrix(2) &SpacePoint
std::variant< AmgSymMatrix(2), AmgSymMatrix(3)> Covariance_t
The spatial covariance matrix of the calibrated space point.
double contract(const CalibratedSpacePoint::Covariance_t &mat, const Amg::Vector3D &a, const Amg::Vector3D &b)