18 #ifndef ROOT_Math_GenVector_PxPyPzE4D 19 #define ROOT_Math_GenVector_PxPyPzE4D 1 41 template <
class ScalarType =
double>
67 template <
class CoordSystem>
94 {
fX=src[0];
fY=src[1];
fZ=src[2];
fT=src[3]; }
157 " P^2 > E^2 so the mass would be imaginary");
190 " Pz^2 > E^2 so the transverse mass would be imaginary");
201 return pt2 == 0 ? 0 :
fT*
fT * pt2/( pt2 +
fZ*
fZ );
290 template <
class AnyCoordSystem>
319 #if defined(__MAKECINT__) || defined(G__DICTIONARY) 351 #if defined(__MAKECINT__) || defined(G__DICTIONARY) 365 template <
class ScalarType>
366 void PxPyPzE4D<ScalarType>::SetPt(
Scalar pt) {
367 GenVector_exception
e(
"PxPyPzE4D::SetPt() is not supposed to be called");
369 PtEtaPhiE4D<Scalar>
v(*
this);
v.SetPt(
pt); *
this = PxPyPzE4D<Scalar>(
v);
371 template <
class ScalarType>
372 void PxPyPzE4D<ScalarType>::SetEta(
Scalar eta) {
373 GenVector_exception
e(
"PxPyPzE4D::SetEta() is not supposed to be called");
375 PtEtaPhiE4D<Scalar>
v(*
this);
v.SetEta(eta); *
this = PxPyPzE4D<Scalar>(
v);
377 template <
class ScalarType>
378 void PxPyPzE4D<ScalarType>::SetPhi(
Scalar phi) {
379 GenVector_exception
e(
"PxPyPzE4D::SetPhi() is not supposed to be called");
381 PtEtaPhiE4D<Scalar>
v(*
this);
v.SetPhi(phi); *
this = PxPyPzE4D<Scalar>(
v);
384 template <
class ScalarType>
385 void PxPyPzE4D<ScalarType>::SetM(
Scalar m) {
386 GenVector_exception
e(
"PxPyPzE4D::SetM() is not supposed to be called");
388 PtEtaPhiM4D<Scalar>
v(*
this);
v.SetM(
m);
389 *
this = PxPyPzE4D<Scalar>(
v);
397 #endif // endif __MAKE__CINT || G__DICTIONARY 400 #endif // ROOT_Math_GenVector_PxPyPzE4D
Scalar Mt() const
transverse mass
PxPyPzE4D()
Default constructor with x=y=z=t=0.
Namespace for new ROOT classes and functions.
Scalar Pt() const
Transverse spatial component (P_perp or rho)
void SetCoordinates(const Scalar src[])
Set internal data based on an array of 4 Scalar numbers.
Scalar P2() const
squared magnitude of spatial components
Scalar Pt2() const
transverse spatial component squared
Scalar P() const
magnitude of spatial components (magnitude of 3-momentum)
ScalarType fX
(contigous) data containing the coordinate values x,y,z,t
Scalar Theta() const
polar angle
void GetCoordinates(Scalar dest[]) const
get internal data into an array of 4 Scalar numbers
static constexpr double mm
PxPyPzE4D(const PxPyPzE4D &v)
copy constructor
Scalar Eta() const
pseudorapidity
VecExpr< UnaryOp< Sqrt< T >, VecExpr< A, T, D >, T >, T, D > sqrt(const VecExpr< A, T, D > &rhs)
void SetPx(Scalar px)
set X value
Class describing a 4D cartesian coordinate system (x, y, z, t coordinates) or momentum-energy vectors...
void SetPxPyPzE(Scalar px, Scalar py, Scalar pz, Scalar e)
set all values using cartesian coordinates
void GetCoordinates(Scalar &px, Scalar &py, Scalar &pz, Scalar &e) const
get internal data into 4 Scalar numbers
bool operator==(const PxPyPzE4D &rhs) const
Exact equality.
PxPyPzE4D & operator=(const PxPyPzE4D &v)
assignment operator
PxPyPzE4D(const CoordSystem &v)
construct from any vector or coordinate system class implementing x(), y() and z() and t() ...
void Throw(const char *)
function throwing exception, by creating internally a GenVector_exception only when needed ...
void Scale(const Scalar &a)
scale coordinate values by a scalar quantity a
void SetPz(Scalar pz)
set Z value
void SetPy(Scalar py)
set Y value
Scalar Et() const
transverse energy
Scalar Et2() const
transverse energy squared
Scalar M() const
invariant mass
Scalar Eta_FromRhoZ(Scalar rho, Scalar z)
Calculate eta given rho and zeta.
PxPyPzE4D(Scalar px, Scalar py, Scalar pz, Scalar e)
Constructor from x, y , z , t values.
double atan2(double, double)
void Negate()
negate the 4-vector
you should not use this method at all Int_t Int_t Double_t Double_t Double_t e
Namespace for new Math classes and functions.
Scalar Mt2() const
transverse mass squared
#define dest(otri, vertexptr)
bool operator!=(const PxPyPzE4D &rhs) const
Scalar Phi() const
azimuthal angle
Rotation3D::Scalar Scalar
void SetCoordinates(Scalar px, Scalar py, Scalar pz, Scalar e)
Set internal data based on 4 Scalar numbers.
Scalar M2() const
vector magnitude squared (or mass squared)
void SetE(Scalar e)
set T value