19 #ifndef ROOT_Math_GenVector_PtEtaPhiE4D 20 #define ROOT_Math_GenVector_PtEtaPhiE4D 1 22 #ifndef ROOT_Math_Math 26 #ifndef ROOT_Math_GenVector_etaMax 30 #ifndef ROOT_Math_GenVector_GenVector_exception 57 template <
class ScalarType>
81 template <
class CoordSystem >
116 { dest[0] =
fPt; dest[1] =
fEta; dest[2] =
fPhi; dest[3] =
fE; }
138 Scalar
E()
const {
return fE; }
142 Scalar
T()
const {
return E(); }
147 Scalar
X ()
const {
return Px(); }
149 Scalar
Y ()
const {
return Py(); }
153 fEta > 0 ?
fEta - etaMax<Scalar>() :
154 fEta + etaMax<Scalar>() ;
156 Scalar
Z ()
const {
return Pz(); }
163 fEta > etaMax<Scalar>() ?
fEta - etaMax<Scalar>() :
164 fEta < -etaMax<Scalar>() ? -
fEta - etaMax<Scalar>() :
167 Scalar
R()
const {
return P(); }
172 Scalar
P2()
const { Scalar p =
P();
return p*p; }
177 Scalar
M2()
const { Scalar p =
P();
return fE*
fE - p*p; }
189 " Pt and Eta give P such that P^2 > E^2, so the mass would be imaginary");
193 Scalar
Mag()
const {
return M(); }
204 Scalar
Mt2()
const { Scalar pz =
Pz();
return fE*
fE - pz*pz; }
215 " Pt and Eta give Pz such that Pz^2 > E^2, so the mass would be imaginary");
233 Scalar
Et2()
const { Scalar et =
Et();
return et*et; }
237 inline static Scalar
pi() {
return M_PI; }
250 if (
fEta >= 0)
return 0;
285 void SetPxPyPzE(Scalar px, Scalar py, Scalar pz, Scalar
e);
314 template <
class CoordSystem >
336 Scalar
x()
const {
return X(); }
337 Scalar
y()
const {
return Y(); }
338 Scalar
z()
const {
return Z(); }
339 Scalar
t()
const {
return E(); }
343 #if defined(__MAKECINT__) || defined(G__DICTIONARY) 347 void SetPx(Scalar px);
349 void SetPy(Scalar py);
351 void SetPz(Scalar pz);
374 #ifndef ROOT_Math_GenVector_PxPyPzE4D 377 #if defined(__MAKECINT__) || defined(G__DICTIONARY) 378 #ifndef ROOT_Math_GenVector_PtEtaPhiM4D 387 template <
class ScalarType>
393 #if defined(__MAKECINT__) || defined(G__DICTIONARY) 397 template <
class ScalarType>
403 template <
class ScalarType>
409 template <
class ScalarType>
415 template <
class ScalarType>
423 #endif // endif __MAKE__CINT || G__DICTIONARY 432 #endif // ROOT_Math_GenVector_PtEtaPhiE4D Class describing a 4D cylindrical coordinate system using Pt , Phi, Eta and E (or rho...
void SetPhi(Scalar phi)
set phi value
bool operator!=(const PtEtaPhiE4D &rhs) const
Class describing a 4D cylindrical coordinate system using Pt , Phi, Eta and M (mass) The metric used ...
void SetPxPyPzE(Scalar px, Scalar py, Scalar pz, Scalar e)
set values using cartesian coordinate system
void GetCoordinates(Scalar &pt, Scalar &eta, Scalar &phi, Scalar &e) const
get internal data into 4 Scalar numbers
Scalar Et2() const
transverse energy squared
This namespace contains pre-defined functions to be used in conjuction with TExecutor::Map and TExecu...
PtEtaPhiE4D()
Default constructor gives zero 4-vector.
Scalar Theta() const
polar angle
void GetCoordinates(Scalar dest[]) const
get internal data into an array of 4 Scalar numbers
Scalar Mt() const
transverse mass
void Scale(Scalar a)
Scale coordinate values by a scalar quantity a.
Scalar Et() const
transverse energy
Scalar P() const
magnitude of momentum
void SetPx(Scalar px)
set X value
Class describing a 4D cartesian coordinate system (x, y, z, t coordinates) or momentum-energy vectors...
Scalar Mt2() const
transverse mass squared
Scalar Pt2() const
transverse spatial component squared
Scalar P2() const
squared magnitude of spatial components (momentum squared)
Scalar M() const
invariant mass
void Negate()
negate the 4-vector
void SetM(Scalar mass)
set M value
void SetPt(Scalar pt)
set Pt value
void Throw(const char *)
function throwing exception, by creating internally a GenVector_exception only when needed ...
void SetCoordinates(Scalar pt, Scalar eta, Scalar phi, Scalar e)
Set internal data based on 4 Scalar numbers.
#define dest(otri, vertexptr)
Scalar M2() const
vector magnitude squared (or mass squared)
void SetPz(Scalar pz)
set Z value
void SetPy(Scalar py)
set Y value
void SetEta(Scalar eta)
set eta value
void SetCoordinates(const Scalar src[])
Set internal data based on an array of 4 Scalar numbers.
you should not use this method at all Int_t Int_t Double_t Double_t Double_t e
void SetE(Scalar e)
set E value
PtEtaPhiE4D(Scalar pt, Scalar eta, Scalar phi, Scalar e)
Constructor from pt, eta, phi, e values.
Namespace for new Math classes and functions.
PtEtaPhiE4D & operator=(const PtEtaPhiE4D &v)
assignment operator
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.
PtEtaPhiE4D(const PtEtaPhiE4D &v)
copy constructor