3 added + 1 modified, total 4 files
GeomConverter/src/org/lcsim/geometry/field
diff -u -r1.1 -r1.2
--- RZFieldMap.java 1 Sep 2005 22:33:59 -0000 1.1
+++ RZFieldMap.java 1 Sep 2005 23:10:12 -0000 1.2
@@ -47,7 +47,7 @@
{
super(node);
- System.out.println("RZFieldMap");
+// System.out.println("RZFieldMap");
numBinsR = node.getAttribute("numBinsR").getIntValue();
GeomConverter/src/org/lcsim/geometry/compact/converter/lcdd
diff -N RZFieldMap.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ RZFieldMap.java 1 Sep 2005 23:10:12 -0000 1.1
@@ -0,0 +1,79 @@
+/*
+ * RZFieldMap.java
+ *
+ * Created on September 1, 2005, 3:37 PM
+ *
+ */
+
+package org.lcsim.geometry.compact.converter.lcdd;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.net.URL;
+import org.jdom.Element;
+import org.lcsim.util.cache.FileCache;
+
+/**
+ *
+ * @author jeremym
+ */
+public class RZFieldMap extends LCDDField
+{
+ private Element node;
+
+ public RZFieldMap(Element node)
+ {
+ super(node);
+ this.node = node;
+ }
+
+ void addToLCDD(org.lcsim.geometry.compact.converter.lcdd.util.LCDD lcdd) throws org.jdom.JDOMException
+ {
+ org.lcsim.geometry.compact.converter.lcdd.util.RZFieldMap fmap =
+ new org.lcsim.geometry.compact.converter.lcdd.util.RZFieldMap(node.getAttribute("name").getValue());
+
+ fmap.setNumBinsR(node.getAttribute("numBinsR").getIntValue());
+ fmap.setNumBinsZ(node.getAttribute("numBinsZ").getIntValue());
+ fmap.setGridSizeZ(node.getAttribute("gridSizeZ").getDoubleValue());
+ fmap.setGridSizeR(node.getAttribute("gridSizeR").getDoubleValue());
+
+ String location = node.getAttribute("url").getValue();
+
+ try
+ {
+ FileCache cache = new FileCache();
+ File file = cache.getCachedFile(new URL(location));
+
+ URL url = new URL(location);
+
+ BufferedReader reader = new BufferedReader(new FileReader(file));
+
+ for (;;)
+ {
+ String line = reader.readLine();
+ if (line == null) break;
+ String[] chunks = line.trim().split(" +");
+
+ if ( chunks.length != 4 )
+ {
+ throw new IOException("Invalid RZ field map line: " + line);
+ }
+
+ double z = Double.valueOf(chunks[0]).doubleValue();
+ double r = Double.valueOf(chunks[1]).doubleValue();
+ double Bz = Double.valueOf(chunks[2]).doubleValue();
+ double Br = Double.valueOf(chunks[3]).doubleValue();
+
+ fmap.addRZBData(z, r, Bz, Br);
+ }
+ }
+ catch (Exception e)
+ {
+ throw new RuntimeException("Error reading field map data", e);
+ }
+
+ lcdd.setGlobalField(fmap);
+ }
+}
\ No newline at end of file
GeomConverter/src/org/lcsim/geometry/compact/converter/lcdd/util
diff -N RZFieldMap.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ RZFieldMap.java 1 Sep 2005 23:10:12 -0000 1.1
@@ -0,0 +1,49 @@
+package org.lcsim.geometry.compact.converter.lcdd.util;
+
+import org.jdom.Element;
+
+/**
+ *
+ * @author tonyj
+ */
+public class RZFieldMap extends Field
+{
+
+ /** Creates a new instance of Solenoid */
+ public RZFieldMap(String name)
+ {
+ super("rz_field_map", name);
+ setAttribute("lunit","mm");
+ setAttribute("funit","kilogauss");
+ }
+
+ public void setNumBinsR(int numBinsR)
+ {
+ setAttribute("num_bins_r", String.valueOf(numBinsR));
+ }
+
+ public void setNumBinsZ(int numBinsZ)
+ {
+ setAttribute("num_bins_z", String.valueOf(numBinsZ));
+ }
+
+ public void setGridSizeR(double gridSizeR)
+ {
+ setAttribute("grid_size_r", String.valueOf(gridSizeR));
+ }
+
+ public void setGridSizeZ(double gridSizeZ)
+ {
+ setAttribute("grid_size_z", String.valueOf(gridSizeZ));
+ }
+
+ public void addRZBData(double z, double r, double Bz, double Br)
+ {
+ Element rzb = new Element("rzB");
+ rzb.setAttribute("z", String.valueOf(z));
+ rzb.setAttribute("r", String.valueOf(r));
+ rzb.setAttribute("Bz", String.valueOf(Bz));
+ rzb.setAttribute("Br", String.valueOf(Br));
+ addContent(rzb);
+ }
+}
\ No newline at end of file
GeomConverter/test/org/lcsim/geometry/compact/converter/lcdd
diff -N RZFieldMapConverterTest.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ RZFieldMapConverterTest.java 1 Sep 2005 23:10:12 -0000 1.1
@@ -0,0 +1,34 @@
+/*
+ * RZFieldMapConverterTest.java
+ *
+ * Created on June 16, 2005, 3:23 PM
+ */
+
+package org.lcsim.geometry.compact.converter.lcdd;
+
+import java.io.InputStream;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ *
+ * @author jeremym
+ */
+public class RZFieldMapConverterTest extends TestCase
+{
+ public RZFieldMapConverterTest(String name)
+ {
+ super(name);
+ }
+
+ public static TestSuite suite()
+ {
+ return new TestSuite(RZFieldMapConverterTest.class);
+ }
+
+ public void testRZFieldMapConverter() throws Exception
+ {
+ InputStream in = RZFieldMapConverterTest.class.getResourceAsStream("/org/lcsim/geometry/field/RZFieldMapTest.xml");
+ new Main(true).convert("RZFieldMapTest",in,null);
+ }
+}
CVSspam 0.2.8