18#ifndef ROOT_MathX_GenVectorX_PxPyPzE4D
19#define ROOT_MathX_GenVectorX_PxPyPzE4D 1
48template <
class ScalarType =
double>
70 template <
class CoordSystem>
161#if !defined(ROOT_MATH_SYCL) && !defined(ROOT_MATH_CUDA)
163 " P^2 > E^2 so the mass would be imaginary");
197#if !defined(ROOT_MATH_SYCL) && !defined(ROOT_MATH_CUDA)
199 " Pz^2 > E^2 so the transverse mass would be imaginary");
297 template <
class AnyCoordSystem>
322#if defined(__MAKECINT__) || defined(G__DICTIONARY)
350#if defined(__MAKECINT__) || defined(G__DICTIONARY)
351#if !defined(ROOT_MATH_SYCL) && !defined(ROOT_MATH_CUDA)
364template <
class ScalarType>
373template <
class ScalarType>
382template <
class ScalarType>
392template <
class ScalarType>
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t dest
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t src
Class describing a 4D cartesian coordinate system (x, y, z, t coordinates) or momentum-energy vectors...
ScalarType fX
(contiguous) data containing the coordinate values x,y,z,t
constexpr PxPyPzE4D() noexcept=default
Default constructor with x=y=z=t=0.
Scalar M() const
invariant mass
Scalar Pt() const
Transverse spatial component (P_perp or rho)
bool operator==(const PxPyPzE4D &rhs) const
Exact equality.
PxPyPzE4D & operator=(const AnyCoordSystem &v)
Assignment from a generic coordinate system implementing x(), y(), z() and t()
Scalar Et() const
transverse energy
void SetCoordinates(Scalar px, Scalar py, Scalar pz, Scalar e)
Set internal data based on 4 Scalar numbers.
void SetPx(Scalar px)
set X value
PxPyPzE4D(const CoordSystem &v)
construct from any vector or coordinate system class implementing x(), y() and z() and t()
void SetCoordinates(const Scalar src[])
Set internal data based on an array of 4 Scalar numbers.
Scalar Mt2() const
transverse mass squared
void SetPy(Scalar py)
set Y value
Scalar Theta() const
polar angle
Scalar Pt2() const
transverse spatial component squared
bool operator!=(const PxPyPzE4D &rhs) const
Scalar Mt() const
transverse mass
Scalar Phi() const
azimuthal angle
Scalar Eta() const
pseudorapidity
void GetCoordinates(Scalar dest[]) const
get internal data into an array of 4 Scalar numbers
Scalar Et2() const
transverse energy squared
void GetCoordinates(Scalar &px, Scalar &py, Scalar &pz, Scalar &e) const
get internal data into 4 Scalar numbers
Scalar M2() const
vector magnitude squared (or mass squared)
void SetPxPyPzE(Scalar px, Scalar py, Scalar pz, Scalar e)
set all values using cartesian coordinates
Scalar P() const
magnitude of spatial components (magnitude of 3-momentum)
void SetE(Scalar e)
set T value
void SetPz(Scalar pz)
set Z value
void Scale(const Scalar &a)
scale coordinate values by a scalar quantity a
Scalar P2() const
squared magnitude of spatial components
void Negate()
negate the 4-vector
Scalar Eta_FromRhoZ(Scalar rho, Scalar z)
Calculate eta given rho and zeta.
void GenVector_Throw(const char *)
function throwing exception, by creating internally a GenVector_exception only when needed
Scalar math_sqrt(Scalar x)
Scalar math_atan2(Scalar x, Scalar y)