GeomConverter/src/org/lcsim/geometry/field
diff -u -r1.3 -r1.4
--- Solenoid.java 23 Jul 2005 00:43:02 -0000 1.3
+++ Solenoid.java 24 Jul 2005 10:49:28 -0000 1.4
@@ -1,56 +1,61 @@
-package org.lcsim.geometry.field;
-
-import org.jdom.Element;
-import org.jdom.JDOMException;
-import org.lcsim.geometry.FieldMap;
-import org.lcsim.geometry.compact.Field;
-
-/**
- *
- * @author tonyj
- */
-public class Solenoid extends Field implements FieldMap
-{
- private double[] innerField;
- private double[] outerField;
- private double zmax;
- private double outerRadius2;
- private double[] noField = { 0, 0, 0 };
-
- Solenoid(Element node) throws JDOMException
- {
- super(node);
-
- double i = node.getAttribute("inner_field").getDoubleValue();
- innerField = new double[] { 0, 0, i};
- double o = node.getAttribute("outer_field").getDoubleValue();
- outerField = new double[] { 0, 0, o};
- zmax = node.getAttribute("zmax").getDoubleValue();
- double r = node.getAttribute("outer_radius").getDoubleValue();
- outerRadius2 = r*r;
- }
-
- public double[] getField(double[] position)
- {
- if (Math.abs(position[2])>zmax) return noField;
- double r2 = position[0]*position[0] + position[1]*position[1];
- if (r2 > outerRadius2) return outerField;
- else return innerField;
- }
- public double[] getInnerField()
- {
- return innerField;
- }
- public double[] getOuterField()
- {
- return outerField;
- }
- public double getZMax()
- {
- return zmax;
- }
- public double getOuterRadius2()
- {
- return outerRadius2;
- }
-}
+package org.lcsim.geometry.field;
+
+import org.jdom.Element;
+import org.jdom.JDOMException;
+import org.lcsim.geometry.FieldMap;
+import org.lcsim.geometry.compact.Field;
+
+/**
+ * Solenoidal magentic field.
+ * @author tonyj
+ */
+
+public class Solenoid extends Field implements FieldMap
+{
+ private double[] innerField;
+ private double[] outerField;
+ private double zmax;
+ private double outerRadius2;
+ private double[] noField = { 0, 0, 0 };
+
+ Solenoid(Element node) throws JDOMException
+ {
+ super(node);
+
+ double i = node.getAttribute("inner_field").getDoubleValue();
+ innerField = new double[] { 0, 0, i};
+ double o = node.getAttribute("outer_field").getDoubleValue();
+ outerField = new double[] { 0, 0, o};
+ zmax = node.getAttribute("zmax").getDoubleValue();
+ double r = node.getAttribute("outer_radius").getDoubleValue();
+ outerRadius2 = r*r;
+ }
+
+ public double[] getField(double[] position)
+ {
+ if (Math.abs(position[2])>zmax) return noField;
+ double r2 = position[0]*position[0] + position[1]*position[1];
+ if (r2 > outerRadius2) return outerField;
+ else return innerField;
+ }
+
+ public double[] getInnerField()
+ {
+ return innerField;
+ }
+
+ public double[] getOuterField()
+ {
+ return outerField;
+ }
+
+ public double getZMax()
+ {
+ return zmax;
+ }
+
+ public double getOuterRadius2()
+ {
+ return outerRadius2;
+ }
+}
\ No newline at end of file