18#ifndef ROOT_MathX_GenVectorX_PxPyPzM4D
19#define ROOT_MathX_GenVectorX_PxPyPzM4D 1
53template <
class ScalarType =
double>
80 template <
class CoordSystem>
89 template <
class AnyCoordSystem>
195 return e2 > 0 ?
e2 : 0;
225#if !defined(ROOT_MATH_SYCL) && !defined(ROOT_MATH_CUDA)
227 " Pz^2 > E^2 so the transverse mass would be imaginary");
308#if !defined(ROOT_MATH_SYCL) && !defined(ROOT_MATH_CUDA)
309 GenVector_Throw(
"PxPyPzM4D::Negate - cannot negate the energy - can negate only the spatial components");
339#if defined(__MAKECINT__) || defined(G__DICTIONARY)
361#if !defined(ROOT_MATH_SYCL) && !defined(ROOT_MATH_CUDA)
362 GenVector_Throw(
"PxPyPzM4D::unphysical value of mass, set to closest physical value");
391template <
class ScalarType>
397#if defined(__MAKECINT__) || defined(G__DICTIONARY)
398#if !defined(ROOT_MATH_SYCL) && !defined(ROOT_MATH_CUDA)
404template <
class ScalarType>
413template <
class ScalarType>
422template <
class ScalarType>
431template <
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 coordinate system or momentum-energy vectors stored as (Px, Py,...
Scalar E2() const
energy squared
Scalar Eta() const
pseudorapidity
Scalar Pt2() const
transverse spatial component squared
void SetM(Scalar m)
set T value
bool operator!=(const PxPyPzM4D &rhs) const
Scalar Theta() const
polar angle
void SetCoordinates(const Scalar src[])
Set internal data based on an array of 4 Scalar numbers.
Scalar Et2() const
transverse energy squared
void GetCoordinates(Scalar &px, Scalar &py, Scalar &pz, Scalar &m) const
get internal data into 4 Scalar numbers
void Negate()
negate the 4-vector - Note that the energy cannot be negate (would need an additional data member) th...
ScalarType fX
(contiguous) data containing the coordinate values x,y,z,t
void SetPz(Scalar pz)
set Z value
void SetCoordinates(Scalar px, Scalar py, Scalar pz, Scalar m)
Set internal data based on 4 Scalar numbers.
Scalar Mt() const
transverse mass
Scalar Phi() const
azimuthal angle
Scalar Et() const
transverse energy
bool operator==(const PxPyPzM4D &rhs) const
Exact equality.
void SetPx(Scalar px)
set X value
PxPyPzM4D & operator=(const AnyCoordSystem &v)
construct from any 4D coordinate system class implementing X(), Y(), X() and M()
void GetCoordinates(Scalar dest[]) const
get internal data into an array of 4 Scalar numbers
PxPyPzM4D(const CoordSystem &v)
construct from any 4D coordinate system class implementing X(), Y(), X() and M()
Scalar Mt2() const
transverse mass squared
Scalar Pt() const
Transverse spatial component (P_perp or rho)
void Scale(const Scalar &a)
scale coordinate values by a scalar quantity a
Scalar P() const
magnitude of spatial components (magnitude of 3-momentum)
void SetPxPyPzE(Scalar px, Scalar py, Scalar pz, Scalar e)
set all values
void SetPy(Scalar py)
set Y value
Scalar P2() const
squared magnitude of spatial components
Scalar M2() const
vector magnitude squared (or mass squared) In case of negative mass (spacelike particles return negat...
constexpr PxPyPzM4D() noexcept=default
Default constructor with x=y=z=m=0.
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)