6 #ifndef HEP_ROTATION_INTERFACES_H 7 #define HEP_ROTATION_INTERFACES_H 68 #include "CLHEP/Vector/defs.h" 69 #include "CLHEP/Vector/ThreeVector.h" 70 #include "CLHEP/Vector/LorentzVector.h" 71 #include "CLHEP/Vector/AxisAngle.h" 77 struct HepRep4x4Symmetric;
83 class HepLorentzRotation;
100 class Hep4RotationInterface {
122 #ifdef ONLY_IN_CONCRETE_CLASSES 124 HepLorentzVector col1()
const;
125 HepLorentzVector col2()
const;
126 HepLorentzVector col3()
const;
127 HepLorentzVector col4()
const;
128 HepLorentzVector row1()
const;
129 HepLorentzVector row2()
const;
130 HepLorentzVector row3()
const;
131 HepLorentzVector row4()
const;
157 inline int compare(
const Hep4RotationInterface & lt )
const;
162 void decompose (HepAxisAngle & rotation, Hep3Vector & boost)
const;
165 void decompose (Hep3Vector & boost, HepAxisAngle & rotation)
const;
168 bool operator == (
const Hep4RotationInterface & r)
const;
169 bool operator != (
const Hep4RotationInterface & r)
const;
173 double norm2()
const ;
174 double distance2(
const Hep4RotationInterface & lt )
const ;
175 double howNear(
const Hep4RotationInterface & lt )
const ;
176 bool isNear (
const Hep4RotationInterface & lt,
177 double epsilon=tolerance)
const ;
184 HepLorentzVector
operator* (
const HepLorentzVector & w )
const ;
185 HepLorentzVector operator()(
const HepLorentzVector & w )
const ;
190 std::ostream & print( std::ostream & os )
const;
229 #ifdef ONLY_IN_CONCRETE_CLASSES 232 double getPhi ()
const ;
233 double getTheta()
const ;
234 double getPsi ()
const ;
235 double phi ()
const ;
236 double theta()
const ;
237 double psi ()
const ;
241 double getDelta()
const ;
243 double delta()
const ;
294 std::ostream & print( std::ostream & os )
const;
315 inline HepRep3x3(
double xx,
double xy,
double xz
316 ,
double yx,
double yy,
double yz
317 ,
double zx,
double zy,
double zz
320 inline HepRep3x3(
const double * array );
324 inline void setToIdentity();
327 double xx_, xy_, xz_,
331 inline void getArray (
double * array )
const;
341 inline HepRep4x4(
double xx,
double xy,
double xz,
double xt
342 ,
double yx,
double yy,
double yz,
double yt
343 ,
double zx,
double zy,
double zz,
double zt
344 ,
double tx,
double ty,
double tz,
double tt
349 inline HepRep4x4(
const double * array );
353 inline void setToIdentity();
356 double xx_, xy_, xz_, xt_,
361 inline void getArray (
double * array )
const;
377 (
double xx,
double xy,
double xz,
double xt
378 ,
double yy,
double yz,
double yt
379 ,
double zz,
double zt
386 inline void setToIdentity();
389 double xx_, xy_, xz_, xt_,
394 inline void getArray (
double * array )
const;
401 #include "CLHEP/Vector/RotationInterfaces.icc" 403 #ifdef ENABLE_BACKWARDS_COMPATIBILITY 405 using namespace CLHEP;
408 #endif // ROTATION_INTERFACES_H
friend class HepRotationY
static double getTolerance()
friend class HepLorentzRotation
HepLorentzRotation operator*(const HepRotation &r, const HepLorentzRotation <)
friend class HepRotationZ
bool operator!=(const HepRotation &r, const HepLorentzRotation <)
static double setTolerance(double tol)
friend class HepRotationX
bool operator==(const HepRotation &r, const HepLorentzRotation <)