23#ifndef HEP_LORENTZROTATION_H
24#define HEP_LORENTZROTATION_H
30#include "CLHEP/Vector/defs.h"
31#include "CLHEP/Vector/RotationInterfaces.h"
32#include "CLHEP/Vector/Rotation.h"
33#include "CLHEP/Vector/Boost.h"
34#include "CLHEP/Vector/LorentzVector.h"
40inline HepLorentzRotation
inverseOf (
const HepLorentzRotation & lt );
41HepLorentzRotation
operator * (
const HepRotation & r,
42 const HepLorentzRotation & lt);
43HepLorentzRotation
operator * (
const HepRotationX & r,
44 const HepLorentzRotation & lt);
45HepLorentzRotation
operator * (
const HepRotationY & r,
46 const HepLorentzRotation & lt);
47HepLorentzRotation
operator * (
const HepRotationZ & r,
48 const HepLorentzRotation & lt);
54class HepLorentzRotation {
145 inline double xx()
const;
146 inline double xy()
const;
147 inline double xz()
const;
148 inline double xt()
const;
149 inline double yx()
const;
150 inline double yy()
const;
151 inline double yz()
const;
152 inline double yt()
const;
153 inline double zx()
const;
154 inline double zy()
const;
155 inline double zz()
const;
156 inline double zt()
const;
157 inline double tx()
const;
158 inline double ty()
const;
159 inline double tz()
const;
160 inline double tt()
const;
317 std::ostream &
print( std::ostream & os )
const;
348inline std::ostream &
operator<<
350 {
return lt.print(os);}
352inline bool operator==(
const HepRotation &r,
const HepLorentzRotation & lt)
354inline bool operator!=(
const HepRotation &r,
const HepLorentzRotation & lt)
356inline bool operator<=(
const HepRotation &r,
const HepLorentzRotation & lt)
358inline bool operator>=(
const HepRotation &r,
const HepLorentzRotation & lt)
360inline bool operator<(
const HepRotation &r,
const HepLorentzRotation & lt)
362inline bool operator>(
const HepRotation &r,
const HepLorentzRotation & lt)
365inline bool operator==(
const HepBoost &
b,
const HepLorentzRotation & lt)
367inline bool operator!=(
const HepBoost &
b,
const HepLorentzRotation & lt)
369inline bool operator<=(
const HepBoost &
b,
const HepLorentzRotation & lt)
371inline bool operator>=(
const HepBoost &
b,
const HepLorentzRotation & lt)
373inline bool operator<(
const HepBoost &
b,
const HepLorentzRotation & lt)
375inline bool operator>(
const HepBoost &
b,
const HepLorentzRotation & lt)
380#include "CLHEP/Vector/LorentzRotation.icc"
382#ifdef ENABLE_BACKWARDS_COMPATIBILITY
384using namespace CLHEP;
double operator[](int) const
HepLorentzRotation_row(const HepLorentzRotation &, int)
double operator()(int, int) const
HepLorentzVector col2() const
HepLorentzRotation(const HepRep4x4 &rep)
double howNear(const HepBoost &b) const
HepLorentzRotation & set(const HepRotationX &r)
HepLorentzVector operator*(const HepLorentzVector &p) const
bool operator>=(const HepLorentzRotation &) const
int compare(const HepLorentzRotation &m) const
HepLorentzRotation(const Hep3Vector &p)
bool operator==(const HepLorentzRotation &) const
void setBoost(double, double, double)
HepLorentzRotation & boostZ(double beta)
HepLorentzRotation & set(const Hep3Vector &p)
bool operator!=(const HepLorentzRotation &) const
HepLorentzRotation(const HepBoostZ &b)
bool isNear(const HepRotation &r, double epsilon=Hep4RotationInterface::tolerance) const
bool operator<=(const HepLorentzRotation &) const
HepLorentzRotation & set(const HepBoost &B, const HepRotation &R)
HepLorentzRotation & operator*=(const HepBoost &b)
HepLorentzRotation & transform(const HepLorentzRotation <)
void decompose(Hep3Vector &boost, HepAxisAngle &rotation) const
HepLorentzVector col3() const
HepLorentzRotation(const HepBoostX &b)
bool isNear(const HepLorentzRotation <, double epsilon=Hep4RotationInterface::tolerance) const
HepLorentzVector row3() const
double distance2(const HepRotation &r) const
HepLorentzRotation & setRows(const HepLorentzVector &row1, const HepLorentzVector &row2, const HepLorentzVector &row3, const HepLorentzVector &row4)
HepLorentzRotation(double bx, double by, double bz)
bool operator>(const HepLorentzRotation &) const
HepLorentzVector col4() const
HepLorentzVector col1() const
HepLorentzRotation & set(const HepRotation &r)
HepLorentzRotation(const HepLorentzRotation &r)
HepLorentzRotation & set(const HepBoostY &boost)
void decompose(HepBoost &boost, HepRotation &rotation) const
HepLorentzRotation & set(const HepRotationY &r)
HepLorentzRotation & boost(const Hep3Vector &)
HepLorentzRotation & rotateY(double delta)
double distance2(const HepLorentzRotation <) const
HepLorentzRotation matrixMultiplication(const HepRep4x4 &m) const
HepLorentzRotation & rotate(double delta, const Hep3Vector *axis)
HepLorentzRotation & boost(double, double, double)
HepLorentzVector row1() const
HepLorentzRotation & set(const HepRotation &R, const HepBoost &B)
static const HepLorentzRotation IDENTITY
HepLorentzRotation & boostY(double beta)
bool operator<(const HepLorentzRotation &) const
HepLorentzRotation & boostX(double beta)
HepLorentzRotation & set(const HepBoostX &boost)
HepLorentzRotation(const HepLorentzVector &col1, const HepLorentzVector &col2, const HepLorentzVector &col3, const HepLorentzVector &col4)
HepLorentzRotation(const HepRotation &r)
HepLorentzRotation & rotateZ(double delta)
HepLorentzRotation(const HepBoostY &b)
HepLorentzRotation & set(const HepRep4x4 &rep)
HepLorentzRotation & set(const HepBoost &boost)
HepLorentzRotation & operator=(const HepLorentzRotation &m)
HepLorentzRotation(const HepBoost &b)
HepLorentzRotation & rotate(double delta, const Hep3Vector &axis)
bool isNear(const HepBoost &b, double epsilon=Hep4RotationInterface::tolerance) const
HepLorentzRotation & set(const HepLorentzVector &col1, const HepLorentzVector &col2, const HepLorentzVector &col3, const HepLorentzVector &col4)
static double setTolerance(double tol)
HepLorentzRotation & set(const HepBoostZ &boost)
void decompose(HepAxisAngle &rotation, Hep3Vector &boost) const
const HepLorentzRotation_row operator[](int) const
HepLorentzVector row2() const
std::ostream & print(std::ostream &os) const
double howNear(const HepLorentzRotation <) const
friend HepLorentzRotation inverseOf(const HepLorentzRotation <)
HepLorentzRotation(const HepRotation &R, const HepBoost &B)
HepLorentzRotation(const HepRotationX &r)
HepLorentzRotation inverse() const
static double getTolerance()
HepLorentzVector row4() const
HepLorentzRotation(double mxx, double mxy, double mxz, double mxt, double myx, double myy, double myz, double myt, double mzx, double mzy, double mzz, double mzt, double mtx, double mty, double mtz, double mtt)
void decompose(HepRotation &rotation, HepBoost &boost) const
HepLorentzRotation(const HepRotationZ &r)
HepLorentzRotation & rotateX(double delta)
HepLorentzRotation & transform(const HepRotation &r)
HepLorentzRotation & set(const HepRotationZ &r)
HepLorentzRotation & set(double bx, double by, double bz)
HepLorentzVector vectorMultiplication(const HepLorentzVector &) const
HepLorentzVector operator()(const HepLorentzVector &w) const
double howNear(const HepRotation &r) const
HepLorentzRotation & transform(const HepBoost &b)
HepLorentzRotation(const HepRotationY &r)
HepLorentzRotation(const HepBoost &B, const HepRotation &R)
double distance2(const HepBoost &b) const
HepLorentzRotation & invert()
bool operator>(const HepRotation &r, const HepLorentzRotation <)
bool operator<=(const HepRotation &r, const HepLorentzRotation <)
bool operator>=(const HepRotation &r, const HepLorentzRotation <)
HepLorentzRotation operator*(const HepRotation &r, const HepLorentzRotation <)
bool operator!=(const HepRotation &r, const HepLorentzRotation <)
HepBoost inverseOf(const HepBoost <)
bool operator==(const HepRotation &r, const HepLorentzRotation <)
bool operator<(const HepRotation &r, const HepLorentzRotation <)