LorentzMatrix.hh
Go to the documentation of this file.
27 using OnlyIfNotOrSameQuantity = typename std::enable_if < !IsQuantity<Value_2>::value || std::is_same<Value_, Value_2>::value >::type;
46 LorentzMatrix(Matrix3<Value_> const &matrix, Vector3<Value_> const &vector, Value_ scalar, Matrix symmetry = Matrix::none)
49 if (symmetry != Matrix::symmetric || symmetry != Matrix::antisymmetric) std::cout << "matrix symmetry not well defiend" << '\n';
76 LorentzMatrix(LorentzVectorBase<Value_> const &x, LorentzVectorBase<Value_> const &y, LorentzVectorBase<Value_> const &z, LorentzVectorBase<Value_> const &t, Matrix matrix = Matrix::row)
138 void SetRows(LorentzVectorBase<Value_> const &x, LorentzVectorBase<Value_> const &y, LorentzVectorBase<Value_> const &z, LorentzVectorBase<Value_> const &t)
149 void SetColumns(LorentzVectorBase<Value_> const &x, LorentzVectorBase<Value_> const &y, LorentzVectorBase<Value_> const &z, LorentzVectorBase<Value_> const &t)
376 return {{x_ * matrix.ColumnX(), x_ * matrix.ColumnY(), x_ * matrix.ColumnZ(), x_ * matrix.ColumnT()},
519 return const_cast<LorentzVectorBase<Value_> &>(static_cast<LorentzMatrix<Value_> const &>(*this)[lorentz_dim]);
550 auto matrix = Matrix3<double>(bgamma, Matrix::uniform) + Multiply(boost, boost) + Matrix3<double>(1);
bool operator==(LorentzMatrix const &matrix) const
Equallity comparison.
Definition: LorentzMatrix.hh:464
LorentzMatrix(Matrix3< Value_ > const &matrix)
Constructor accepting one three dimensional matrix.
Definition: LorentzMatrix.hh:58
auto operator*(const LorentzVectorBase< Value_2_ > &vector) const
Multiply with a vector.
Definition: LorentzMatrix.hh:473
LorentzMatrix(LorentzVectorBase< Value_ > const &x, LorentzVectorBase< Value_ > const &y, LorentzVectorBase< Value_ > const &z, LorentzVectorBase< Value_ > const &t, Matrix matrix=Matrix::row)
Constructor accepting three Lorentz vectors.
Definition: LorentzMatrix.hh:76
auto & Rotate(Angle angle, const Vector3< Value_ > &axis)
Rotation around specified vector.
Definition: LorentzMatrix.hh:441
int Sign(LorentzDim i, LorentzDim j) const
Sign of a given element .
Definition: LorentzMatrix.hh:282
Enables the use of strongly typed enumerators as iterators.
Definition: EnumIterator.hh:17
typename boost::units::multiply_typeof_helper< ValueSquare< Value >, Value >::type ValueCubed
Definition: Units.hh:149
Boost provides free peer-reviewed portable C++ source libraries.
Definition: LorentzVectorBase.hh:726
auto operator*(const LorentzMatrix< Value_2_ > &matrix) const
Multiply with a matrix.
Definition: LorentzMatrix.hh:482
boost::units::quantity< boost::units::si::plane_angle > Angle
Angle measured in radian.
Definition: Si.hh:35
Value4 ReducedLaplace(LorentzDim dim_1, LorentzDim dim_2, Dim3 dim_3, Dim3 dim_4)
Reduced Laplace .
Definition: LorentzMatrix.hh:274
LorentzMatrix()
Default constructor.
Definition: LorentzMatrix.hh:41
Value4 Laplace(LorentzDim dim_1, LorentzDim dim_2) const
Laplace .
Definition: LorentzMatrix.hh:242
LorentzVectorBase< Value_ > & operator[](LorentzDim lorentz_dim)
Row by index.
Definition: LorentzMatrix.hh:517
void SetRows(LorentzVectorBase< Value_ > const &x, LorentzVectorBase< Value_ > const &y, LorentzVectorBase< Value_ > const &z, LorentzVectorBase< Value_ > const &t)
Set the rows.
Definition: LorentzMatrix.hh:138
auto & Boost(const Vector3< Value_ > &boost)
Boost.
Definition: LorentzMatrix.hh:423
constexpr ValueSquare Mag2() const
The magnitude squared .
Definition: Vector3.hh:385
typename boost::units::multiply_typeof_helper< ValueSquare< Value >, ValueSquare< Value >>::type Value4
Definition: Units.hh:152
slighly more complicated estimator for significance
LorentzMatrix Multiply(const LorentzMatrix< Value_2_ > &matrix) const
Multiply with a matrix.
Definition: LorentzMatrix.hh:374
auto & operator*=(const LorentzMatrix< Value_2_ > &matrix)
Multiply with a matrix.
Definition: LorentzMatrix.hh:490
auto Multiply(const LorentzVectorBase< Value_2_ > &vector) const
Multiply with a vector.
Definition: LorentzMatrix.hh:365
Value4 ReducedDeterminant(LorentzDim dim_1, LorentzDim dim_2) const
Reduced determinant .
Definition: LorentzMatrix.hh:266
ValueCubed Minor(LorentzDim delete_1, LorentzDim delete_2) const
Minor .
Definition: LorentzMatrix.hh:258
LorentzMatrix(Vector3< double > const &vector)
Constructor accepting one three dimensional vector as a Lorenz-boost.
Definition: LorentzMatrix.hh:68
LorentzVectorBase< Value_ > ColumnX() const
x column
Definition: LorentzMatrix.hh:325
auto & Rotate(Angle angle, Dim3 dim)
Rotate.
Definition: LorentzMatrix.hh:432
LorentzVectorBase< Value_ > const & operator[](LorentzDim lorentz_dim) const
Row by index.
Definition: LorentzMatrix.hh:498
LorentzMatrix(Matrix3< Value_ > const &matrix, Vector3< Value_ > const &vector, Value_ scalar, Matrix symmetry=Matrix::none)
Constructor accepting one three dimensional matrix, vector and scalar.
Definition: LorentzMatrix.hh:46
void SetMatrix(Matrix3< Value_ > const &matrix)
Set the three dimension matrix.
Definition: LorentzMatrix.hh:100
LorentzVectorBase< Value_ > ColumnY() const
y column
Definition: LorentzMatrix.hh:333
typename boost::units::multiply_typeof_helper< Value, Value >::type ValueSquare
Definition: Units.hh:143
Value_ & T()
Getter for the spatial components.
Definition: LorentzVectorBase.hh:196
LorentzVectorBase< Value_ > const & Z() const
z-row
Definition: LorentzMatrix.hh:196
LorentzVectorBase< Value_ > const & Y() const
y-row
Definition: LorentzMatrix.hh:181
LorentzVectorBase< Value_ > ColumnT() const
t column
Definition: LorentzMatrix.hh:349
ValueCubed Cofactor(LorentzDim dim_1, LorentzDim dim_2) const
Cofactor .
Definition: LorentzMatrix.hh:250
LorentzVectorBase< Value_ > const & X() const
x-row
Definition: LorentzMatrix.hh:166
Matrix3< Value_ > SubMatrix(LorentzDim delete_1, LorentzDim delete_2) const
Sub matrix .
Definition: LorentzMatrix.hh:297
LorentzMatrix & Transform(const LorentzMatrix< Value_2_ > &matrix)
Transform this matrix.
Definition: LorentzMatrix.hh:387
LorentzVectorBase< Value_ > ColumnZ() const
z column
Definition: LorentzMatrix.hh:341
void SetVector(Vector3< Value_ > const &vector, Matrix symmetry)
Set the three dimensional vectors.
Definition: LorentzMatrix.hh:110
void SetScalar(Value_ scalar)
Set the three dimensional scalar.
Definition: LorentzMatrix.hh:130
Value4 Determinant() const
Determinant .
Definition: LorentzMatrix.hh:232
bool operator<(LorentzMatrix const &matrix) const
Less than comparison.
Definition: LorentzMatrix.hh:456
auto & Transform(const Matrix3< Value_2_ > &matrix)
Transform this matrix with a three dimensional matrix.
Definition: LorentzMatrix.hh:398
void SetColumns(LorentzVectorBase< Value_ > const &x, LorentzVectorBase< Value_ > const &y, LorentzVectorBase< Value_ > const &z, LorentzVectorBase< Value_ > const &t)
Set the columns.
Definition: LorentzMatrix.hh:149
std::vector< LorentzDim > LorentzDimensions()
Definition: LorentzVectorBase.cpp:17