11 #pragma implementation
27 if (std::abs(x) <= 1.0)
return std::acos(x);
32 its_d(proper(ddelta)), its_s(std::sin(ddelta)), its_c(std::cos(ddelta))
67 return (
yx() == 0.0 &&
xx() == 0.0) ? 0.0 : std::atan2(
yx(),
xx());
72 return (
yy() == 0.0 &&
xy() == 0.0) ? 0.0 : std::atan2(
yy(),
xy());
76 return (
yz() == 0.0 &&
xz() == 0.0) ? 0.0 : std::atan2(
yz(),
xz());
102 rotation = axisAngle();
108 rotation = axisAngle();
125 return (answer >= 0) ? answer : 0;
129 double sum =
xx() * r.
xx() +
xy() * r.
xy()
132 double answer = 3.0 - sum;
133 return (answer >= 0 ) ? answer : 0;
140 double bet = b.
beta();
141 double bet2 = bet*bet;
163 return (
distance2(r) <= epsilon*epsilon);
166 return (
distance2(r) <= epsilon*epsilon);
169 return (
distance2(lt) <= epsilon*epsilon);
173 return (
distance2(lt) <= epsilon*epsilon);
177 return 2.0 - 2.0 *
its_c;
181 os <<
"\nRotation about Z (" <<
its_d <<
182 ") [cos d = " <<
its_c <<
" sin d = " <<
its_s <<
"]\n";
void set(double x, double y, double z)
bool isNear(const HepRotationZ &r, double epsilon=Hep4RotationInterface::tolerance) const
std::vector< ExP01TrackerHit * > a
void decompose(HepAxisAngle &rotation, Hep3Vector &boost) const
double distance2(const HepRotationZ &r) const
HepEulerAngles eulerAngles() const
std::ostream & print(std::ostream &os) const
static double safe_acos(double x)
double howNear(const HepRotationZ &r) const
HepBoost & set(double betaX, double betaY, double betaZ)
void decompose(Hep3Vector &boost, HepAxisAngle &rotation) const
static double proper(double delta)
HepRotationZ & set(double delta)
double epsilon(double density, double temperature)
static constexpr double pi
void setDelta(double delta)