12 #pragma implementation
15 #include "CLHEP/Vector/ThreeVector.h"
28 double Hep3Vector::polarAngle (
const Hep3Vector & v2)
const {
29 return std::fabs(v2.getTheta() - getTheta());
32 double Hep3Vector::polarAngle (
const Hep3Vector & v2,
33 const Hep3Vector & ref)
const {
34 return std::fabs( v2.angle(ref) -
angle(ref) );
40 double Hep3Vector::azimAngle (
const Hep3Vector & v2,
41 const Hep3Vector & ref)
const {
43 Hep3Vector vperp ( perpPart(ref) );
44 if ( vperp.mag2() == 0 ) {
45 std::cerr <<
"Hep3Vector::azimAngle() - "
46 <<
"Cannot find azimuthal angle with reference direction parallel to "
47 <<
"vector 1 -- will return zero" << std::endl;
51 Hep3Vector v2perp ( v2.perpPart(ref) );
52 if ( v2perp.mag2() == 0 ) {
53 std::cerr <<
"Hep3Vector::azimAngle() - "
54 <<
"Cannot find azimuthal angle with reference direction parallel to "
55 <<
"vector 2 -- will return zero" << std::endl;
59 double ang = vperp.angle(v2perp);
64 if ( dot(v2.cross(ref)) >= 0 ) {
static G4double angle[DIM]