class Rivet::ThreeMomentum
Rivet::ThreeMomentum
Specialized version of the ThreeVector with momentum functionality.
#include <Vector3.hh>
Inherits from Rivet::Vector3, Rivet::Vector< 3 >
Public Types
Name | |
---|---|
using Eigen::Matrix< double, N, 1 > | EVector Vector. |
Public Functions
Name | |
---|---|
ThreeMomentum & | setPx(double px) Set x-component of momentum ( p_x ). |
ThreeMomentum & | setPy(double py) Set y-component of momentum ( p_y ). |
ThreeMomentum & | setPz(double pz) Set z-component of momentum ( p_z ). |
double | px() const Get x-component of momentum ( p_x ). |
double | px2() const Get x-squared ( p_x^2 ). |
double | py() const Get y-component of momentum ( p_y ). |
double | py2() const Get y-squared ( p_y^2 ). |
double | pz() const Get z-component of momentum ( p_z ). |
double | pz2() const Get z-squared ( p_z^2 ). |
double | p() const Get the modulus of the 3-momentum. |
double | p2() const Get the modulus-squared of the 3-momentum. |
ThreeMomentum | pTvec() const Calculate the transverse momentum vector ( \vec{p}_T ). |
ThreeMomentum | ptvec() const Synonym for pTvec. |
double | pT2() const Calculate the squared transverse momentum ( p_T^2 ). |
double | pt2() const Calculate the squared transverse momentum ( p_T^2 ). |
double | pT() const Calculate the transverse momentum ( p_T ). |
double | pt() const Calculate the transverse momentum ( p_T ). |
ThreeMomentum & | operator*=(double a) Multiply by a scalar. |
ThreeMomentum & | operator/=(double a) Divide by a scalar. |
ThreeMomentum & | operator+=(const ThreeMomentum & v) Add two 3-momenta. |
ThreeMomentum & | operator-=(const ThreeMomentum & v) Subtract two 3-momenta. |
ThreeMomentum | operator-() const Multiply all components by -1. |
ThreeMomentum() | |
template <typename V3TYPE ,typename std::enable_if< HasXYZ< V3TYPE >::value, int >::type DUMMY =0> | ThreeMomentum(const V3TYPE & other) |
ThreeMomentum(const Vector< 3 > & other) | |
ThreeMomentum(const double px, const double py, const double pz) | |
~ThreeMomentum() | |
double | x() const |
double | x2() const |
Vector3 & | setX(double x) |
double | y() const |
double | y2() const |
Vector3 & | setY(double y) |
double | z() const |
double | z2() const |
Vector3 & | setZ(double z) |
double | dot(const Vector3 & v) const Dot-product with another vector. |
Vector3 | cross(const Vector3 & v) const Cross-product with another vector. |
double | angle(const Vector3 & v) const Angle in radians to another vector. |
Vector3 | unitVec() const Unit-normalized version of this vector. |
Vector3 | unit() const Synonym for unitVec. |
Vector3 | polarVec() const Polar projection of this vector into the x-y plane. |
Vector3 | perpVec() const Synonym for polarVec. |
Vector3 | rhoVec() const Synonym for polarVec. |
double | polarRadius2() const Square of the polar radius (. |
double | perp2() const Synonym for polarRadius2. |
double | rho2() const Synonym for polarRadius2. |
double | polarRadius() const Polar radius. |
double | perp() const Synonym for polarRadius. |
double | rho() const Synonym for polarRadius. |
double | azimuthalAngle(const PhiMapping mapping =ZERO_2PI) const Angle subtended by the vector’s projection in x-y and the x-axis. |
double | phi(const PhiMapping mapping =ZERO_2PI) const Synonym for azimuthalAngle. |
double | tanTheta() const Tangent of the polar angle. |
double | polarAngle() const Angle subtended by the vector and the z-axis. |
double | theta() const Synonym for polarAngle. |
double | pseudorapidity() const Purely geometric approximation to rapidity. |
double | eta() const Synonym for pseudorapidity. |
double | abseta() const Convenience shortcut for fabs(eta()) |
Vector3 & | operator+=(const Vector3 & v) In-place addition operator. |
Vector3 & | operator-=(const Vector3 & v) In-place subtraction operator. |
const double & | get(const size_t index) const |
double & | get(const size_t index) |
const double & | operator[](const size_t index) const Direct access to vector elements by index. |
double & | operator[](const size_t index) Direct access to vector elements by index. |
Vector< N > & | set(const size_t index, const double value) Set indexed value. |
constexpr size_t | size() const Vector dimensionality. |
bool | isZero(double tolerance =1E-5) const Check for nullness, allowing for numerical precision. |
double | mod2() const Calculate the modulus-squared of a vector. ( \sum_{i=1}^N x_i^2 ). |
double | mod() const Calculate the modulus of a vector. ( \sqrt{\sum_{i=1}^N x_i^2} ). |
bool | operator==(const Vector< N > & a) const |
bool | operator!=(const Vector< N > & a) const |
Vector3 | mkX() |
Vector3 | mkY() |
Vector3 | mkZ() |
Additional inherited members
Public Functions inherited from Rivet::Vector3
Name | |
---|---|
Vector3() | |
template <typename V3TYPE > | Vector3(const V3TYPE & other) |
Vector3(const Vector< 3 > & other) | |
Vector3(double x, double y, double z) | |
~Vector3() |
Friends inherited from Rivet::Vector3
Name | |
---|---|
class | Matrix3 |
Vector3 | multiply(const double a, const Vector3 & v) Unbound scalar-product function. |
Vector3 | multiply(const Vector3 & v, const double a) Unbound scalar-product function. |
Vector3 | add(const Vector3 & a, const Vector3 & b) Unbound vector addition function. |
Vector3 | subtract(const Vector3 & a, const Vector3 & b) Unbound vector subtraction function. |
Public Functions inherited from Rivet::Vector< 3 >
Name | |
---|---|
Vector() | |
Vector(const Vector< N > & other) |
Friends inherited from Rivet::Vector< 3 >
Name | |
---|---|
Vector< M > | multiply(const Matrix< M > & a, const Vector< M > & b) |
Public Types Documentation
using EVector
using Rivet::Vector< N >::EVector = Eigen::Matrix<double,N,1>;
Vector.
Public Functions Documentation
function setPx
inline ThreeMomentum & setPx(
double px
)
Set x-component of momentum ( p_x ).
function setPy
inline ThreeMomentum & setPy(
double py
)
Set y-component of momentum ( p_y ).
function setPz
inline ThreeMomentum & setPz(
double pz
)
Set z-component of momentum ( p_z ).
function px
inline double px() const
Get x-component of momentum ( p_x ).
function px2
inline double px2() const
Get x-squared ( p_x^2 ).
function py
inline double py() const
Get y-component of momentum ( p_y ).
function py2
inline double py2() const
Get y-squared ( p_y^2 ).
function pz
inline double pz() const
Get z-component of momentum ( p_z ).
function pz2
inline double pz2() const
Get z-squared ( p_z^2 ).
function p
inline double p() const
Get the modulus of the 3-momentum.
function p2
inline double p2() const
Get the modulus-squared of the 3-momentum.
function pTvec
inline ThreeMomentum pTvec() const
Calculate the transverse momentum vector ( \vec{p}_T ).
function ptvec
inline ThreeMomentum ptvec() const
Synonym for pTvec.
function pT2
inline double pT2() const
Calculate the squared transverse momentum ( p_T^2 ).
function pt2
inline double pt2() const
Calculate the squared transverse momentum ( p_T^2 ).
function pT
inline double pT() const
Calculate the transverse momentum ( p_T ).
function pt
inline double pt() const
Calculate the transverse momentum ( p_T ).
function operator*=
inline ThreeMomentum & operator*=(
double a
)
Multiply by a scalar.
function operator/=
inline ThreeMomentum & operator/=(
double a
)
Divide by a scalar.
function operator+=
inline ThreeMomentum & operator+=(
const ThreeMomentum & v
)
Add two 3-momenta.
function operator-=
inline ThreeMomentum & operator-=(
const ThreeMomentum & v
)
Subtract two 3-momenta.
function operator-
inline ThreeMomentum operator-() const
Multiply all components by -1.
function ThreeMomentum
inline ThreeMomentum()
function ThreeMomentum
template <typename V3TYPE ,
typename std::enable_if< HasXYZ< V3TYPE >::value, int >::type DUMMY =0>
inline ThreeMomentum(
const V3TYPE & other
)
function ThreeMomentum
inline ThreeMomentum(
const Vector< 3 > & other
)
function ThreeMomentum
inline ThreeMomentum(
const double px,
const double py,
const double pz
)
function ~ThreeMomentum
inline ~ThreeMomentum()
function x
inline double x() const
function x2
inline double x2() const
function setX
inline Vector3 & setX(
double x
)
function y
inline double y() const
function y2
inline double y2() const
function setY
inline Vector3 & setY(
double y
)
function z
inline double z() const
function z2
inline double z2() const
function setZ
inline Vector3 & setZ(
double z
)
function dot
inline double dot(
const Vector3 & v
) const
Dot-product with another vector.
function cross
inline Vector3 cross(
const Vector3 & v
) const
Cross-product with another vector.
function angle
inline double angle(
const Vector3 & v
) const
Angle in radians to another vector.
function unitVec
inline Vector3 unitVec() const
Unit-normalized version of this vector.
function unit
inline Vector3 unit() const
Synonym for unitVec.
function polarVec
inline Vector3 polarVec() const
Polar projection of this vector into the x-y plane.
function perpVec
inline Vector3 perpVec() const
Synonym for polarVec.
function rhoVec
inline Vector3 rhoVec() const
Synonym for polarVec.
function polarRadius2
inline double polarRadius2() const
Square of the polar radius (.
function perp2
inline double perp2() const
Synonym for polarRadius2.
function rho2
inline double rho2() const
Synonym for polarRadius2.
function polarRadius
inline double polarRadius() const
Polar radius.
function perp
inline double perp() const
Synonym for polarRadius.
function rho
inline double rho() const
Synonym for polarRadius.
function azimuthalAngle
inline double azimuthalAngle(
const PhiMapping mapping =ZERO_2PI
) const
Angle subtended by the vector’s projection in x-y and the x-axis.
Note: Returns zero in the case of a vector with null x and y components.
Todo: Would it be better to return NaN in the null-perp case? Or throw?!
function phi
inline double phi(
const PhiMapping mapping =ZERO_2PI
) const
Synonym for azimuthalAngle.
function tanTheta
inline double tanTheta() const
Tangent of the polar angle.
function polarAngle
inline double polarAngle() const
Angle subtended by the vector and the z-axis.
function theta
inline double theta() const
Synonym for polarAngle.
function pseudorapidity
inline double pseudorapidity() const
Purely geometric approximation to rapidity.
eta = -ln[ tan(theta/2) ]
Also invariant under z-boosts, equal to y for massless particles.
Implemented using the tan half-angle formula tan(theta/2) = sin(theta) / [1 + cos(theta)] = pT / (p + pz)
function eta
inline double eta() const
Synonym for pseudorapidity.
function abseta
inline double abseta() const
Convenience shortcut for fabs(eta())
function operator+=
inline Vector3 & operator+=(
const Vector3 & v
)
In-place addition operator.
function operator-=
inline Vector3 & operator-=(
const Vector3 & v
)
In-place subtraction operator.
function get
inline const double & get(
const size_t index
) const
function get
inline double & get(
const size_t index
)
function operator[]
inline const double & operator[](
const size_t index
) const
Direct access to vector elements by index.
function operator[]
inline double & operator[](
const size_t index
)
Direct access to vector elements by index.
function set
inline Vector< N > & set(
const size_t index,
const double value
)
Set indexed value.
function size
inline constexpr size_t size() const
Vector dimensionality.
function isZero
inline bool isZero(
double tolerance =1E-5
) const
Check for nullness, allowing for numerical precision.
function mod2
inline double mod2() const
Calculate the modulus-squared of a vector. ( \sum_{i=1}^N x_i^2 ).
function mod
inline double mod() const
Calculate the modulus of a vector. ( \sqrt{\sum_{i=1}^N x_i^2} ).
function operator==
inline bool operator==(
const Vector< N > & a
) const
function operator!=
inline bool operator!=(
const Vector< N > & a
) const
function mkX
static inline Vector3 mkX()
function mkY
static inline Vector3 mkY()
function mkZ
static inline Vector3 mkZ()
Updated on 2022-08-07 at 20:17:17 +0100