class ROOT::Math::PxPyPzM4D<Double32_t>


    Class describing a 4D coordinate system
    or momentum-energy vectors stored as (Px, Py, Pz, M).
    This system is useful to describe ultra-relativistic particles
    (like electrons at LHC) to avoid numerical errors evaluating the mass
    when E >>> m
    The metric used is (-,-,-,+)
    Spacelike particles (M2 < 0) are described with negative mass values,
    but in this case m2 must alwasy be less than P2 to preserve a positive value of E2

    @ingroup GenVector

This class is also known as (typedefs to this class)

ROOT::Math::LorentzVector<ROOT::Math::PxPyPzM4D<Double32_t> >::CoordinateType

Function Members (Methods)

public:
~PxPyPzM4D<Double32_t>()
ROOT::Math::PxPyPzM4D<Double32_t>::ScalarE() const
ROOT::Math::PxPyPzM4D<Double32_t>::ScalarE2() const
ROOT::Math::PxPyPzM4D<Double32_t>::ScalarEt() const
ROOT::Math::PxPyPzM4D<Double32_t>::ScalarEt2() const
ROOT::Math::PxPyPzM4D<Double32_t>::ScalarEta() const
voidGetCoordinates(ROOT::Math::PxPyPzM4D<Double32_t>::Scalar* dest) const
voidGetCoordinates(ROOT::Math::PxPyPzM4D<Double32_t>::Scalar& px, ROOT::Math::PxPyPzM4D<Double32_t>::Scalar& py, ROOT::Math::PxPyPzM4D<Double32_t>::Scalar& pz, ROOT::Math::PxPyPzM4D<Double32_t>::Scalar& m) const
ROOT::Math::PxPyPzM4D<Double32_t>::ScalarM() const
ROOT::Math::PxPyPzM4D<Double32_t>::ScalarM2() const
ROOT::Math::PxPyPzM4D<Double32_t>::ScalarMag() const
ROOT::Math::PxPyPzM4D<Double32_t>::ScalarMag2() const
ROOT::Math::PxPyPzM4D<Double32_t>::ScalarMt() const
ROOT::Math::PxPyPzM4D<Double32_t>::ScalarMt2() const
voidNegate()
booloperator!=(const ROOT::Math::PxPyPzM4D<Double32_t>& rhs) const
ROOT::Math::PxPyPzM4D<Double32_t>&operator=(const ROOT::Math::PxPyPzM4D<Double32_t>& v)
booloperator==(const ROOT::Math::PxPyPzM4D<Double32_t>& rhs) const
ROOT::Math::PxPyPzM4D<Double32_t>::ScalarP() const
ROOT::Math::PxPyPzM4D<Double32_t>::ScalarP2() const
ROOT::Math::PxPyPzM4D<Double32_t>::ScalarPerp() const
ROOT::Math::PxPyPzM4D<Double32_t>::ScalarPerp2() const
ROOT::Math::PxPyPzM4D<Double32_t>::ScalarPhi() const
ROOT::Math::PxPyPzM4D<Double32_t>::ScalarPt() const
ROOT::Math::PxPyPzM4D<Double32_t>::ScalarPt2() const
ROOT::Math::PxPyPzM4D<Double32_t>::ScalarPx() const
ROOT::Math::PxPyPzM4D<Double32_t>PxPyPzM4D<Double32_t>()
ROOT::Math::PxPyPzM4D<Double32_t>PxPyPzM4D<Double32_t>(const ROOT::Math::PxPyPzM4D<Double32_t>& v)
ROOT::Math::PxPyPzM4D<Double32_t>PxPyPzM4D<Double32_t>(ROOT::Math::PxPyPzM4D<Double32_t>::Scalar px, ROOT::Math::PxPyPzM4D<Double32_t>::Scalar py, ROOT::Math::PxPyPzM4D<Double32_t>::Scalar pz, ROOT::Math::PxPyPzM4D<Double32_t>::Scalar m)
ROOT::Math::PxPyPzM4D<Double32_t>::ScalarPy() const
ROOT::Math::PxPyPzM4D<Double32_t>::ScalarPz() const
ROOT::Math::PxPyPzM4D<Double32_t>::ScalarR() const
ROOT::Math::PxPyPzM4D<Double32_t>::ScalarRho() const
voidScale(const ROOT::Math::PxPyPzM4D<Double32_t>::Scalar& a)
voidSetCoordinates(const ROOT::Math::PxPyPzM4D<Double32_t>::Scalar* src)
voidSetCoordinates(ROOT::Math::PxPyPzM4D<Double32_t>::Scalar px, ROOT::Math::PxPyPzM4D<Double32_t>::Scalar py, ROOT::Math::PxPyPzM4D<Double32_t>::Scalar pz, ROOT::Math::PxPyPzM4D<Double32_t>::Scalar m)
voidSetE(Double32_t energy)
voidSetEta(Double32_t eta)
voidSetM(ROOT::Math::PxPyPzM4D<Double32_t>::Scalar m)
voidSetPhi(Double32_t phi)
voidSetPt(Double32_t pt)
voidSetPx(ROOT::Math::PxPyPzM4D<Double32_t>::Scalar px)
voidSetPxPyPzE(ROOT::Math::PxPyPzM4D<Double32_t>::Scalar px, ROOT::Math::PxPyPzM4D<Double32_t>::Scalar py, ROOT::Math::PxPyPzM4D<Double32_t>::Scalar pz, ROOT::Math::PxPyPzM4D<Double32_t>::Scalar e)
voidSetPy(ROOT::Math::PxPyPzM4D<Double32_t>::Scalar py)
voidSetPz(ROOT::Math::PxPyPzM4D<Double32_t>::Scalar pz)
ROOT::Math::PxPyPzM4D<Double32_t>::ScalarT() const
ROOT::Math::PxPyPzM4D<Double32_t>::Scalart() const
ROOT::Math::PxPyPzM4D<Double32_t>::ScalarTheta() const
ROOT::Math::PxPyPzM4D<Double32_t>::ScalarX() const
ROOT::Math::PxPyPzM4D<Double32_t>::Scalarx() const
ROOT::Math::PxPyPzM4D<Double32_t>::ScalarY() const
ROOT::Math::PxPyPzM4D<Double32_t>::Scalary() const
ROOT::Math::PxPyPzM4D<Double32_t>::ScalarZ() const
ROOT::Math::PxPyPzM4D<Double32_t>::Scalarz() const
private:
voidRestrictNegMass()

