9 #ifndef _DLorentzVector_
10 #define _DLorentzVector_
14 #include <TLorentzVector.h>
21 #include <emmintrin.h>
40 void SetXYZT(
const double x,
const double y,
const double z,
const double t){
49 void SetT(
const double t){ mE=t;};
51 void SetX(
const double x){mP.SetX(x);};
52 void SetY(
const double y){mP.SetY(y);};
53 void SetZ(
const double z){mP.SetZ(z);};
56 double X()
const {
return mP.x();};
57 double Y()
const {
return mP.y();};
58 double Z()
const {
return mP.z();};
59 double T()
const {
return mE;};
65 double Px()
const {
return mP.x();};
66 double Py()
const {
return mP.y();};
67 double Pz()
const {
return mP.z();};
68 double Pt()
const {
return mP.Perp();};
69 double P()
const {
return mP.Mag();};
70 double E()
const {
return mE;};
71 double Energy()
const {
return mE;};
74 double Rho()
const {
return mP.Mag();};
77 double Theta()
const {
return mP.Theta();};
78 double Phi()
const {
return mP.Phi();};
81 double Beta()
const {
return P()/E();};
82 double Mag2()
const {
return mE*mE-mP.Mag2();};
85 return mm < 0.0 ? -
sqrt(-mm) :
sqrt(mm);
87 double M2()
const {
return Mag2();};
88 double Mag()
const {
return M();};
104 cout <<
"DLorentzVector (x,y,z,t)=(" <<
X() <<
"," << Y() <<
"," << Z()
105 <<
"," << T() <<
")" << endl;
125 #endif // _DLorentzVector_
DVector2S operator+(const DVector2S &vec1, const DVector2S &vec2)
TLorentzVector DLorentzVector
DVector2S operator-(const DVector2S &vec1, const DVector2S &vec2)