21 #ifndef HEP_ROTATION_H 22 #define HEP_ROTATION_H 28 #include "CLHEP/Vector/defs.h" 29 #include "CLHEP/Vector/RotationInterfaces.h" 30 #include "CLHEP/Vector/RotationX.h" 31 #include "CLHEP/Vector/RotationY.h" 32 #include "CLHEP/Vector/RotationZ.h" 33 #include "CLHEP/Vector/LorentzVector.h" 39 inline HepRotation
inverseOf (
const HepRotation & r );
40 inline HepRotation
operator * (
const HepRotationX & rx,
const HepRotation & r);
41 inline HepRotation
operator * (
const HepRotationY & ry,
const HepRotation & r);
42 inline HepRotation
operator * (
const HepRotationZ & rz,
const HepRotation & r);
73 HepRotation &
set(
double phi,
double theta,
double psi );
106 inline HepRotation &
operator = (
const HepRotation & r);
114 inline HepRotation &
set(
const HepRep3x3 & m );
135 inline double xx()
const;
136 inline double xy()
const;
137 inline double xz()
const;
138 inline double yx()
const;
139 inline double yy()
const;
140 inline double yz()
const;
141 inline double zx()
const;
142 inline double zy()
const;
143 inline double zz()
const;
156 const HepRotation & rr;
170 inline double getPhi ()
const;
172 inline double getPsi ()
const;
174 double theta()
const;
181 double delta()
const;
215 inline double xt()
const;
216 inline double yt()
const;
217 inline double zt()
const;
218 inline double tx()
const;
219 inline double ty()
const;
220 inline double tz()
const;
223 inline double tt()
const;
257 int compare(
const HepRotation & r )
const;
261 inline bool operator== (
const HepRotation & r )
const;
262 inline bool operator!= (
const HepRotation & r )
const;
263 inline bool operator< (
const HepRotation & r )
const;
264 inline bool operator> (
const HepRotation & r )
const;
265 inline bool operator<= (
const HepRotation & r )
const;
266 inline bool operator>= (
const HepRotation & r )
const;
268 double distance2(
const HepRotation & r )
const;
271 double howNear(
const HepRotation & r )
const;
272 bool isNear(
const HepRotation & r,
289 double norm2()
const;
316 inline HepRotation
operator * (
const HepRotation & r)
const;
324 inline HepRotation &
operator *= (
const HepRotation & r);
325 inline HepRotation &
transform (
const HepRotation & r);
337 HepRotation &
rotateX(
double delta);
340 HepRotation &
rotateY(
double delta);
343 HepRotation &
rotateZ(
double delta);
357 inline HepRotation
inverse()
const;
360 inline HepRotation &
invert();
365 std::ostream &
print( std::ostream & os )
const;
379 inline HepRotation(
double mxx,
double mxy,
double mxz,
380 double myx,
double myy,
double myz,
381 double mzx,
double mzy,
double mzz);
410 std::ostream &
operator <<
411 ( std::ostream & os,
const HepRotation & r ) {
return r.print(os);}
415 #include "CLHEP/Vector/Rotation.icc" 417 #ifdef ENABLE_BACKWARDS_COMPATIBILITY 419 using namespace CLHEP;
HepRotation & operator=(const HepRotation &r)
void setDelta(double delta)
HepLorentzVector col2() const
bool operator!=(const HepRotation &r) const
static double setTolerance(double tol)
bool operator>=(const HepRotation &r) const
static double getTolerance()
HepLorentzVector col4() const
HepLorentzRotation operator*(const HepRotation &r, const HepLorentzRotation <)
Hep3Vector operator*(const Hep3Vector &p) const
static const HepRotation IDENTITY
bool operator<=(const HepRotation &r) const
double distance2(const HepRotation &r) const
bool operator==(const HepRotation &r) const
HepLorentzVector row1() const
HepBoost inverseOf(const HepBoost <)
HepLorentzVector col3() const
HepRotation & operator*=(const HepRotation &r)
bool operator<(const HepRotation &r) const
double operator[](int) const
void setAxis(const Hep3Vector &axis)
bool isNear(const HepRotation &r, double epsilon=Hep4RotationInterface::tolerance) const
Hep3Vector getAxis() const
std::ostream & print(std::ostream &os) const
int compare(const HepRotation &r) const
bool operator>(const HepRotation &r) const
HepRotation & rotateY(double delta)
double operator()(int, int) const
void getAngleAxis(double &delta, Hep3Vector &axis) const
void setTheta(double theta)
HepRotation & rotateZ(double delta)
HepAxisAngle axisAngle() const
HepRotation & rotate(double delta, const Hep3Vector &axis)
HepEulerAngles eulerAngles() const
HepRotation & transform(const HepRotation &r)
HepRotation inverse() const
HepLorentzVector row4() const
HepRotation & setRows(const Hep3Vector &rowX, const Hep3Vector &rowY, const Hep3Vector &rowZ)
HepLorentzVector col1() const
HepRotation_row(const HepRotation &, int)
HepLorentzVector row2() const
HepRotation & rotateAxes(const Hep3Vector &newX, const Hep3Vector &newY, const Hep3Vector &newZ)
double howNear(const HepRotation &r) const
HepRotation & rotateX(double delta)
HepLorentzVector row3() const
void decompose(HepAxisAngle &rotation, Hep3Vector &boost) const