Data Members

private:
Double32_tfM
Double32_tfX
Double32_tfY
Double32_tfZ

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

void SetCoordinates(const ROOT::Math::PxPyPzM4D<Double32_t>::Scalar* src)
      Set internal data based on an array of 4 Scalar numbers

void GetCoordinates(ROOT::Math::PxPyPzM4D<Double32_t>::Scalar* dest) const
      get internal data into an array of 4 Scalar numbers

{ dest[0] = fX; dest[1] = fY; dest[2] = fZ; dest[3] = fM; }
void SetCoordinates(ROOT::Math::PxPyPzM4D<Double32_t>::Scalar px, ROOT::Math::PxPyPzM4D<Double32_t>::Scalar py, ROOT::Math::PxPyPzM4D<Double32_t>::Scalar pz, ROOT::Math::PxPyPzM4D<Double32_t>::Scalar m)
      Set internal data based on 4 Scalar numbers

void GetCoordinates(ROOT::Math::PxPyPzM4D<Double32_t>::Scalar& px, ROOT::Math::PxPyPzM4D<Double32_t>::Scalar& py, ROOT::Math::PxPyPzM4D<Double32_t>::Scalar& pz, ROOT::Math::PxPyPzM4D<Double32_t>::Scalar& m) const
      get internal data into 4 Scalar numbers

