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"
40 inline HepLorentzRotation
inverseOf (
const HepLorentzRotation & lt );
41 HepLorentzRotation
operator * (
const HepRotation & r,
42 const HepLorentzRotation & lt);
43 HepLorentzRotation
operator * (
const HepRotationX & r,
44 const HepLorentzRotation & lt);
45 HepLorentzRotation
operator * (
const HepRotationY & r,
46 const HepLorentzRotation & lt);
47 HepLorentzRotation
operator * (
const HepRotationZ & r,
48 const HepLorentzRotation & lt);
54 class 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;
348 inline std::ostream &
operator<<
350 {
return lt.print(os);}
352 inline bool operator==(
const HepRotation &r,
const HepLorentzRotation & lt)
354 inline bool operator!=(
const HepRotation &r,
const HepLorentzRotation & lt)
356 inline bool operator<=(
const HepRotation &r,
const HepLorentzRotation & lt)
358 inline bool operator>=(
const HepRotation &r,
const HepLorentzRotation & lt)
360 inline bool operator<(
const HepRotation &r,
const HepLorentzRotation & lt)
362 inline bool operator>(
const HepRotation &r,
const HepLorentzRotation & lt)
365 inline bool operator==(
const HepBoost &
b,
const HepLorentzRotation & lt)
367 inline bool operator!=(
const HepBoost &
b,
const HepLorentzRotation & lt)
369 inline bool operator<=(
const HepBoost &
b,
const HepLorentzRotation & lt)
371 inline bool operator>=(
const HepBoost &
b,
const HepLorentzRotation & lt)
373 inline bool operator<(
const HepBoost &
b,
const HepLorentzRotation & lt)
375 inline bool operator>(
const HepBoost &
b,
const HepLorentzRotation & lt)
380 #include "CLHEP/Vector/LorentzRotation.icc"
382 #ifdef ENABLE_BACKWARDS_COMPATIBILITY
384 using namespace CLHEP;
double operator[](int) const
HepLorentzRotation_row(const HepLorentzRotation &, int)
double operator()(int, int) const
HepLorentzVector col2() const
HepLorentzRotation & set(const HepRotationX &r)
HepLorentzRotation(const HepRep4x4 &rep)
double howNear(const HepBoost &b) const
HepLorentzRotation & rotateZ(double delta)
HepLorentzVector operator*(const HepLorentzVector &p) const
HepLorentzRotation & set(const HepBoost &B, const HepRotation &R)
bool operator>=(const HepLorentzRotation &) const
int compare(const HepLorentzRotation &m) const
HepLorentzRotation(const Hep3Vector &p)
HepLorentzRotation & rotateX(double delta)
HepLorentzRotation & transform(const HepRotation &r)
bool operator==(const HepLorentzRotation &) const
void setBoost(double, double, double)
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 & transform(const HepBoost &b)
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
HepLorentzRotation & operator*=(const HepBoost &b)
double distance2(const HepRotation &r) const
HepLorentzRotation(double bx, double by, double bz)
bool operator>(const HepLorentzRotation &) const
HepLorentzRotation & boostY(double beta)
HepLorentzVector col4() const
HepLorentzVector col1() const
HepLorentzRotation(const HepLorentzRotation &r)
HepLorentzRotation & set(const HepRotationY &r)
std::ostream & print(std::ostream &os) const
HepLorentzRotation & set(const HepBoostY &boost)
void decompose(HepBoost &boost, HepRotation &rotation) const
HepLorentzRotation & set(const HepLorentzVector &col1, const HepLorentzVector &col2, const HepLorentzVector &col3, const HepLorentzVector &col4)
HepLorentzRotation & rotate(double delta, const Hep3Vector *axis)
double distance2(const HepLorentzRotation <) const
HepLorentzRotation & setRows(const HepLorentzVector &row1, const HepLorentzVector &row2, const HepLorentzVector &row3, const HepLorentzVector &row4)
HepLorentzRotation & boostX(double beta)
HepLorentzRotation matrixMultiplication(const HepRep4x4 &m) const
HepLorentzVector row1() const
static const HepLorentzRotation IDENTITY
HepLorentzRotation & rotateY(double delta)
bool operator<(const HepLorentzRotation &) const
HepLorentzRotation(const HepLorentzVector &col1, const HepLorentzVector &col2, const HepLorentzVector &col3, const HepLorentzVector &col4)
HepLorentzRotation(const HepRotation &r)
HepLorentzRotation(const HepBoostY &b)
HepLorentzRotation & set(const HepBoostX &boost)
HepLorentzRotation & set(const HepRep4x4 &rep)
HepLorentzRotation(const HepBoost &b)
HepLorentzRotation & invert()
bool isNear(const HepBoost &b, double epsilon=Hep4RotationInterface::tolerance) const
HepLorentzRotation & rotate(double delta, const Hep3Vector &axis)
static double setTolerance(double tol)
HepLorentzRotation & set(const Hep3Vector &p)
void decompose(HepAxisAngle &rotation, Hep3Vector &boost) const
HepLorentzRotation & set(const HepRotation &r)
const HepLorentzRotation_row operator[](int) const
HepLorentzVector row2() const
double howNear(const HepLorentzRotation <) const
HepLorentzRotation & set(const HepRotation &R, const HepBoost &B)
friend HepLorentzRotation inverseOf(const HepLorentzRotation <)
HepLorentzRotation(const HepRotation &R, const HepBoost &B)
HepLorentzRotation(const HepRotationX &r)
HepLorentzRotation & transform(const HepLorentzRotation <)
HepLorentzRotation inverse() const
HepLorentzRotation & set(const HepBoostZ &boost)
HepLorentzRotation & boostZ(double beta)
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 & set(const HepRotationZ &r)
HepLorentzRotation(const HepRotationZ &r)
HepLorentzRotation & operator=(const HepLorentzRotation &m)
HepLorentzVector vectorMultiplication(const HepLorentzVector &) const
HepLorentzVector operator()(const HepLorentzVector &w) const
HepLorentzRotation & boost(double, double, double)
double howNear(const HepRotation &r) const
HepLorentzRotation(const HepRotationY &r)
HepLorentzRotation & set(const HepBoost &boost)
HepLorentzRotation(const HepBoost &B, const HepRotation &R)
HepLorentzRotation & set(double bx, double by, double bz)
HepLorentzRotation & boost(const Hep3Vector &)
double distance2(const HepBoost &b) const
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 <)