#include <cmath>
Go to the source code of this file.
◆ deltaPhi()
Scalar deltaPhi |
( |
const MatrixBase< Derived > & |
vec | ) |
const |
|
inline |
◆ deltaR()
Scalar deltaR |
( |
const MatrixBase< Derived > & |
vec | ) |
const |
|
inline |
◆ eta()
pseudorapidity method
Definition at line 83 of file AmgMatrixBasePlugin.h.
84 constexpr
int size = Eigen::MatrixBase<Derived>::SizeAtCompileTime;
85 constexpr
int isVector = Eigen::MatrixBase<Derived>::IsVectorAtCompileTime;
86 static_assert(
isVector &&
size>=3,
"Method applicable for vectors of size >=3");
87 const Scalar
rho2 = (*this).x() * (*this).x() + (*this).y() * (*this).y();
88 const Scalar
z = (*this).z();
89 const Scalar z2 =
z *
z;
90 constexpr Scalar epsilon = 2. * std::numeric_limits<Scalar>::epsilon();
92 if (
rho2 > z2 * epsilon) {
93 const double m = std::sqrt(
rho2 + z2);
100 constexpr Scalar s_etaMax =
static_cast<Scalar
>(22756.0);
102 return (
z > 0) ?
z + s_etaMax :
z - s_etaMax;
◆ fillSymmetric()
void fillSymmetric |
( |
size_t |
i, |
|
|
size_t |
j, |
|
|
Scalar |
value |
|
) |
| |
|
inline |
◆ mag()
◆ mag2()
mag2 method - forward to squaredNorm()
Definition at line 31 of file AmgMatrixBasePlugin.h.
32 return (*this).squaredNorm();
◆ perp() [1/2]
perp method - perpenticular length
Definition at line 44 of file AmgMatrixBasePlugin.h.
45 constexpr
int size = Eigen::MatrixBase<Derived>::SizeAtCompileTime;
46 constexpr
int isVector = Eigen::MatrixBase<Derived>::IsVectorAtCompileTime;
47 static_assert(
isVector &&
size>=2,
"Method applicable for vectors of size >=2");
48 return std::sqrt(this->
perp2());
◆ perp() [2/2]
Scalar perp |
( |
const MatrixBase< Derived > & |
vec | ) |
|
|
inline |
◆ perp2() [1/2]
perp2 method - perpendicular length squared
Definition at line 36 of file AmgMatrixBasePlugin.h.
37 constexpr
int size = Eigen::MatrixBase<Derived>::SizeAtCompileTime;
38 constexpr
int isVector = Eigen::MatrixBase<Derived>::IsVectorAtCompileTime;
39 static_assert(
isVector &&
size>=2,
"Method applicable for vectors of size >=2");
40 return ((*
this)[0] * (*
this)[0] + (*
this)[1] * (*
this)[1]);
◆ perp2() [2/2]
Scalar perp2 |
( |
const MatrixBase< Derived > & |
vec | ) |
|
|
inline |
◆ phi()
phi method
Definition at line 67 of file AmgMatrixBasePlugin.h.
68 constexpr
int size = Eigen::MatrixBase<Derived>::SizeAtCompileTime;
69 constexpr
int isVector = Eigen::MatrixBase<Derived>::IsVectorAtCompileTime;
70 static_assert(
isVector &&
size>=2,
"Method applicable for vectors of size >=2");
71 return std::atan2((*
this)[1], (*
this)[0]);
◆ similarity()
template<typename OtherDerived >
Matrix<Scalar, OtherDerived::RowsAtCompileTime, OtherDerived::RowsAtCompileTime> similarity |
( |
const MatrixBase< OtherDerived > & |
m | ) |
const |
|
inline |
similarity method : yields ms = m*s*m^T
Definition at line 133 of file AmgMatrixBasePlugin.h.
134 return m * (this->derived() *
m.transpose());
◆ similarityT()
template<typename OtherDerived >
Matrix<Scalar, OtherDerived::RowsAtCompileTime, OtherDerived::RowsAtCompileTime> similarityT |
( |
const MatrixBase< OtherDerived > & |
m | ) |
const |
|
inline |
similarityT method : yields ms = m^T*s*m
Definition at line 141 of file AmgMatrixBasePlugin.h.
142 return m.transpose() * (this->derived() *
m);
◆ theta()
theta method
Definition at line 75 of file AmgMatrixBasePlugin.h.
76 constexpr
int size = Eigen::MatrixBase<Derived>::SizeAtCompileTime;
77 constexpr
int isVector = Eigen::MatrixBase<Derived>::IsVectorAtCompileTime;
78 static_assert(
isVector &&
size>=3,
"Method applicable for vectors of size >=3");
79 return std::atan2(this->
perp(), (*
this)[2]);
◆ unit()
const PlainObject unit |
( |
| ) |
const |
|
inline |
This is a plugin that makes Eigen look like CLHEP & defines some convenience methods.
unit method - forward normalized()
Definition at line 21 of file AmgMatrixBasePlugin.h.
22 return (*this).normalized();