19#ifndef ROOT_Math_GenVector_PtEtaPhiE4D
20#define ROOT_Math_GenVector_PtEtaPhiE4D 1
53template <
class ScalarType>
78 template <
class CoordSystem >
159 :
fEta > etaMax<Scalar>() ?
fEta - etaMax<Scalar>()
160 :
fEta < -etaMax<Scalar>() ? -
fEta - etaMax<Scalar>() : 0;
193 " Pt and Eta give P such that P^2 > E^2, so the mass would be imaginary");
221 " Pt and Eta give Pz such that Pz^2 > E^2, so the mass would be imaginary");
320 template <
class CoordSystem >
349#if defined(__MAKECINT__) || defined(G__DICTIONARY)
381#if defined(__MAKECINT__) || defined(G__DICTIONARY)
389template <
class ScalarType>
395#if defined(__MAKECINT__) || defined(G__DICTIONARY)
399template <
class ScalarType>
405template <
class ScalarType>
406inline void PtEtaPhiE4D<ScalarType>::SetPy(
Scalar py) {
407 GenVector_exception
e(
"PtEtaPhiE4D::SetPx() is not supposed to be called");
409 PxPyPzE4D<Scalar>
v(*
this);
v.SetPy(py); *
this = PtEtaPhiE4D<Scalar>(
v);
411template <
class ScalarType>
412inline void PtEtaPhiE4D<ScalarType>::SetPz(
Scalar pz) {
413 GenVector_exception
e(
"PtEtaPhiE4D::SetPx() is not supposed to be called");
415 PxPyPzE4D<Scalar>
v(*
this);
v.SetPz(pz); *
this = PtEtaPhiE4D<Scalar>(
v);
417template <
class ScalarType>
418inline void PtEtaPhiE4D<ScalarType>::SetM(
Scalar m) {
419 GenVector_exception
e(
"PtEtaPhiE4D::SetM() is not supposed to be called");
421 PtEtaPhiM4D<Scalar>
v(*
this);
v.SetM(
m);
422 *
this = PtEtaPhiE4D<Scalar>(
v);
winID h TVirtualViewer3D TVirtualGLPainter p
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 cylindrical coordinate system using Pt , Phi, Eta and E (or rho,...
Scalar P2() const
squared magnitude of spatial components (momentum squared)
Scalar Et2() const
transverse energy squared
void SetPxPyPzE(Scalar px, Scalar py, Scalar pz, Scalar e)
set values using cartesian coordinate system
Scalar P() const
magnitude of momentum
void SetEta(Scalar eta)
set eta value
Scalar Theta() const
polar angle
bool operator!=(const PtEtaPhiE4D &rhs) const
PtEtaPhiE4D(const PtEtaPhiE4D &v)
copy constructor
Scalar Et() const
transverse energy
PtEtaPhiE4D()
Default constructor gives zero 4-vector.
PtEtaPhiE4D & operator=(const PtEtaPhiE4D &v)
assignment operator
void SetE(Scalar e)
set E value
constexpr PtEtaPhiE4D(const CoordSystem &c)
Generic constructor from any 4D coordinate system implementing Pt(), Eta(), Phi() and E()
bool operator==(const PtEtaPhiE4D &rhs) const
Exact equality.
void SetCoordinates(const Scalar src[])
Set internal data based on an array of 4 Scalar numbers.
Scalar M2() const
vector magnitude squared (or mass squared)
void Negate()
negate the 4-vector
Scalar Mt() const
transverse mass
Scalar M() const
invariant mass
PtEtaPhiE4D(Scalar pt, Scalar eta, Scalar phi, Scalar e)
Constructor from pt, eta, phi, e values.
void GetCoordinates(Scalar dest[]) const
get internal data into an array of 4 Scalar numbers
Scalar Pt2() const
transverse spatial component squared
void SetCoordinates(Scalar pt, Scalar eta, Scalar phi, Scalar e)
Set internal data based on 4 Scalar numbers.
void Scale(Scalar a)
Scale coordinate values by a scalar quantity a.
void SetPt(Scalar pt)
set Pt value
Scalar Mt2() const
transverse mass squared
void GetCoordinates(Scalar &pt, Scalar &eta, Scalar &phi, Scalar &e) const
get internal data into 4 Scalar numbers
static constexpr unsigned int Dimension
void SetPhi(Scalar phi)
set phi value
Class describing a 4D cartesian coordinate system (x, y, z, t coordinates) or momentum-energy vectors...
Namespace for new Math classes and functions.
void Throw(const char *)
function throwing exception, by creating internally a GenVector_exception only when needed
VecExpr< UnaryOp< Sqrt< T >, VecExpr< A, T, D >, T >, T, D > sqrt(const VecExpr< A, T, D > &rhs)
Rotation3D::Scalar Scalar
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...