Geant4 10.7.0
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
RotationP.cc
Go to the documentation of this file.
1// -*- C++ -*-
2// ---------------------------------------------------------------------------
3//
4// This file is a part of the CLHEP - a Class Library for High Energy Physics.
5//
6// This is the implementation of methods of the HepRotation class which
7// were introduced when ZOOM PhysicsVectors was merged in, other than those
8// involving Euler or axis/angle representations, lengthy corrections of
9// the rotation matrix, or I/O.
10//
11
13
14#include <cmath>
15
16
17namespace CLHEP {
18
19void HepRotation::decompose(HepAxisAngle & rotation, Hep3Vector & boost)const {
20 boost.set(0,0,0);
21 rotation = axisAngle();
22}
23
24void HepRotation::decompose(Hep3Vector & boost, HepAxisAngle & rotation)const {
25 boost.set(0,0,0);
26 rotation = axisAngle();
27}
28
29double HepRotation::distance2( const HepRotation & r ) const {
30 double sum = rxx * r.rxx + rxy * r.rxy + rxz * r.rxz
31 + ryx * r.ryx + ryy * r.ryy + ryz * r.ryz
32 + rzx * r.rzx + rzy * r.rzy + rzz * r.rzz;
33 double answer = 3.0 - sum;
34 return (answer >= 0 ) ? answer : 0;
35}
36
37double HepRotation::howNear( const HepRotation & r ) const {
38 return std::sqrt( distance2( r ) );
39}
40
42 double epsilon) const {
43 return distance2( r ) <= epsilon*epsilon;
44}
45
46double HepRotation::norm2() const {
47 double answer = 3.0 - rxx - ryy - rzz;
48 return (answer >= 0 ) ? answer : 0;
49}
50
51} // namespace CLHEP
double epsilon(double density, double temperature)
void set(double x, double y, double z)
HepAxisAngle axisAngle() const
Definition: RotationA.cc:120
double distance2(const HepRotation &r) const
Definition: RotationP.cc:29
double norm2() const
Definition: RotationP.cc:46
void decompose(HepAxisAngle &rotation, Hep3Vector &boost) const
Definition: RotationP.cc:19
bool isNear(const HepRotation &r, double epsilon=Hep4RotationInterface::tolerance) const
Definition: RotationP.cc:41
double howNear(const HepRotation &r) const
Definition: RotationP.cc:37
Definition: DoubConv.h:17