11 #include "CLHEP/Units/PhysicalConstants.h" 15 inline double HepRotationX::yy()
const {
return its_c; }
16 inline double HepRotationX::yz()
const {
return -its_s; }
17 inline double HepRotationX::zy()
const {
return its_s; }
18 inline double HepRotationX::zz()
const {
return its_c; }
20 inline double HepRotationX::xx()
const {
return 1.0; }
21 inline double HepRotationX::xy()
const {
return 0.0; }
22 inline double HepRotationX::xz()
const {
return 0.0; }
23 inline double HepRotationX::yx()
const {
return 0.0; }
24 inline double HepRotationX::zx()
const {
return 0.0; }
26 inline HepRep3x3 HepRotationX::rep3x3()
const {
27 return HepRep3x3 ( 1.0, 0.0, 0.0,
32 inline HepRotationX::HepRotationX() : its_d(0.0), its_s(0.0), its_c(1.0) {}
34 inline HepRotationX::HepRotationX(
const HepRotationX & orig) :
35 its_d(orig.its_d), its_s(orig.its_s), its_c(orig.its_c)
38 inline HepRotationX::HepRotationX(
double dd,
double ss,
double cc) :
39 its_d(dd), its_s(ss), its_c(cc)
42 inline HepRotationX & HepRotationX::operator= (
const HepRotationX & orig) {
49 inline HepRotationX::~HepRotationX() {}
51 inline Hep3Vector HepRotationX::colX()
const 52 {
return Hep3Vector ( 1.0, 0.0, 0.0 ); }
53 inline Hep3Vector HepRotationX::colY()
const 54 {
return Hep3Vector ( 0.0, its_c, its_s ); }
55 inline Hep3Vector HepRotationX::colZ()
const 56 {
return Hep3Vector ( 0.0, -its_s, its_c ); }
58 inline Hep3Vector HepRotationX::rowX()
const 59 {
return Hep3Vector ( 1.0, 0.0, 0.0 ); }
60 inline Hep3Vector HepRotationX::rowY()
const 61 {
return Hep3Vector ( 0.0, its_c, -its_s ); }
62 inline Hep3Vector HepRotationX::rowZ()
const 63 {
return Hep3Vector ( 0.0, its_s, its_c ); }
65 inline double HepRotationX::getPhi ()
const {
return phi(); }
66 inline double HepRotationX::getTheta()
const {
return theta(); }
67 inline double HepRotationX::getPsi ()
const {
return psi(); }
68 inline double HepRotationX::getDelta()
const {
return its_d; }
69 inline Hep3Vector HepRotationX::getAxis ()
const {
return axis(); }
71 inline double HepRotationX::delta()
const {
return its_d; }
72 inline Hep3Vector HepRotationX::axis()
const {
return Hep3Vector(1,0,0); }
74 inline HepAxisAngle HepRotationX::axisAngle()
const {
75 return HepAxisAngle ( axis(), delta() );
78 inline void HepRotationX::getAngleAxis
79 (
double & ddelta, Hep3Vector & aaxis)
const {
84 inline HepLorentzVector HepRotationX::col1()
const 85 {
return HepLorentzVector (colX(), 0); }
86 inline HepLorentzVector HepRotationX::col2()
const 87 {
return HepLorentzVector (colY(), 0); }
88 inline HepLorentzVector HepRotationX::col3()
const 89 {
return HepLorentzVector (colZ(), 0); }
90 inline HepLorentzVector HepRotationX::col4()
const 91 {
return HepLorentzVector (0,0,0,1); }
92 inline HepLorentzVector HepRotationX::row1()
const 93 {
return HepLorentzVector (rowX(), 0); }
94 inline HepLorentzVector HepRotationX::row2()
const 95 {
return HepLorentzVector (rowY(), 0); }
96 inline HepLorentzVector HepRotationX::row3()
const 97 {
return HepLorentzVector (rowZ(), 0); }
98 inline HepLorentzVector HepRotationX::row4()
const 99 {
return HepLorentzVector (0,0,0,1); }
100 inline double HepRotationX::xt()
const {
return 0.0; }
101 inline double HepRotationX::yt()
const {
return 0.0; }
102 inline double HepRotationX::zt()
const {
return 0.0; }
103 inline double HepRotationX::tx()
const {
return 0.0; }
104 inline double HepRotationX::ty()
const {
return 0.0; }
105 inline double HepRotationX::tz()
const {
return 0.0; }
106 inline double HepRotationX::tt()
const {
return 1.0; }
108 inline HepRep4x4 HepRotationX::rep4x4()
const {
109 return HepRep4x4 ( 1.0, 0.0, 0.0, 0.0,
110 0.0, its_c, -its_s, 0.0,
111 0.0, its_s, its_c, 0.0,
112 0.0, 0.0, 0.0, 1.0 );
115 inline bool HepRotationX::isIdentity()
const {
119 inline int HepRotationX::compare (
const HepRotationX & r )
const {
120 if (its_d > r.its_d)
return 1;
else if (its_d < r.its_d)
return -1;
else return 0;
123 inline bool HepRotationX::operator==(
const HepRotationX & r)
const 124 {
return (its_d==r.its_d); }
125 inline bool HepRotationX::operator!=(
const HepRotationX & r)
const 126 {
return (its_d!=r.its_d); }
127 inline bool HepRotationX::operator>=(
const HepRotationX & r)
const 128 {
return (its_d>=r.its_d); }
129 inline bool HepRotationX::operator<=(
const HepRotationX & r)
const 130 {
return (its_d<=r.its_d); }
131 inline bool HepRotationX::operator> (
const HepRotationX & r)
const 132 {
return (its_d> r.its_d); }
133 inline bool HepRotationX::operator< (
const HepRotationX & r)
const 134 {
return (its_d< r.its_d); }
136 inline void HepRotationX::rectify() {
137 its_d = proper(its_d);
138 its_s = std::sin(its_d);
139 its_c = std::cos(its_d);
142 inline Hep3Vector HepRotationX::operator() (
const Hep3Vector & p)
const {
146 return Hep3Vector( x,
147 y * its_c - z * its_s,
148 z * its_c + y * its_s );
152 return operator()(p);
155 inline HepLorentzVector HepRotationX::operator()
156 (
const HepLorentzVector & w )
const {
157 return HepLorentzVector(
operator() (w.vect()) , w.t() );
160 inline HepLorentzVector HepRotationX::operator *
161 (
const HepLorentzVector & p)
const {
162 return operator()(p);
165 inline HepRotationX & HepRotationX::operator *= (
const HepRotationX & m1) {
166 return *
this = (*this) * (m1);
169 inline HepRotationX & HepRotationX::transform(
const HepRotationX & m1) {
170 return *
this = m1 * (*this);
173 inline double HepRotationX::proper(
double ddelta ) {
175 if ( std::fabs(ddelta) < CLHEP::pi ) {
178 double x = ddelta / (CLHEP::twopi);
179 return (CLHEP::twopi) * ( x + std::floor(.5-x) );
184 return HepRotationX ( HepRotationX::proper(its_d+rx.its_d),
185 its_s*rx.its_c + its_c*rx.its_s,
186 its_c*rx.its_c - its_s*rx.its_s );
189 inline HepRotationX HepRotationX::inverse()
const {
190 return HepRotationX( proper(-its_d), -its_s, its_c );
197 inline HepRotationX & HepRotationX::invert() {
198 return *
this=inverse();
201 inline double HepRotationX::getTolerance() {
202 return Hep4RotationInterface::tolerance;
204 inline double HepRotationX::setTolerance(
double tol) {
205 return Hep4RotationInterface::setTolerance(tol);
HepLorentzVector operator*(const HepLorentzVector &p, double a)
HepRotationX inverseOf(const HepRotationX &r)