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 {
107 const HepLorentzVector &
col2,
108 const HepLorentzVector &
col3,
109 const HepLorentzVector &
col4 );
121 const HepLorentzVector &
col2,
122 const HepLorentzVector &
col3,
123 const HepLorentzVector &
col4 );
127 const HepLorentzVector &
row2,
128 const HepLorentzVector &
row3,
129 const HepLorentzVector &
row4 );
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;
163 inline HepLorentzVector
col1()
const;
164 inline HepLorentzVector
col2()
const;
165 inline HepLorentzVector
col3()
const;
166 inline HepLorentzVector
col4()
const;
169 inline HepLorentzVector
row1()
const;
170 inline HepLorentzVector
row2()
const;
171 inline HepLorentzVector
row3()
const;
172 inline HepLorentzVector
row4()
const;
175 inline HepRep4x4
rep4x4()
const;
180 class HepLorentzRotation_row {
198 void decompose (Hep3Vector &
boost, HepAxisAngle & rotation)
const;
202 void decompose (HepAxisAngle & rotation, Hep3Vector &
boost)
const;
223 double distance2(
const HepRotation & r )
const;
227 double howNear(
const HepBoost &
b )
const;
228 double howNear(
const HepRotation & r)
const;
231 bool isNear(
const HepBoost &
b,
233 bool isNear(
const HepRotation & r,
240 double norm2()
const;
257 inline HepLorentzVector
operator()(
const HepLorentzVector & w )
const;
258 inline HepLorentzVector
operator* (
const HepLorentzVector & p )
const;
317 std::ostream &
print( std::ostream & os )
const;
337 inline void setBoost(
double,
double,
double);
348 inline std::ostream &
operator<<
350 {
return lt.print(os);}
380 #include "CLHEP/Vector/LorentzRotation.icc" 382 #ifdef ENABLE_BACKWARDS_COMPATIBILITY 384 using namespace CLHEP;
HepLorentzRotation & boost(double, double, double)
HepLorentzVector col3() const
HepLorentzRotation & setRows(const HepLorentzVector &row1, const HepLorentzVector &row2, const HepLorentzVector &row3, const HepLorentzVector &row4)
HepLorentzVector operator*(const HepLorentzVector &p) const
HepLorentzRotation & rotate(double delta, const Hep3Vector &axis)
double howNear(const HepBoost &b) const
HepLorentzVector row4() const
void decompose(Hep3Vector &boost, HepAxisAngle &rotation) const
HepLorentzVector vectorMultiplication(const HepLorentzVector &) const
HepLorentzVector col1() const
static const HepLorentzRotation IDENTITY
std::ostream & print(std::ostream &os) const
double distance2(const HepBoost &b) const
HepLorentzRotation operator*(const HepRotation &r, const HepLorentzRotation <)
bool operator>(const HepLorentzRotation &) const
HepLorentzRotation & operator*=(const HepBoost &b)
HepLorentzVector col4() const
HepLorentzRotation & boostX(double beta)
HepLorentzVector row3() const
HepLorentzRotation & rotateZ(double delta)
HepLorentzVector col2() const
bool isNear(const HepBoost &b, double epsilon=Hep4RotationInterface::tolerance) const
int compare(const HepLorentzRotation &m) const
friend HepLorentzRotation inverseOf(const HepLorentzRotation <)
HepBoost inverseOf(const HepBoost <)
bool operator>=(const HepLorentzRotation &) const
bool operator==(const HepLorentzRotation &) const
void setBoost(double, double, double)
bool operator!=(const HepLorentzRotation &) const
double operator[](int) const
static double setTolerance(double tol)
static double getTolerance()
bool operator<(const HepLorentzRotation &) const
HepLorentzRotation matrixMultiplication(const HepRep4x4 &m) const
double operator()(int, int) const
bool operator<=(const HepLorentzRotation &) const
HepLorentzRotation & operator=(const HepLorentzRotation &m)
HepLorentzRotation & boostY(double beta)
HepLorentzRotation inverse() const
HepLorentzRotation & boostZ(double beta)
HepLorentzVector row2() const
HepLorentzRotation & rotateY(double delta)
HepLorentzVector row1() const
HepLorentzRotation & rotateX(double delta)
HepLorentzRotation & transform(const HepBoost &b)
HepLorentzRotation & invert()
HepLorentzRotation_row(const HepLorentzRotation &, int)