GeomConverter/src/org/lcsim/detector
diff -u -r1.4 -r1.5
--- Rotation3D.java 26 Feb 2007 19:40:50 -0000 1.4
+++ Rotation3D.java 26 Feb 2007 23:41:58 -0000 1.5
@@ -63,8 +63,8 @@
public static BasicHep3Matrix passiveTaitBryan(double alpha, double beta, double gamma)
{
- return (BasicHep3Matrix)VecOp.mult(passiveZRotation(gamma),VecOp.mult(passiveYRotation(beta),passiveXRotation(alpha)));
- }
+ return (BasicHep3Matrix)mult(passiveZRotation(gamma),mult(passiveYRotation(beta),passiveXRotation(alpha)));
+ }
public static BasicHep3Matrix passiveXRotation(double angle)
{
@@ -72,8 +72,8 @@
double cos = Math.cos(angle);
BasicHep3Matrix rotation = BasicHep3Matrix.identity();
rotation.setElement(1,1,cos);
- rotation.setElement(1,2,-sin);
- rotation.setElement(2,1,sin);
+ rotation.setElement(1,2,sin);
+ rotation.setElement(2,1,-sin);
rotation.setElement(2,2,cos);
return rotation;
}
@@ -96,8 +96,8 @@
double cos = Math.cos(angle);
BasicHep3Matrix rotation = BasicHep3Matrix.identity();
rotation.setElement(0,0,cos);
- rotation.setElement(0,1,-sin);
- rotation.setElement(1,0,sin);
+ rotation.setElement(0,1,sin);
+ rotation.setElement(1,0,-sin);
rotation.setElement(1,1,cos);
return rotation;
}
@@ -431,5 +431,23 @@
default:
throw new IllegalArgumentException("Invalid matrix element : " + i );
}
- }
+ }
+
+ public static Hep3Matrix mult(Hep3Matrix m1, Hep3Matrix m2)
+ {
+ double e0 = m1.e(0,0) * m2.e(0,0) + m1.e(0,1) * m2.e(1,0) + m1.e(0,2) * m2.e(2,0);
+ double e1 = m1.e(0,0) * m2.e(0,1) + m1.e(0,1) * m2.e(1,1) + m1.e(0,2) * m2.e(2,1);
+ double e2 = m1.e(0,0) * m2.e(0,2) + m1.e(0,1) * m2.e(1,2) + m1.e(0,2) * m2.e(2,2);
+
+ double e3 = m1.e(1,0) * m2.e(0,0) + m1.e(1,1) * m2.e(1,0) + m1.e(1,2) * m2.e(2,0);
+ double e4 = m1.e(1,0) * m2.e(0,1) + m1.e(1,1) * m2.e(1,1) + m1.e(1,2) * m2.e(2,1);
+ double e5 = m1.e(1,0) * m2.e(0,2) + m1.e(1,1) * m2.e(1,2) + m1.e(1,2) * m2.e(2,2);
+
+ double e6 = m1.e(2,0) * m2.e(0,0) + m1.e(2,1) * m2.e(1,0) + m1.e(2,2) * m2.e(2,0);
+ double e7 = m1.e(2,0) * m2.e(0,1) + m1.e(2,1) * m2.e(1,1) + m1.e(2,2) * m2.e(2,1);
+ double e8 = m1.e(2,0) * m2.e(0,2) + m1.e(2,1) * m2.e(1,2) + m1.e(2,2) * m2.e(2,2);
+
+ return new BasicHep3Matrix(e0,e1,e2,e3,e4,e5,e6,e7,e8);
+ }
+
}
\ No newline at end of file