ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkEventCnv
TrkEventTPCnv
TrkEventTPCnv
helpers
EigenHelpers.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef EIGEN_HELPERS_H
6
#define EIGEN_HELPERS_H
7
8
#include "
EventPrimitives/EventPrimitives.h
"
9
#include "
GeoPrimitives/GeoPrimitives.h
"
10
#include <vector>
11
#include "
EventPrimitives/EventPrimitivesHelpers.h
"
12
13
class
EigenHelpers
14
{
15
public
:
16
21
template
<
class
VECTOR,
class
COVARIANCE>
22
inline
static
void
vectorToEigenMatrix
(
VECTOR
&
vec
, COVARIANCE& cov,
const
char
* ) {
23
Amg::expand
(
vec
.begin(),
vec
.end(), cov);
24
}
25
29
template
<
class
VECTOR,
class
COVARIANCE>
30
inline
static
void
eigenMatrixToVector
(
VECTOR
&
vec
, COVARIANCE& cov,
const
char
* ) {
31
Amg::compress
(cov,
vec
);
32
}
33
35
template
<
class
T>
36
static
void
vectorToEigenTransform3D
(
const
T &
vec
,
37
Amg::Transform3D
&trans )
38
{
39
trans(0, 0) =
vec
[0];
40
trans(0, 1) =
vec
[1];
41
trans(0, 2) =
vec
[2];
42
trans(1, 0) =
vec
[3];
43
trans(1, 1) =
vec
[4];
44
trans(1, 2) =
vec
[5];
45
trans(2, 0) =
vec
[6];
46
trans(2, 1) =
vec
[7];
47
trans(2, 2) =
vec
[8];
48
trans(0, 3) =
vec
[9];
49
trans(1, 3) =
vec
[10];
50
trans(2, 3) =
vec
[11];
51
}
52
54
template
<
class
T>
55
static
void
eigenTransform3DToVector
(
const
Amg::Transform3D
&trans,
56
T &
vec
)
57
{
58
vec
.reserve(12);
59
vec
.push_back( trans(0, 0) );
60
vec
.push_back( trans(0, 1) );
61
vec
.push_back( trans(0, 2) );
62
vec
.push_back( trans(1, 0) );
63
vec
.push_back( trans(1, 1) );
64
vec
.push_back( trans(1, 2) );
65
vec
.push_back( trans(2, 0) );
66
vec
.push_back( trans(2, 1) );
67
vec
.push_back( trans(2, 2) );
68
vec
.push_back( trans(0, 3) );
69
vec
.push_back( trans(1, 3) );
70
vec
.push_back( trans(2, 3) );
71
}
72
};
73
74
75
76
// template <>
77
// static void EigenHelpers::vectorToEigenMatrix<typename std::vector<float>, typename Amg::Transform3D>(VECTOR& vec, TRANSFORM& transform, const char* name) {
78
// size_t size = vec.size();
79
// assert (size==9);
80
// transform<vec[0],vec[1],vec[3],
81
// vec[1],vec[2],vec[4],
82
// vec[3],vec[4],vec[5];
83
// }
84
85
#endif
vec
std::vector< size_t > vec
Definition
CombinationsGeneratorTest.cxx:9
EventPrimitivesHelpers.h
EventPrimitives.h
GeoPrimitives.h
EigenHelpers::eigenTransform3DToVector
static void eigenTransform3DToVector(const Amg::Transform3D &trans, T &vec)
Convert HepGeom::Transform3D to std :: vector<double>.
Definition
EigenHelpers.h:55
EigenHelpers::eigenMatrixToVector
static void eigenMatrixToVector(VECTOR &vec, COVARIANCE &cov, const char *)
Helper fn to get raw data (vec<float>) from the covariance.
Definition
EigenHelpers.h:30
EigenHelpers::vectorToEigenTransform3D
static void vectorToEigenTransform3D(const T &vec, Amg::Transform3D &trans)
Convert std :: vector<double> to Amg::Transform3D.
Definition
EigenHelpers.h:36
EigenHelpers::vectorToEigenMatrix
static void vectorToEigenMatrix(VECTOR &vec, COVARIANCE &cov, const char *)
Helper fn to fill the covariance from the raw data (vec<float>).
Definition
EigenHelpers.h:22
Amg::compress
void compress(const AmgSymMatrix(N) &covMatrix, std::vector< float > &vec)
Definition
EventPrimitivesHelpers.h:56
Amg::expand
void expand(std::vector< float >::const_iterator it, std::vector< float >::const_iterator, AmgSymMatrix(N) &covMatrix)
Definition
EventPrimitivesHelpers.h:75
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition
GeoPrimitives.h:46
EigenHelpers
Definition
EFTrackingSmearingAlg.cxx:85
VECTOR
TVectorD VECTOR
Definition
sincos_poly.cxx:20
Generated on
for ATLAS Offline Software by
1.17.0