Print

Print


Commit in GeomConverter on MAIN
src/org/lcsim/geometry/field/RZFieldMap.java+1-11.1 -> 1.2
src/org/lcsim/geometry/compact/converter/lcdd/RZFieldMap.java+79added 1.1
src/org/lcsim/geometry/compact/converter/lcdd/util/RZFieldMap.java+49added 1.1
test/org/lcsim/geometry/compact/converter/lcdd/RZFieldMapConverterTest.java+34added 1.1
+163-1
3 added + 1 modified, total 4 files
Added compact converter for RZFieldMap and test.

GeomConverter/src/org/lcsim/geometry/field
RZFieldMap.java 1.1 -> 1.2
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
RZFieldMap.java added at 1.1
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
RZFieldMap.java added at 1.1
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
RZFieldMapConverterTest.java added at 1.1
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