26 double angA=CLHEP::pi/3, angB=CLHEP::pi/4, angC=CLHEP::pi/6;
27 double cosA=std::cos(angA), sinA=std::sin(angA);
28 double cosB=std::cos(angB), sinB=std::sin(angB);
29 double cosC=std::cos(angC), sinC=std::sin(angC);
32 assert ( R.
xx() == 1 );
33 assert ( R.
xy() == 0 );
34 assert ( R.
xz() == 0 );
35 assert ( R.
yx() == 0 );
36 assert ( R.
yy() == 1 );
37 assert ( R.
yz() == 0 );
38 assert ( R.
zx() == 0 );
39 assert ( R.
zy() == 0 );
40 assert ( R.
zz() == 1 );
42 assert( R.isIdentity() );
46 assert ( R.
xx() == 1 );
47 assert ( R.
xy() == 0 );
48 assert ( R.
xz() == 0 );
49 assert ( R.
yx() == 0 );
50 assert ( R.
yy() == cosA );
51 assert ( R.
yz() ==-sinA );
52 assert ( R.
zx() == 0 );
53 assert ( R.
zy() == sinA );
54 assert ( R.
zz() == cosA );
58 assert ( R.
xx() == cosB );
59 assert ( R.
xy() == 0 );
60 assert ( R.
xz() == sinB );
61 assert ( R.
yx() == 0 );
62 assert ( R.
yy() == 1 );
63 assert ( R.
yz() == 0 );
64 assert ( R.
zx() ==-sinB );
65 assert ( R.
zy() == 0 );
66 assert ( R.
zz() == cosB );
70 assert ( R.
xx() == cosC );
71 assert ( R.
xy() ==-sinC );
72 assert ( R.
xz() == 0 );
73 assert ( R.
yx() == sinC );
74 assert ( R.
yy() == cosC );
75 assert ( R.
yz() == 0 );
76 assert ( R.
zx() == 0 );
77 assert ( R.
zy() == 0 );
78 assert ( R.
zz() == 1 );
86 assert ( std::abs(RR.
xx() - cosA*cosB*cosC + sinA*sinC) <
DEL );
87 assert ( std::abs(RR.
xy() + cosA*cosB*sinC + sinA*cosC) <
DEL );
88 assert ( std::abs(RR.
xz() - cosA*sinB) <
DEL );
89 assert ( std::abs(RR.
yx() - sinA*cosB*cosC - cosA*sinC) <
DEL );
90 assert ( std::abs(RR.
yy() + sinA*cosB*sinC - cosA*cosC) <
DEL );
91 assert ( std::abs(RR.
yz() - sinA*sinB) <
DEL );
92 assert ( std::abs(RR.
zx() + sinB*cosC) <
DEL );
93 assert ( std::abs(RR.
zy() - sinB*sinC) <
DEL );
94 assert ( std::abs(RR.
zz() - cosB) <
DEL );
101 assert ( R(0,0) == R.
xx() );
102 assert ( R(0,1) == R.
xy() );
103 assert ( R(0,2) == R.
xz() );
104 assert ( R(1,0) == R.
yx() );
105 assert ( R(1,1) == R.
yy() );
106 assert ( R(1,2) == R.
yz() );
107 assert ( R(2,0) == R.
zx() );
108 assert ( R(2,1) == R.
zy() );
109 assert ( R(2,2) == R.
zz() );
113 assert ( RR(i,k) == R[i][k] );
121 R = A; R *=
B; R *= C;
125 assert ( std::abs(V.
x()-R.
xx()-2.*R.
xy()-3.*R.
xz()) <
DEL );
126 assert ( std::abs(V.
y()-R.
yx()-2.*R.
yy()-3.*R.
yz()) <
DEL );
127 assert ( std::abs(V.
z()-R.
zx()-2.*R.
zy()-3.*R.
zz()) <
DEL );
130 assert ( std::abs(RR.
xx() - R.
xx()) <
DEL );
131 assert ( std::abs(RR.
xy() - R.
xy()) <
DEL );
132 assert ( std::abs(RR.
xz() - R.
xz()) <
DEL );
133 assert ( std::abs(RR.
yx() - R.
yx()) <
DEL );
134 assert ( std::abs(RR.
yy() - R.
yy()) <
DEL );
135 assert ( std::abs(RR.
yz() - R.
yz()) <
DEL );
136 assert ( std::abs(RR.
zx() - R.
zx()) <
DEL );
137 assert ( std::abs(RR.
zy() - R.
zy()) <
DEL );
138 assert ( std::abs(RR.
zz() - R.
zz()) <
DEL );
143 assert ( std::abs(RR.
xx() - R.
xx()) <
DEL );
144 assert ( std::abs(RR.
xy() - R.
xy()) <
DEL );
145 assert ( std::abs(RR.
xz() - R.
xz()) <
DEL );
146 assert ( std::abs(RR.
yx() - R.
yx()) <
DEL );
147 assert ( std::abs(RR.
yy() - R.
yy()) <
DEL );
148 assert ( std::abs(RR.
yz() - R.
yz()) <
DEL );
149 assert ( std::abs(RR.
zx() - R.
zx()) <
DEL );
150 assert ( std::abs(RR.
zy() - R.
zy()) <
DEL );
151 assert ( std::abs(RR.
zz() - R.
zz()) <
DEL );
156 assert ( RR(i,k) == R[k][i] );
169 double ang=CLHEP::twopi/9.;
174 RR.rotateZ(-(V.
phi()));
175 RR.rotateY(-(V.
theta()));
177 RR.rotateY(V.
theta());
180 assert ( std::abs(RR.
xx() - R.
xx()) <
DEL );
181 assert ( std::abs(RR.
xy() - R.
xy()) <
DEL );
182 assert ( std::abs(RR.
xz() - R.
xz()) <
DEL );
183 assert ( std::abs(RR.
yx() - R.
yx()) <
DEL );
184 assert ( std::abs(RR.
yy() - R.
yy()) <
DEL );
185 assert ( std::abs(RR.
yz() - R.
yz()) <
DEL );
186 assert ( std::abs(RR.
zx() - R.
zx()) <
DEL );
187 assert ( std::abs(RR.
zy() - R.
zy()) <
DEL );
188 assert ( std::abs(RR.
zz() - R.
zz()) <
DEL );
191 R.getAngleAxis(ang, V);
192 assert ( std::abs(ang - CLHEP::twopi/9.) <
DEL );
193 assert ( std::abs(V.
x() - Vu.
x()) <
DEL );
194 assert ( std::abs(V.
y() - Vu.
y()) <
DEL );
195 assert ( std::abs(V.
z() - Vu.
z()) <
DEL );
197 assert ( std::abs(RR.phiX()-std::atan2(RR.
yx(),RR.
xx())) <
DEL );
198 assert ( std::abs(RR.phiY()-std::atan2(RR.
yy(),RR.
xy())) <
DEL );
199 assert ( std::abs(RR.phiZ()-std::atan2(RR.
yz(),RR.
xz())) <
DEL );
201 assert ( std::abs(RR.thetaX()-std::acos(RR.
zx())) <
DEL );
202 assert ( std::abs(RR.thetaY()-std::acos(RR.
zy())) <
DEL );
203 assert ( std::abs(RR.thetaZ()-std::acos(RR.
zz())) <
DEL );