24 : pp(x1, y1, z1), ee(t1) {}
27 : pp(x1, y1, z1), ee(0) {}
30 : pp(0, 0, 0), ee(t1) {}
33 : pp(0, 0, 0), ee(0) {}
42 : pp(p.x(), p.y(), p.z()), ee(p.t()) {}
46inline HepLorentzVector::operator
const Hep3Vector & ()
const {
return pp;}
47inline HepLorentzVector::operator
Hep3Vector & () {
return pp; }
147 return metric*(
t()*
t() - pp.
mag2());
152 return mmm < 0.0 ? -std::sqrt(-mmm) : std::sqrt(mmm);
156 return t()*
t() - pp.
mag2();
162 return e()*
e() -
pz()*
pz();
167 return mmm < 0.0 ? -std::sqrt(-mmm) : std::sqrt(mmm);
171 double pt2 = pp.
perp2();
172 return pt2 == 0 ? 0 :
e()*
e() * pt2/(pt2+
z()*
z());
177 return e() < 0.0 ? -std::sqrt(etet) : std::sqrt(etet);
181 double pt2 = pp.
perp2(v1);
183 return pt2 == 0 ? 0 :
e()*
e() * pt2/(pt2+pv*pv);
187 double etet =
et2(v1);
188 return e() < 0.0 ? -std::sqrt(etet) : std::sqrt(etet);
194 setT(std::sqrt(magnitude * magnitude + spatial * spatial));
203 return metric*(
t()*q.
t() -
z()*q.
z() -
y()*q.
y() -
x()*q.
x());
232 return pp.
eta( ref );
258 double x1,
double y1,
double z1,
Tcomponent t1 ) :
259 pp(x1, y1, z1), ee(t1) {}
262 double x1,
double y1,
double z1,
Tcomponent t1 ) {
268 double x1,
double y1,
double z1,
double t1 ) {
273 Tcomponent t1,
double x1,
double y1,
double z1 ) :
274 pp(x1, y1, z1), ee(t1) {}
277 Tcomponent t1,
double x1,
double y1,
double z1 ) {
293 pp(0, 0, 0), ee(t1) {}
333 double z1 ) { pp.
set(x1, y1, z1); }
336 (
double r,
double ttheta,
double phi1 )
340 (
double r,
double eta1,
double phi1 )
344 (
double rho1,
double phi1,
double z1 )
356 return std::fabs(
restMass2()) < 2.0 * epsilon * ee * ee;
360 return metric*( (ee-w.ee)*(ee-w.ee) - (pp-w.pp).
mag2() );
365 return (ee-w.ee)*(ee-w.ee) + (pp-w.pp).mag2();
369 return ee*ee + pp.
mag2();
380 if(
t() < 0.0 )
ZMthrowC(ZMxpvNegativeMass(
381 "E^2-p^2 < 0 for this particle. Magnitude returned."));
382 return t() < 0.0 ? -
m() :
m();
386 if(
t() < 0.0 )
ZMthrowC(ZMxpvNegativeMass(
387 "E^2-p^2 < 0 for this particle. Magnitude returned."));
388 return t() < 0.0 ? -
m() :
m();
393 return (*
this + w).m2();
423 return vv.
boost (betaVector);
429 return vv.
boost (aaxis, bbeta);
void setRhoPhiZ(double rho, double phi, double z)
void setRThetaPhi(double r, double theta, double phi)
double angle(const Hep3Vector &) const
double dot(const Hep3Vector &) const
double pseudoRapidity() const
Hep3Vector & transform(const HepRotation &)
void set(double x, double y, double z)
void setREtaPhi(double r, double eta, double phi)
double invariantMass() const
HepLorentzVector operator-() const
double pseudoRapidity() const
HepLorentzVector & boost(double, double, double)
bool operator!=(const HepLorentzVector &) const
HepLorentzVector & boostZ(double beta)
bool operator==(const HepLorentzVector &) const
void setVectM(const Hep3Vector &spatial, double mass)
double diff2(const HepLorentzVector &w) const
double dot(const HepLorentzVector &) const
HepLorentzVector & operator*=(double)
HepLorentzVector & boostX(double beta)
double euclideanNorm() const
void set(double x, double y, double z, double t)
void setRThetaPhi(double r, double theta, double phi)
void setVectMag(const Hep3Vector &spatial, double magnitude)
HepLorentzVector & operator-=(const HepLorentzVector &)
HepLorentzVector operator+(const HepLorentzVector &) const
HepLorentzVector & boostY(double beta)
bool isLightlike(double epsilon=tolerance) const
void setV(const Hep3Vector &)
double operator[](int) const
double invariantMass2() const
HepLorentzVector & operator+=(const HepLorentzVector &)
double euclideanNorm2() const
void setVect(const Hep3Vector &)
void setREtaPhi(double r, double eta, double phi)
double delta2Euclidean(const HepLorentzVector &w) const
void setRhoPhiZ(double rho, double phi, double z)
double angle(const Hep3Vector &) const
HepLorentzVector & operator=(const HepLorentzVector &)
HepLorentzVector & transform(const HepRotation &)
double operator*(const HepLorentzVector &) const
HepLorentzVector boostOf(const HepLorentzVector &vec, const Hep3Vector &betaVector)
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)