{ px=fX; py=fY; pz=fZ; m=fM;}
Scalar Px()
 --------- Coordinates and Coordinate-like Scalar properties -------------
 cartesian (Minkowski)coordinate accessors
{ return fX;}
Scalar Py()
{ return fY;}
Scalar Pz()
{ return fZ;}
Scalar M()
{ return fM; }
Scalar X()
{ return fX;}
Scalar Y()
{ return fY;}
Scalar Z()
{ return fZ;}
Scalar E()
 other coordinate representation

      Energy

{ return std::sqrt(E2() ); }
Scalar T()
{ return E();}
Scalar P2()
      squared magnitude of spatial components

{ return fX*fX + fY*fY + fZ*fZ; }
Scalar P()
      magnitude of spatial components (magnitude of 3-momentum)

{ return std::sqrt(P2()); }
Scalar R()
{ return P(); }
Scalar M2()
      vector magnitude squared (or mass squared)
      In case of negative mass (spacelike particles return negative values)

Scalar Mag2()
{ return M2(); }
Scalar Mag()
{ return M(); }
Scalar E2()
      energy squared

Scalar Pt2()
       transverse spatial component squared

{ return fX*fX + fY*fY;}
Scalar Perp2()
{ return Pt2();}
Scalar Pt()
      Transverse spatial component (P_perp or rho)

{ return std::sqrt(Perp2());}
Scalar Perp()
{ return Pt();}
Scalar Rho()
{ return Pt();}
Scalar Mt2()
       transverse mass squared

{ return E2() - fZ*fZ; }
Scalar Mt()
      transverse mass

Scalar Et2()
       transverse energy squared

Scalar Et()
      transverse energy

Scalar Phi()
      azimuthal angle

Scalar Theta()
      polar angle

Scalar Eta()
       pseudorapidity

void SetPx(ROOT::Math::PxPyPzM4D<Double32_t>::Scalar px)
 --------- Set Coordinates of this system  ---------------

      set X value

void SetPy(ROOT::Math::PxPyPzM4D<Double32_t>::Scalar py)
      set Y value

void SetPz(ROOT::Math::PxPyPzM4D<Double32_t>::Scalar pz)
      set Z value

void SetM(ROOT::Math::PxPyPzM4D<Double32_t>::Scalar m)
      set T value

void SetPxPyPzE(ROOT::Math::PxPyPzM4D<Double32_t>::Scalar px, ROOT::Math::PxPyPzM4D<Double32_t>::Scalar py, ROOT::Math::PxPyPzM4D<Double32_t>::Scalar pz, ROOT::Math::PxPyPzM4D<Double32_t>::Scalar e)
       set all values

void Negate( )
 ------ Manipulations -------------

      negate the 4-vector

{ fX = -fX; fY = -fY; fZ = -fZ; fM = -fM;}
void Scale(const ROOT::Math::PxPyPzM4D<Double32_t>::Scalar& a)
      scale coordinate values by a scalar quantity a

Scalar x()
 ============= Compatibility section ==================
 The following make this coordinate system look enough like a CLHEP
 vector that an assignment member template can work with either
{ return X(); }
Scalar y()
{ return Y(); }
Scalar z()
{ return Z(); }
Scalar t()
{ return E(); }
void SetPt(Double32_t pt)
 ====== Set member functions for coordinates in other systems =======
void SetEta(Double32_t eta)
void SetPhi(Double32_t phi)
void SetE(Double32_t energy)
void RestrictNegMass()
 restrict the value of negative mass to avoid unphysical negative E2 values
 M2 must be less than P2 for the tachionic particles - otherwise use positive values

Last change: root/mathcore:$Id: PxPyPzM4D.h 24923 2008-07-23 15:43:05Z moneta $
Last generated: 2008-08-06 08:06
Copyright (c) 2005 , LCG ROOT MathLib Team *

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.