22static inline double safe_acos (
double x) {
23 if (std::abs(x) <= 1.0)
return std::acos(x);
24 return ( (x>0) ? 0 : CLHEP::pi );
28 its_d(proper(ddelta)), its_s(
std::sin(ddelta)), its_c(
std::cos(ddelta))
47 return std::fabs(
its_d );
71 return (
yx() == 0.0 &&
xx() == 0.0) ? 0.0 : std::atan2(
yx(),
xx());
76 return (
yy() == 0.0 &&
xy() == 0.0) ? 0.0 : std::atan2(
yy(),
xy());
81 return (
yz() == 0.0 &&
xz() == 0.0) ? 0.0 : std::atan2(
yz(),
xz());
86 return safe_acos(
zx());
91 return safe_acos(
zy());
95 return safe_acos(
zz());
129 return (answer >= 0) ? answer : 0;
133 double sum = r.
xx() +
136 double answer = 3.0 - sum;
137 return (answer >= 0 ) ? answer : 0;
144 double bet = b.
beta();
145 double bet2 = bet*bet;
182 return 2.0 - 2.0 *
its_c;
186 os <<
"\nRotation about X (" <<
its_d <<
187 ") [cos d = " <<
its_c <<
" sin d = " <<
its_s <<
"]\n";
G4double epsilon(G4double density, G4double temperature)
void set(double x, double y, double z)
HepBoost & set(double betaX, double betaY, double betaZ)
void decompose(Hep3Vector &boost, HepAxisAngle &rotation) const
static double proper(double delta)
HepRotationX & set(double delta)
HepEulerAngles eulerAngles() const
double howNear(const HepRotationX &r) const
void setDelta(double delta)
void decompose(HepAxisAngle &rotation, Hep3Vector &boost) const
HepAxisAngle axisAngle() const
std::ostream & print(std::ostream &os) const
bool isNear(const HepRotationX &r, double epsilon=Hep4RotationInterface::tolerance) const
double distance2(const HepRotationX &r) const