Go to the documentation of this file.
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;
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;
162 void decompose (HepAxisAngle & rotation,
Hep3Vector & boost)
const;
165 void decompose (
Hep3Vector & boost, HepAxisAngle & rotation)
const;
173 double norm2()
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 ;
238 HepEulerAngles eulerAngles()
const ;
241 double getDelta()
const ;
243 double delta()
const ;
245 HepAxisAngle axisAngle()
const ;
260 HepLorentzVector col1()
const;
261 HepLorentzVector col2()
const;
262 HepLorentzVector col3()
const;
263 HepLorentzVector col4()
const;
264 HepLorentzVector row1()
const;
265 HepLorentzVector row2()
const;
266 HepLorentzVector row3()
const;
267 HepLorentzVector row4()
const;
284 HepLorentzVector
operator* (
const HepLorentzVector & w )
const ;
285 HepLorentzVector operator()(
const HepLorentzVector & w )
const ;
294 std::ostream & print( std::ostream & os )
const;
300 ~Hep3RotationInterface() {}
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 );
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
347 inline HepRep4x4(
const HepRep4x4Symmetric & rep );
349 inline HepRep4x4(
const double * array );
361 inline void getArray (
double * array )
const;
370 struct HepRep4x4Symmetric {
377 (
double xx,
double xy,
double xz,
double xt
378 ,
double yy,
double yz,
double yt
379 ,
double zz,
double zt
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
HepRotation delta() setPhi()
bool operator!=(HepRep4x4 const &r) const
static double setTolerance(double tol)
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
void getArray(double *array) const
static double getTolerance()
void getArray(double *array) const
We have the boost methods returning HepLorentzVector &rather than so things can be chained we feel the boost methods along an axis
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 and so forth The Hep classes expressing RI and LTI are Hep3RotationInterface and Hep4RotationInterface
HepRotation and so forth howNear()
bool operator!=(const HepRotation &r, const HepLorentzRotation <)
friend class HepRotationX
bool operator==(const HepRotation &r, const HepLorentzRotation <)
they are gone ZOOM Features Discontinued The following features of the ZOOM package were felt to be extreme overkill These have been after checking that no existing user code was utilizing as in SpaceVector v
bool operator==(HepRep4x4 const &r) 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
friend class HepRotationX
friend class HepRotationY
friend class HepLorentzRotation
we want to make it possible for the user to use the so we provide a few new for double double phi
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 HepBoostX
friend class HepRotationY
friend class HepRotationZ
HepLorentzRotation operator*(const HepRotation &r, const HepLorentzRotation <)
void getArray(double *array) const
friend class HepRotationZ
we want to make it possible for the user to use the so we provide a few new for double theta