9 #ifndef ThePEG_SpinOneLorentzRotation_H 10 #define ThePEG_SpinOneLorentzRotation_H 12 #include "ThePEG/Helicity/HelicityDefinitions.h" 13 #include "ThePEG/Helicity/LorentzTensor.fh" 14 #include "ThePEG/Helicity/LorentzRSSpinor.fh" 15 #include "ThePEG/Helicity/LorentzRSSpinorBar.fh" 34 xx_() = yy_() = zz_() = tt_() = 1.0;
78 std::ostream &
print( std::ostream & os )
const;
98 return setBoost(b.x(), b.y(), b.z(),gamma);
218 template <
typename Value>
222 (
xx()*v.x() +
xy()*v.y() +
xz()*v.z() +
xt()*v.t(),
223 yx()*v.x() +
yy()*v.y() +
yz()*v.z() +
yt()*v.t(),
224 zx()*v.x() +
zy()*v.y() +
zz()*v.z() +
zt()*v.t(),
225 tx()*v.x() +
ty()*v.y() +
tz()*v.z() +
tt()*v.t());
231 template <
typename Value>
235 (
xx()*v.
x() +
xy()*v.y() +
xz()*v.z() +
xt()*v.t(),
236 yx()*v.
x() +
yy()*v.y() +
yz()*v.z() +
yt()*v.t(),
237 zx()*v.
x() +
zy()*v.y() +
zz()*v.z() +
zt()*v.t(),
238 tx()*v.
x() +
ty()*v.y() +
tz()*v.z() +
tt()*v.t());
251 return *
this = *
this * lt;
258 return *
this = lt * *
this;
267 return *
this = tmp * *
this;
276 return *
this = tmp * *
this;
285 return *
this = tmp * *
this;
294 return *
this = tmp * *
this;
351 double yx,
double yy,
double yz,
double yt,
352 double zx,
double zy,
double zz,
double zt,
353 double tx,
double ty,
double tz,
double tt);
357 return matrix_[4*i + j];
362 double & xx_() {
return matrix_[ 0]; }
363 double & xy_() {
return matrix_[ 1]; }
364 double & xz_() {
return matrix_[ 2]; }
365 double & xt_() {
return matrix_[ 3]; }
367 double & yx_() {
return matrix_[ 4]; }
368 double & yy_() {
return matrix_[ 5]; }
369 double & yz_() {
return matrix_[ 6]; }
370 double & yt_() {
return matrix_[ 7]; }
372 double & zx_() {
return matrix_[ 8]; }
373 double & zy_() {
return matrix_[ 9]; }
374 double & zz_() {
return matrix_[10]; }
375 double & zt_() {
return matrix_[11]; }
377 double & tx_() {
return matrix_[12]; }
378 double & ty_() {
return matrix_[13]; }
379 double & tz_() {
return matrix_[14]; }
380 double & tt_() {
return matrix_[15]; }
SpinOneLorentzRotation & boostZ(double beta)
Pure boost along the z-axis; equivalent to LT = BoostX(beta) * LT.
double yt() const
The yt component.
A 4-component Lorentz vector.
SpinOneLorentzRotation & boost(const Boost &b, double gamma=-1.)
boost equivalent to LT = Boost(bv) * LT
SpinOneLorentzRotation & rotateZ(double delta)
Rotation around the z-axis; equivalent to LT = RotationZ(delta) * LT.
SpinOneLorentzRotation inverse() const
Return the inverse.
double zt() const
The zt component.
SpinOneLorentzRotation & setRotateX(double angle)
Specify a rotation by the given angle about the x-axis.
SpinOneLorentzRotation & operator*=(const SpinOneLorentzRotation <)
Multiply by and assign a*=b becomes a= a*b.
double yz() const
The yz component.
double zy() const
The zy component.
SpinOneLorentzRotation & rotateX(double delta)
Rotation around the x-axis; equivalent to LT = RotationX(delta) * LT.
This is the main namespace within which all identifiers in ThePEG are declared.
std::ostream & print(std::ostream &os) const
output operator
SpinOneLorentzRotation(double bx, double by, double bz, double gamma=-1.)
Constructor giving the components of a Lorentz boost.
SpinOneLorentzRotation & transform(const SpinOneLorentzRotation <)
Transform (similar to *= but a.transform(b) becomes a = b*a.
SpinOneLorentzRotation & invert()
Inverts the SpinOneLorentzRotation matrix.
LorentzVector< Value > operator*(const LorentzVector< Value > &v) const
Product with a LorentzVector simply returns the rotated vector.
double xz() const
The xz component.
SpinOneLorentzRotation()
Default constructor.
SpinOneLorentzRotation & boostX(double beta)
Pure boost along the x-axis; equivalent to LT = BoostX(beta) * LT.
double zz() const
The zz component.
SpinOneLorentzRotation & setRotate(double delta, const Axis &axis)
Specify a rotation about a general axis by the angle given.
double yx() const
The yx component.
Value x() const
Component access.
double zx() const
The zx component.
contains the ThreeVector class.
SpinOneLorentzRotation & boost(double bx, double by, double bz, double gamma=-1.)
boost equivalent to LT = Boost(bx,by,bz) * LT
SpinOneLorentzRotation & rotateY(double delta)
Rotation around the y-axis; equivalent to LT = RotationY(delta) * LT.
SpinOneLorentzRotation & boostY(double beta)
Pure boost along the y-axis; equivalent to LT = BoostX(beta) * LT.
The SpinOneLorentzRotation class is ...
vector< double > matrix_
Matrix components, order: .
SpinOneLorentzRotation & rotate(double delta, const Axis &axis)
Rotation around specified vector - LT = Rotation(delta,axis)*LT.
The Lorentz5Vector inherits from the LorentzVector class.
SpinOneLorentzRotation & setBoost(const Boost &b, double gamma=-1.)
Specify a Lorentz Boost as a vector.
double ty() const
The ty component.
double xx() const
The xx component.
double tx() const
The tx component.
double xy() const
The xy component.
double tz() const
The tz component.
vector< T > & operator<<(vector< T > &tv, const U &u)
Overload the left shift operator for vector to push_back objects to a vector.
double yy() const
The yy component.
The LorentzTensor class is designed to implement the storage of a complex tensor to be used to repres...
double operator()(unsigned int i, unsigned int j) const
Component access by index: x=0, t=3.
bool isIdentity() const
Returns true if the Identity matrix.
SpinOneLorentzRotation(const Boost &b, double gamma=-1.)
Constructor giving the vector for a Lorentz boost.
SpinOneLorentzRotation & setRotateZ(double angle)
Specify a rotation by the given angle about the z-axis.
Lorentz5Vector< Value > operator*(const Lorentz5Vector< Value > &v) const
Product with a Lorentz5Vector simply returns the rotated vector.
SpinOneLorentzRotation & setRotateY(double angle)
Specify a rotation by the given angle about the y-axis.
SpinOneLorentzRotation & setBoost(double bx, double by, double bz, double gamma=-1.)
Specify the components of a Lorentz Boost.
double xt() const
The xt component.
double tt() const
The tt component.