Go to the documentation of this file.
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);
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;
146 inline HepRep3x3
rep3x3()
const;
151 class HepRotation_row {
161 inline const HepRotation_row
operator [] (
int)
const;
170 inline double getPhi ()
const;
172 inline double getPsi ()
const;
174 double theta()
const;
181 double delta()
const;
199 inline HepLorentzVector
col1()
const;
200 inline HepLorentzVector
col2()
const;
201 inline HepLorentzVector
col3()
const;
204 inline HepLorentzVector
col4()
const;
207 inline HepLorentzVector
row1()
const;
208 inline HepLorentzVector
row2()
const;
209 inline HepLorentzVector
row3()
const;
212 inline HepLorentzVector
row4()
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;
226 inline HepRep4x4
rep4x4()
const;
277 double distance2(
const HepLorentzRotation & lt )
const;
281 double howNear(
const HepLorentzRotation & lt )
const;
284 bool isNear(
const HepLorentzRotation & lt,
289 double norm2()
const;
308 inline HepLorentzVector
operator()(
const HepLorentzVector & w )
const;
311 inline HepLorentzVector
operator* (
const HepLorentzVector & w )
const;
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;
HepLorentzVector col2() const
static double getTolerance()
HepLorentzVector col3() const
std::ostream & print(std::ostream &os) const
HepLorentzVector col1() const
namespace and inside the zmpv namespace it typedef s UnitVector to be HepUnit3Vector The conversion which provide those methods available for GETTING INFORMATION if an object might be either a Rotation or a since RI has methods a routine can be passed a RI &and take because anything you wish to ask about a LT you could equally well ask about a Rotation From one derives Rotation and its special cases RotationX etc We can t derive RotationX from from one derives HepLorentzRotation along with HepBoost
double howNear(const HepRotation &r) const
bool isNear(const HepRotation &r, double epsilon=Hep4RotationInterface::tolerance) const
HepRotation inverse() const
void setAxis(const Hep3Vector &axis)
bool operator<(const HepRotation &r) const
static const HepRotation IDENTITY
void getAngleAxis(double &delta, Hep3Vector &axis) const
HepLorentzVector row1() const
HepRotation & rotateZ(double delta)
HepRotation & rotate(double delta, const Hep3Vector &axis)
int compare(const HepRotation &r) const
void setTheta(double theta)
Hep3Vector getAxis() const
const HepRotation_row operator[](int) const
HepRotation & operator=(const HepRotation &r)
HepRotation_row(const HepRotation &, int)
void setDelta(double delta)
HepAxisAngle axisAngle() const
Issues Concerning the PhysicsVectors CLHEP Vector Merge The merge of ZOOM PhysicsVdectors and the CLHEP Vector package is completed The purpose of this document is to list the major issues that affected the merge of these and where relevant describe the resolutions More detailed documents describe more minor issues General Approach As agreed at the June CLHEP the approach is to combine the features of each ZOOM class with the corresponding CLHEP class expanding the interface to create a single lingua franca of what a Hep3Vector(for example) means. We are not forming SpaceVector as an class derived from Hep3Vector and enhancing it in that way. Another rule imposed by the agreement is to avoid using the Exceptions package(even though that will later go into CLHEP for other uses). A desirable goal is to avoid cluttering the interface and enlarging the code linked in when ordinary CLHEP Vector functionallity is used. To this end
double operator[](int) const
HepLorentzVector col4() const
HepEulerAngles eulerAngles() const
HepBoost inverseOf(const HepBoost <)
HepRotation & set(const Hep3Vector &axis, double delta)
HepRotation & rotateY(double delta)
bool operator!=(const HepRotation &r) const
HepRotation & rotateX(double delta)
double distance2(const HepRotation &r) const
bool operator>(const HepRotation &r) const
bool operator==(const HepRotation &r) const
void decompose(HepAxisAngle &rotation, Hep3Vector &boost) const
HepLorentzVector row2() const
HepLorentzVector row4() const
bool operator<=(const HepRotation &r) const
HepRotation & setRows(const Hep3Vector &rowX, const Hep3Vector &rowY, const Hep3Vector &rowZ)
HepRotation & operator*=(const HepRotation &r)
HepRotation & rotateAxes(const Hep3Vector &newX, const Hep3Vector &newY, const Hep3Vector &newZ)
Hep3Vector operator*(const Hep3Vector &p) const
HepLorentzRotation operator*(const HepRotation &r, const HepLorentzRotation <)
HepLorentzVector row3() const
HepRotation & transform(const HepRotation &r)
static double setTolerance(double tol)
bool operator>=(const HepRotation &r) const
double operator()(int, int) const