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]