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]; }
double yy() const
The yy component.
SpinOneLorentzRotation & boostZ(double beta)
Pure boost along the z-axis; equivalent to LT = BoostX(beta) * LT.
A 4-component Lorentz vector.
bool isIdentity() const
Returns true if the Identity matrix.
SpinOneLorentzRotation & boost(const Boost &b, double gamma=-1.)
boost equivalent to LT = Boost(bv) * LT
double xy() const
The xy component.
double zt() const
The zt component.
SpinOneLorentzRotation & rotateZ(double delta)
Rotation around the z-axis; equivalent to LT = RotationZ(delta) * LT.
LorentzVector< Value > operator*(const LorentzVector< Value > &v) const
Product with a LorentzVector simply returns the rotated vector.
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.
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.
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.
double operator()(unsigned int i, unsigned int j) const
Component access by index: x=0, t=3.
SpinOneLorentzRotation()
Default constructor.
SpinOneLorentzRotation & boostX(double beta)
Pure boost along the x-axis; equivalent to LT = BoostX(beta) * LT.
SpinOneLorentzRotation & setRotate(double delta, const Axis &axis)
Specify a rotation about a general axis by the angle given.
Lorentz5Vector< Value > operator*(const Lorentz5Vector< Value > &v) const
Product with a Lorentz5Vector simply returns the rotated vector.
double zy() const
The zy component.
std::ostream & print(std::ostream &os) const
output operator
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 ...
double xt() const
The xt component.
vector< double > matrix_
Matrix components, order: .
SpinOneLorentzRotation & rotate(double delta, const Axis &axis)
Rotation around specified vector - LT = Rotation(delta,axis)*LT.
double xz() const
The xz component.
double yt() const
The yt component.
double yx() const
The yx component.
double tz() const
The tz component.
Value x() const
Component access.
The Lorentz5Vector inherits from the LorentzVector class.
SpinOneLorentzRotation & setBoost(const Boost &b, double gamma=-1.)
Specify a Lorentz Boost as a vector.
double tx() const
The tx component.
double ty() const
The ty component.
vector< T > & operator<<(vector< T > &tv, const U &u)
Overload the left shift operator for vector to push_back objects to a vector.
The LorentzTensor class is designed to implement the storage of a complex tensor to be used to repres...
double zz() const
The zz component.
SpinOneLorentzRotation inverse() const
Return the inverse.
double xx() const
The xx component.
double yz() const
The yz component.
double tt() const
The tt component.
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.
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 zx() const
The zx component.