21#ifndef HEP_LORENTZVECTOR_H
22#define HEP_LORENTZVECTOR_H
31class HepLorentzVector;
32class HepLorentzRotation;
104 inline double x()
const;
105 inline double y()
const;
106 inline double z()
const;
107 inline double t()
const;
110 inline void setX(
double);
111 inline void setY(
double);
112 inline void setZ(
double);
113 inline void setT(
double);
116 inline double px()
const;
117 inline double py()
const;
118 inline double pz()
const;
119 inline double e()
const;
122 inline void setPx(
double);
123 inline void setPy(
double);
124 inline void setPz(
double);
125 inline void setE(
double);
134 inline double theta()
const;
136 inline double phi()
const;
137 inline double rho()
const;
141 inline void setPhi(
double);
142 inline void setRho(
double);
176 inline double perp2()
const;
179 inline double perp()
const;
194 inline double mag2()
const;
198 inline double m2()
const;
201 inline double mag()
const;
202 inline double m()
const;
205 inline double mt2()
const;
208 inline double mt()
const;
211 inline double et2()
const;
214 inline double et()
const;
231 inline double plus()
const;
232 inline double minus()
const;
260 inline bool isLightlike(
double epsilon=tolerance)
const;
310 inline void set (
double x,
double y,
double z,
double t);
319 inline void set (
double t );
338 inline double getX()
const;
339 inline double getY()
const;
340 inline double getZ()
const;
341 inline double getT()
const;
353 inline void setV(
double x,
double y,
double z );
369 double epsilon=tolerance )
const;
374 double epsilon=tolerance )
const;
384 double epsilon=tolerance )
const;
435 inline double eta()
const;
528 static double tolerance;
529 static double metric;
566 operator double()
const {
return t_; }
573#ifdef ENABLE_BACKWARDS_COMPATIBILITY
575using namespace CLHEP;
friend HepLorentzVector boostYOf(const HepLorentzVector &vec, double beta)
double invariantMass() const
HepLorentzVector & rotate(const HepAxisAngle &ax)
HepLorentzVector operator-() const
bool isParallel(const HepLorentzVector &w, double epsilon=tolerance) const
double plus(const Hep3Vector &ref) const
double pseudoRapidity() const
bool isNearCM(const HepLorentzVector &w, double epsilon=tolerance) const
friend HepLorentzVector boostXOf(const HepLorentzVector &vec, double beta)
HepLorentzVector & transform(const HepLorentzRotation &)
Hep3Vector boostVector() const
HepLorentzVector & boost(double, double, double)
bool operator!=(const HepLorentzVector &) const
friend HepLorentzVector rotationOf(const HepLorentzVector &vec, const HepEulerAngles &e)
friend HepLorentzVector rotationOf(const HepLorentzVector &vec, double phi, double theta, double psi)
Hep3Vector findBoostToCM(const HepLorentzVector &w) const
HepLorentzVector & boostZ(double beta)
HepLorentzVector & rotate(double phi, double theta, double psi)
static ZMpvMetric_t getMetric()
HepLorentzVector rest4Vector() const
bool operator==(const HepLorentzVector &) const
void setVectM(const Hep3Vector &spatial, double mass)
friend HepLorentzVector rotationOf(const HepLorentzVector &vec, const HepAxisAngle &ax)
HepLorentzVector(HepLorentzVector &&)=default
int compare(const HepLorentzVector &w) const
friend HepLorentzVector rotationYOf(const HepLorentzVector &vec, double delta)
friend HepLorentzVector rotationOf(const HepLorentzVector &vec, const Hep3Vector &axis, double delta)
HepLorentzVector & rotate(const Hep3Vector &axis, double delta)
double diff2(const HepLorentzVector &w) const
double dot(const HepLorentzVector &) const
double invariantMass(const HepLorentzVector &w) const
double howParallel(const HepLorentzVector &w) const
bool operator<=(const HepLorentzVector &w) const
HepLorentzVector & operator*=(double)
double deltaR(const HepLorentzVector &v) const
HepLorentzVector & boostX(double beta)
double euclideanNorm() const
void set(double x, double y, double z, double t)
HepLorentzVector & rotate(double, const Hep3Vector &)
HepLorentzVector & rotateZ(double)
friend HepLorentzVector boostOf(const HepLorentzVector &vec, const Hep3Vector &betaVector)
void setRThetaPhi(double r, double theta, double phi)
void setVectMag(const Hep3Vector &spatial, double magnitude)
HepLorentzVector & operator-=(const HepLorentzVector &)
HepLorentzVector operator+(const HepLorentzVector &) const
double rapidity(const Hep3Vector &ref) const
HepLorentzVector & boostY(double beta)
bool isLightlike(double epsilon=tolerance) const
void setV(const Hep3Vector &)
double howNear(const HepLorentzVector &w) const
double howLightlike() const
double operator[](int) const
static double setTolerance(double tol)
double howNearCM(const HepLorentzVector &w) const
HepLorentzVector & rotateX(double)
double invariantMass2() const
double minus(const Hep3Vector &ref) const
HepLorentzVector & operator+=(const HepLorentzVector &)
HepLorentzVector & boost(const Hep3Vector &axis, double beta)
bool operator<(const HepLorentzVector &w) const
HepLorentzVector & operator/=(double)
double euclideanNorm2() const
bool isNear(const HepLorentzVector &w, double epsilon=tolerance) const
friend HepLorentzVector boostZOf(const HepLorentzVector &vec, double beta)
void setVect(const Hep3Vector &)
static ZMpvMetric_t setMetric(ZMpvMetric_t a1)
bool operator>(const HepLorentzVector &w) const
double coLinearRapidity() const
Hep3Vector findBoostToCM() const
void setREtaPhi(double r, double eta, double phi)
static double getTolerance()
HepLorentzVector & rotateUz(const Hep3Vector &)
friend HepLorentzVector rotationXOf(const HepLorentzVector &vec, double delta)
double delta2Euclidean(const HepLorentzVector &w) const
HepLorentzVector & rotateY(double)
friend HepLorentzVector rotationZOf(const HepLorentzVector &vec, double delta)
double operator()(int) const
bool operator>=(const HepLorentzVector &w) const
void setRhoPhiZ(double rho, double phi, double z)
double angle(const Hep3Vector &) const
HepLorentzVector & rotate(const HepEulerAngles &e)
HepLorentzVector & operator=(const HepLorentzVector &)
HepLorentzVector & transform(const HepRotation &)
double operator*(const HepLorentzVector &) const
HepLorentzVector HepLorentzVectorD
HepLorentzVector rotationYOf(const HepLorentzVector &vec, double delta)
HepLorentzVector rotationXOf(const HepLorentzVector &vec, double delta)
HepLorentzVector boostOf(const HepLorentzVector &vec, const Hep3Vector &betaVector)
std::istream & operator>>(std::istream &is, HepRandom &dist)
HepLorentzVector rotationZOf(const HepLorentzVector &vec, double delta)
std::ostream & operator<<(std::ostream &s, const HepDiagMatrix &q)
HepLorentzVector HepLorentzVectorF
HepLorentzVector rotationOf(const HepLorentzVector &vec, const Hep3Vector &axis, double delta)
HepDiagMatrix operator/(const HepDiagMatrix &hm1, double t)
HepMatrix operator*(const HepMatrix &hm1, const HepDiagMatrix &hm2)
HepLorentzVector boostXOf(const HepLorentzVector &vec, double beta)
HepLorentzVector boostZOf(const HepLorentzVector &vec, double beta)
HepLorentzVector boostYOf(const HepLorentzVector &vec, double beta)