 |
Belle II Software
release-05-02-19
|
12 #include <tracking/trackFindingCDC/numerics/JacobianMatrix.h>
13 #include <tracking/trackFindingCDC/numerics/ParameterVector.h>
15 #include <tracking/trackFindingCDC/geometry/Vector2D.h>
17 #include <tracking/trackFindingCDC/numerics/EigenView.h>
26 namespace TrackFindingCDC {
29 struct JacobianMatrixUtil {
32 template <
unsigned int M,
unsigned int N = M>
33 static JacobianMatrix<M, N>
zero()
39 template <
int M,
int N = M>
59 result(i, i) = phiVec.
x();
60 result(i, j) = phiVec.
y();
61 result(j, i) = -phiVec.
y();
62 result(j, j) = phiVec.
x();
71 mapToEigen(result).diagonal() = mapToEigen(scales);
77 template <
int M1,
int N1,
int M2,
int N2>
78 static JacobianMatrix < M1 + M2, N1 + N2 >
stackBlocks(
const JacobianMatrix<M1, N1>& block1,
79 const JacobianMatrix<M2, N2>& block2)
81 JacobianMatrix < M1 + M2, N1 + N2 > result;
82 mapToEigen(result) << mapToEigen(block1), Eigen::Matrix<double, M1, N2>::Zero(),
83 Eigen::Matrix<double, M2, N1>::Zero(), mapToEigen(block2);
static JacobianMatrix< N > scale(const ParameterVector< N > &scales)
Calculates the jacobian matrix for a scaling in each parameter.
A two dimensional vector which is equipped with functions for correct handeling of orientation relat...
static PlainMatrix< T, M, N > Zero()
Construct a matrix initialized with zeros.
double y() const
Getter for the y coordinate.
static JacobianMatrix< M, N > zero()
Construct a zero matrix.
static JacobianMatrix< N, N > passiveRotation(int i, int j, double phi)
Construct a passive rotation matrix around coordinates i and j.
static Vector2D Phi(const double phi)
Constucts a unit vector with azimuth angle equal to phi.
static JacobianMatrix< M1+M2, N1+N2 > stackBlocks(const JacobianMatrix< M1, N1 > &block1, const JacobianMatrix< M2, N2 > &block2)
Combines two jacobian matrices by putting them in two blocks diagonal to each other in a larger matri...
Abstract base class for different kinds of events.
double x() const
Getter for the x coordinate.
A matrix implementation to be used as an interface typ through out the track finder.
static PlainMatrix< T, M, N > Identity()
Construct an identity matrix.
static JacobianMatrix< M, N > identity()
Construct a unit matrix.