1 #ifndef SYMM_LORENTZ_MATRIX_HH 2 #define SYMM_LORENTZ_MATRIX_HH 5 #include "TLorentzVector.h" 46 X().SetX(p.X() * p.X());
47 X().SetY(p.X() * p.Y());
48 X().SetZ(p.X() * p.Z());
49 X().SetT(p.X() * p.T());
51 Y().SetX(p.Y() * p.X());
52 Y().SetY(p.Y() * p.Y());
53 Y().SetZ(p.Y() * p.Z());
54 Y().SetT(p.Y() * p.T());
56 Z().SetX(p.Z() * p.X());
57 Z().SetY(p.Z() * p.Y());
58 Z().SetZ(p.Z() * p.Z());
59 Z().SetT(p.Z() * p.T());
61 T().SetX(p.T() * p.X());
62 T().SetY(p.T() * p.Y());
63 T().SetZ(p.T() * p.Z());
64 T().SetT(p.T() * p.T());
70 for(
int i=0; i < 4; i++)
_v[i] += other.
_v[i];
74 for(
int i=0; i < 4; i++)
_v[i] -= other.
_v[i];
78 for(
int i=0; i < 4; i++)
_v[i] *=
s;
82 for(
int i=0; i < 4; i++)
_v[i] *= (1./
s);
85 TLorentzVector
Contract(
const TLorentzVector& vec){
88 return vec.T()*
T() - vec.X()*
X() - vec.Y()*
Y() -vec.Z()*
Z();
112 double xx = R.
X().X();
113 double yy = R.
Y().Y();
114 double zz = R.
Z().Z();
115 double tt = R.
T().T();
117 return tt - xx - yy - zz;
133 for(
int i=0; i<4; i++)
_v[i] = other.
_v[i];
double Contract_2(const SymmLorentzMatrix &M)
SymmLorentzMatrix & operator *=(double rhs)
SymmLorentzMatrix & div(double s)
static SymmLorentzMatrix * __gmunu
SymmLorentzMatrix & operator-=(const SymmLorentzMatrix &rhs)
SymmLorentzMatrix & operator+=(const SymmLorentzMatrix &rhs)
SymmLorentzMatrix operator-(const SymmLorentzMatrix &rhs) const
const TLorentzVector & T() const
SymmLorentzMatrix operator *(double lhs, const SymmLorentzMatrix &rhs)
SymmLorentzMatrix & operator=(const SymmLorentzMatrix &other)
SymmLorentzMatrix & operator/=(double rhs)
const TLorentzVector & X() const
SymmLorentzMatrix(const SymmLorentzMatrix &other)
const TLorentzVector & Y() const
static const SymmLorentzMatrix & gmunu()
SymmLorentzMatrix operator+(const SymmLorentzMatrix &rhs) const
SymmLorentzMatrix & subtract(const SymmLorentzMatrix &other)
LorentzMatrix Contract_1(const SymmLorentzMatrix &M)
SymmLorentzMatrix operator *(double rhs) const
SymmLorentzMatrix operator/(double rhs) const
SymmLorentzMatrix operator/(double lhs, const SymmLorentzMatrix &rhs)
SymmLorentzMatrix(const TLorentzVector p[4])
SymmLorentzMatrix & add(const SymmLorentzMatrix &other)
SymmLorentzMatrix(const TLorentzVector p)
const TLorentzVector & Z() const
SymmLorentzMatrix & mult(double s)
TLorentzVector Contract(const TLorentzVector &vec)