GeomConverter/src/org/lcsim/detector
diff -u -r1.1 -r1.2
--- RotationGeant.java 7 Aug 2007 18:11:39 -0000 1.1
+++ RotationGeant.java 26 Mar 2008 20:33:53 -0000 1.2
@@ -35,12 +35,12 @@
// Rotate around body x_axis
IRotation3D rotation = passiveAxisRotation(phi,x_axis);
-
- // Rotate around body y_axis
- rotation.multiplyBy(passiveAxisRotation(theta,rotation.rotated(y_axis)));
+ // Rotate around body y_axis
+ rotation = Rotation3D.multiply(passiveAxisRotation(theta,rotation.rotated(y_axis)),rotation);
+
// Rotate around body z_axis
- rotation.multiplyBy(passiveAxisRotation(theta,rotation.rotated(z_axis)));
+ rotation = Rotation3D.multiply(passiveAxisRotation(psi,rotation.rotated(z_axis)),rotation);
return rotation;
}
GeomConverter/src/org/lcsim/detector
diff -u -r1.13 -r1.14
--- Rotation3D.java 24 Dec 2007 14:27:08 -0000 1.13
+++ Rotation3D.java 26 Mar 2008 20:33:53 -0000 1.14
@@ -16,7 +16,7 @@
*
* @author Tim Nelson <[log in to unmask]>
* @author Jeremy McCormick <[log in to unmask]>
- * @version $Id: Rotation3D.java,v 1.13 2007/12/24 14:27:08 tknelson Exp $
+ * @version $Id: Rotation3D.java,v 1.14 2008/03/26 20:33:53 tknelson Exp $
*/
public class Rotation3D implements IRotation3D
{
@@ -221,7 +221,7 @@
{
if (axis.magnitude() == 0.0)
{
- // FIXME: throw exception
+ throw new RuntimeException("Rotation3D: cannot define a rotation around a null vector!");
}
Hep3Vector unit_axis = VecOp.unit(axis);
@@ -234,9 +234,9 @@
BasicHep3Matrix rotation_matrix = new BasicHep3Matrix
(
- ca+(1-ca)*dx*dx, (1-ca)*dx*dy-sa*dz, (1-ca)*dx*dz+sa*dy,
- (1-ca)*dy*dx+sa*dz, ca+(1-ca)*dy*dy, (1-ca)*dy*dz-sa*dx,
- (1-ca)*dz*dx-sa*dy, (1-ca)*dz*dy+sa*dx, ca+(1-ca)*dz*dz
+ ca+(1-ca)*dx*dx, (1-ca)*dx*dy+sa*dz, (1-ca)*dx*dz-sa*dy,
+ (1-ca)*dy*dx-sa*dz, ca+(1-ca)*dy*dy, (1-ca)*dy*dz+sa*dx,
+ (1-ca)*dz*dx+sa*dy, (1-ca)*dz*dy-sa*dx, ca+(1-ca)*dz*dz
);
return new Rotation3D(rotation_matrix);