12 #ifndef ROOT_TLorentzVector
13 #define ROOT_TLorentzVector
30 #ifndef ROOT_TRotation
443 return pt2 == 0 ? 0 :
E()*
E() * pt2/(pt2+
Z()*
Z());
448 return E() < 0.0 ? -
sqrt(etet) :
sqrt(etet);
454 return pt2 == 0 ? 0 :
E()*
E() * pt2/(pt2+pv*pv);
459 return E() < 0.0 ? -
sqrt(etet) :
sqrt(etet);
501 return E()*
E() -
Z()*
Z();
519 SetXYZM(spatial.
X(), spatial.
Y(), spatial.
Z(), magnitude);
527 return T()*q.
T() -
Z()*q.
Z() -
Y()*q.
Y() -
X()*q.
X();
void SetPxPyPzE(Double_t px, Double_t py, Double_t pz, Double_t e)
void RotateUz(const TVector3 &)
NewUzVector must be normalized !
TLorentzVector & operator+=(const TLorentzVector &)
TLorentzVector operator*(Double_t a) const
Double_t Phi() const
return the azimuth angle. returns phi from -pi to pi
void Boost(Double_t, Double_t, Double_t)
TLorentzVector operator*(Double_t a, const TLorentzVector &)
TVector3 BoostVector() const
Double_t Theta() const
return the polar angle
Double_t Dot(const TLorentzVector &) const
void RotateZ(Double_t angle)
Double_t DeltaR(const TLorentzVector &) const
Double_t Dot(const TVector3 &) const
void RotateY(Double_t angle)
Bool_t operator!=(const TLorentzVector &) const
Double_t Perp() const
return the transverse component (R in cylindrical coordinate system)
void RotateX(Double_t)
rotate vector around X
Double_t Mag() const
return the magnitude (rho in spherical coordinate system)
void SetVectMag(const TVector3 &spatial, Double_t magnitude)
Double_t Angle(const TVector3 &) const
return the angle w.r.t. another 3-vector
TLorentzVector & operator*=(Double_t a)
Double_t operator[](int i) const
Bool_t operator==(const TLorentzVector &) const
Double_t PseudoRapidity() const
Double_t m = Mag(); return 0.5*log( (m+fZ)/(m-fZ) ); guard against Pt=0.
#define ClassDef(name, id)
void RotateUz(TVector3 &newUzVector)
virtual ~TLorentzVector()
TVector3 Unit() const
return unit vector parallel to this.
void Rotate(Double_t, const TVector3 &)
rotate vector
static Double_t Phi_mpi_pi(Double_t x)
(static function) returns phi angle in the interval [-PI,PI)
void SetXYZ(Double_t x, Double_t y, Double_t z)
virtual void Print(Option_t *option="") const
Print the TLorentz vector components as (x,y,z,t) and (P,eta,phi,E) representations.
void SetRho(Double_t rho)
void SetPhi(Double_t phi)
Double_t CosTheta() const
TLorentzVector operator-() const
void RotateY(Double_t)
rotate vector around Y
TLorentzVector & operator=(const TLorentzVector &)
void SetTheta(Double_t)
Set theta keeping mag and phi constant (BaBar).
Double_t Angle(const TVector3 &v) const
void SetXYZT(Double_t x, Double_t y, Double_t z, Double_t t)
TLorentzVector & operator-=(const TLorentzVector &)
Double_t operator()(int i) const
Double_t Rapidity() const
void GetXYZT(Double_t *carray) const
Double_t DeltaPhi(const TLorentzVector &) const
void SetPtEtaPhiE(Double_t pt, Double_t eta, Double_t phi, Double_t e)
void SetTheta(Double_t theta)
Double_t DrEtaPhi(const TLorentzVector &) const
void Rotate(Double_t, const TVector3 &)
void SetXYZM(Double_t x, Double_t y, Double_t z, Double_t m)
TVector3 & Transform(const TRotation &)
transform this vector with a TRotation
void RotateZ(Double_t)
rotate vector around Z
void GetXYZ(Double_t *carray) const
Mother of all ROOT objects.
void SetPhi(Double_t)
Set phi keeping mag and theta constant (BaBar).
Short_t Max(Short_t a, Short_t b)
TLorentzVector & Transform(const TRotation &)
void SetVectM(const TVector3 &spatial, Double_t mass)
void SetPtEtaPhiM(Double_t pt, Double_t eta, Double_t phi, Double_t m)
Double_t Sqrt(Double_t x)
TLorentzVector operator+(const TLorentzVector &) const
Double_t CosTheta() const
void SetVect(const TVector3 &vect3)
Double_t PseudoRapidity() const
void RotateX(Double_t angle)