Print

Print


Commit in GeomConverter on MAIN
src/org/lcsim/geometry/CylindricalSubdetector.java+1-21.7 -> 1.8
                      /IDDecoder.java+5-21.7 -> 1.8
src/org/lcsim/geometry/segmentation/NonprojectiveCylinder.java+5-51.14 -> 1.15
src/org/lcsim/geometry/subdetector/CalorimeterBase.java+1-11.3 -> 1.4
                                  /CalorimeterIDDecoder.java+2-21.2 -> 1.3
                                  /CylindricalTracker.java+1-11.1 -> 1.2
                                  /DiskTracker.java+108-1051.8 -> 1.9
                                  /SubdetectorBase.java+3-91.3 -> 1.4
                                  /SubdetectorIDDecoder.java+51.1 -> 1.2
                                  /TrackerBase.java+1-11.3 -> 1.4
test/org/lcsim/geometry/GeometryReaderTest.java+3-61.7 -> 1.8
+135-134
11 modified files
Bit of refactoring, code cleanup, comment changes.

GeomConverter/src/org/lcsim/geometry
CylindricalSubdetector.java 1.7 -> 1.8
diff -u -r1.7 -r1.8
--- CylindricalSubdetector.java	20 Jul 2005 19:11:56 -0000	1.7
+++ CylindricalSubdetector.java	24 Aug 2005 06:10:57 -0000	1.8
@@ -4,8 +4,7 @@
  *
  * @author tonyj
  *
- * FIXME: This should be called Cylinder and inherit from a Shape class.
- *
+ * FIXME: Subdetectors should have a "has a" rather than "is a" relationship to shapes.
  */
 public interface CylindricalSubdetector
 {

GeomConverter/src/org/lcsim/geometry
IDDecoder.java 1.7 -> 1.8
diff -u -r1.7 -r1.8
--- IDDecoder.java	24 Jul 2005 07:40:47 -0000	1.7
+++ IDDecoder.java	24 Aug 2005 06:10:57 -0000	1.8
@@ -16,14 +16,17 @@
     
     /* @return the currently loaded IDDescriptor */
     public IDDescriptor getIDDescription();
+
+    /* FIXME: Can just call getValue("layer") instead ??? */
+    public int getLayer(); 
     
-    /* FIXME: use Position interface */
+    /* FIXME: use Position interface or Hep3Vector */
     public double[] getPosition();
 
+    /* FIXME: Move these someplace else! */
     public double getX();    
     public double getY();
     public double getZ();
     public double getPhi();
     public double getTheta();
-    public int getLayer(); 
 }
\ No newline at end of file

GeomConverter/src/org/lcsim/geometry/segmentation
NonprojectiveCylinder.java 1.14 -> 1.15
diff -u -r1.14 -r1.15
--- NonprojectiveCylinder.java	29 Jul 2005 23:08:48 -0000	1.14
+++ NonprojectiveCylinder.java	24 Aug 2005 06:10:57 -0000	1.15
@@ -15,7 +15,7 @@
 import org.jdom.Element;
 import org.lcsim.geometry.layer.Layer;
 import org.lcsim.geometry.layer.LayerStack;
-import org.lcsim.geometry.subdetector.CylindricalCalorimeter;
+import org.lcsim.geometry.CylindricalSubdetector;
 import org.lcsim.geometry.util.IDDescriptor;
 import org.lcsim.geometry.util.IDDecoder;
 import org.lcsim.geometry.util.IDEncoder;
@@ -200,19 +200,19 @@
     // Not for public use, this is needed to calculate positions
     // and number of cells, etc.
     private double getZMin() {
-	return ((CylindricalCalorimeter)detector).getZMin();
+	return ((CylindricalSubdetector)detector).getZMin();
     }
 
     private double getZMax() {
-	return ((CylindricalCalorimeter)detector).getZMax();
+	return ((CylindricalSubdetector)detector).getZMax();
     }
 
     private double getRMin() {
-	return ((CylindricalCalorimeter)detector).getInnerRadius();
+	return ((CylindricalSubdetector)detector).getInnerRadius();
     }
 
     private double getRMax() {
-	return ((CylindricalCalorimeter)detector).getOuterRadius();
+	return ((CylindricalSubdetector)detector).getOuterRadius();
     }
 
     /**

GeomConverter/src/org/lcsim/geometry/subdetector
CalorimeterBase.java 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- CalorimeterBase.java	2 Aug 2005 16:27:54 -0000	1.3
+++ CalorimeterBase.java	24 Aug 2005 06:10:57 -0000	1.4
@@ -14,7 +14,7 @@
  *
  * @author jeremym
  */
-public class CalorimeterBase 
+abstract class CalorimeterBase 
        extends LayeredSubdetectorBase implements Calorimeter
 {    
     /** Creates a new instance of CalorimeterBase */

GeomConverter/src/org/lcsim/geometry/subdetector
CalorimeterIDDecoder.java 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- CalorimeterIDDecoder.java	24 Jul 2005 06:47:42 -0000	1.2
+++ CalorimeterIDDecoder.java	24 Aug 2005 06:10:57 -0000	1.3
@@ -7,7 +7,7 @@
  *
  */
 public class CalorimeterIDDecoder extends org.lcsim.geometry.CalorimeterIDDecoder
-{    
+{
     public Calorimeter getCalorimeter()
     {
         return (Calorimeter) getSubdetector();
@@ -24,7 +24,7 @@
         }
         return detector.getLayering().getDistanceToLayerSensorMid(layer);
     }
-         
+    
     /* FIXME: Next 3 should be in CellNeighbours (or equiv) interface definition. */
     public long[] getNeighbourIDs(int deltaLayer, int deltaTheta, int deltaPhi)
     {

GeomConverter/src/org/lcsim/geometry/subdetector
CylindricalTracker.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- CylindricalTracker.java	20 Aug 2005 19:56:00 -0000	1.1
+++ CylindricalTracker.java	24 Aug 2005 06:10:57 -0000	1.2
@@ -15,7 +15,7 @@
  *
  * @author jeremym
  */
-public class CylindricalTracker extends TrackerBase
+abstract class CylindricalTracker extends TrackerBase
         implements CylindricalSubdetector
 {
     private double zmax;

GeomConverter/src/org/lcsim/geometry/subdetector
DiskTracker.java 1.8 -> 1.9
diff -u -r1.8 -r1.9
--- DiskTracker.java	23 Jul 2005 00:43:00 -0000	1.8
+++ DiskTracker.java	24 Aug 2005 06:10:58 -0000	1.9
@@ -1,106 +1,109 @@
-package org.lcsim.geometry.subdetector;
-
-import org.jdom.Element;
-import org.jdom.JDOMException;
-
-import hep.graphics.heprep.HepRep;
-import hep.graphics.heprep.HepRepFactory;
-import hep.graphics.heprep.HepRepInstance;
-import hep.graphics.heprep.HepRepInstanceTree;
-import hep.graphics.heprep.HepRepType;
-import hep.graphics.heprep.HepRepTypeTree;
-
-import java.util.Iterator;
-import java.util.List;
-import org.jdom.DataConversionException;
-
-/**
- *
- * @author tonyj
- */
-public class DiskTracker extends TrackerBase
-{
-    private double[] innerR;
-    private double[] outerR;
-    private double[] innerZ;
-    private double[] thickness;
-    
-    public double[] getInnerR()
-    {
-        return(innerR);
-    }
-    public double[] getOuterR()
-    {
-        return(outerR);
-    }
-    public double[] getInnerZ()
-    {
-        return(innerZ);
-    }
-    public double[] getThickness()
-    {
-        return(thickness);
-    }
-    DiskTracker(Element node) throws JDOMException
-    {
-        super(node);
-        build(node);
-    }
-
-    public boolean isEndcap()
-    {
-        return true;
-    }
-    
-    private void build(Element node) throws DataConversionException
-    {
-        List layers = node.getChildren("layer");
-        int n = layers.size();
-        innerR = new double[n];
-        outerR = new double[n];
-        innerZ = new double[n];
-        thickness = new double[n];
-        for (int i=0; i<n; i++)
-        {
-            Element layer = (Element) layers.get(i);
-            innerR[i] = layer.getAttribute("inner_r").getDoubleValue();
-            outerR[i] = layer.getAttribute("outer_r").getDoubleValue();
-            innerZ[i] = layer.getAttribute("inner_z").getDoubleValue();
-            thickness[i] = 0;
-            for (Iterator iter = layer.getChildren("slice").iterator(); iter.hasNext();)
-            {
-                Element slice = (Element) iter.next();
-                thickness[i] += slice.getAttribute("thickness").getDoubleValue();
-            }
-        }
-    }
-    
-    public void appendHepRep(HepRepFactory factory, HepRep heprep)
-    {
-        HepRepInstanceTree instanceTree = heprep.getInstanceTreeTop("Detector","1.0");
-        HepRepTypeTree typeTree = heprep.getTypeTree("DetectorType","1.0");
-        HepRepType endcap = typeTree.getType("Endcap");
-        
-        HepRepType type = factory.createHepRepType(endcap, getName());
-        type.addAttValue("drawAs","Cylinder");
-        
-        double flip = 1;
-        for (;;)
-        {
-            for (int i=0; i<innerR.length; i++)
-            {
-                HepRepInstance instance = factory.createHepRepInstance(instanceTree, type);
-                instance.addAttValue("radius",innerR[i]);
-                factory.createHepRepPoint(instance,0,0,flip*innerZ[i]);
-                factory.createHepRepPoint(instance,0,0,flip*(innerZ[i]+thickness[i]));
-                
-                HepRepInstance instance2 = factory.createHepRepInstance(instanceTree, type);
-                instance2.addAttValue("radius",outerR[i]);
-                factory.createHepRepPoint(instance2,0,0,flip*innerZ[i]);
-                factory.createHepRepPoint(instance2,0,0,flip*(innerZ[i]+thickness[i]));
-            }
-            if (!getReflect() || flip<0) break;
-            flip = -1;
-        }
-    }   
+package org.lcsim.geometry.subdetector;
+
+import org.jdom.Element;
+import org.jdom.JDOMException;
+import hep.graphics.heprep.HepRep;
+import hep.graphics.heprep.HepRepFactory;
+import hep.graphics.heprep.HepRepInstance;
+import hep.graphics.heprep.HepRepInstanceTree;
+import hep.graphics.heprep.HepRepType;
+import hep.graphics.heprep.HepRepTypeTree;
+
+import java.util.Iterator;
+import java.util.List;
+import org.jdom.DataConversionException;
+
+/**
+ *
+ * @author tonyj
+ */
+public class DiskTracker extends TrackerBase
+{
+    private double[] innerR;
+    private double[] outerR;
+    private double[] innerZ;
+    private double[] thickness;
+    
+    public double[] getInnerR()
+    {
+        return(innerR);
+    }
+    
+    public double[] getOuterR()
+    {
+        return(outerR);
+    }
+    
+    public double[] getInnerZ()
+    {
+        return(innerZ);
+    }
+    
+    public double[] getThickness()
+    {
+        return(thickness);
+    }
+    
+    DiskTracker(Element node) throws JDOMException
+    {
+        super(node);
+        build(node);
+    }
+    
+    public boolean isEndcap()
+    {
+        return true;
+    }
+    
+    private void build(Element node) throws DataConversionException
+    {
+        List layers = node.getChildren("layer");
+        int n = layers.size();
+        innerR = new double[n];
+        outerR = new double[n];
+        innerZ = new double[n];
+        thickness = new double[n];
+        for (int i=0; i<n; i++)
+        {
+            Element layer = (Element) layers.get(i);
+            innerR[i] = layer.getAttribute("inner_r").getDoubleValue();
+            outerR[i] = layer.getAttribute("outer_r").getDoubleValue();
+            innerZ[i] = layer.getAttribute("inner_z").getDoubleValue();
+            thickness[i] = 0;
+            for (Iterator iter = layer.getChildren("slice").iterator(); iter.hasNext();)
+            {
+                Element slice = (Element) iter.next();
+                thickness[i] += slice.getAttribute("thickness").getDoubleValue();
+            }
+        }
+    }
+    
+    public void appendHepRep(HepRepFactory factory, HepRep heprep)
+    {
+        HepRepInstanceTree instanceTree = heprep.getInstanceTreeTop("Detector","1.0");
+        HepRepTypeTree typeTree = heprep.getTypeTree("DetectorType","1.0");
+        HepRepType endcap = typeTree.getType("Endcap");
+        
+        HepRepType type = factory.createHepRepType(endcap, getName());
+        type.addAttValue("drawAs","Cylinder");
+        
+        double flip = 1;
+        for (;;)
+        {
+            for (int i=0; i<innerR.length; i++)
+            {
+                HepRepInstance instance = factory.createHepRepInstance(instanceTree, type);
+                instance.addAttValue("radius",innerR[i]);
+                factory.createHepRepPoint(instance,0,0,flip*innerZ[i]);
+                factory.createHepRepPoint(instance,0,0,flip*(innerZ[i]+thickness[i]));
+                
+                HepRepInstance instance2 = factory.createHepRepInstance(instanceTree, type);
+                instance2.addAttValue("radius",outerR[i]);
+                factory.createHepRepPoint(instance2,0,0,flip*innerZ[i]);
+                factory.createHepRepPoint(instance2,0,0,flip*(innerZ[i]+thickness[i]));
+            }
+            if (!getReflect() || flip<0) break;
+            flip = -1;
+        }
+    }
 }
\ No newline at end of file

GeomConverter/src/org/lcsim/geometry/subdetector
SubdetectorBase.java 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- SubdetectorBase.java	20 Jul 2005 19:11:59 -0000	1.3
+++ SubdetectorBase.java	24 Aug 2005 06:10:58 -0000	1.4
@@ -23,16 +23,10 @@
  * implementation classes, which extend it.
  *
  */
-class SubdetectorBase
+abstract class SubdetectorBase
         extends org.lcsim.geometry.compact.Subdetector
         implements HepRepProvider
-{
-    /**
-     * FIXME: This means the JDOM reference is kept around until
-     * corresponding object is deleted.  It doesn't seem like a good idea.
-     */
-    Element node;
-    
+{    
     /** Creates a new instance of SubdetectorBase */
     public SubdetectorBase(Element node) throws JDOMException
     {
@@ -43,7 +37,7 @@
     {
         return (SubdetectorIDDecoder)(getReadout().getIDDecoder() );
     }
-        
+    
     /** HepRepProvider: optional impl for subclass */
     /** FIXME: Should live in org.lcsim.geometry.heprep or equivalent. */
     public void appendHepRep(HepRepFactory factory, HepRep heprep)

GeomConverter/src/org/lcsim/geometry/subdetector
SubdetectorIDDecoder.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- SubdetectorIDDecoder.java	20 Jul 2005 19:11:59 -0000	1.1
+++ SubdetectorIDDecoder.java	24 Aug 2005 06:10:58 -0000	1.2
@@ -36,6 +36,11 @@
     public void setIDDescription(IDDescriptor id)
     {
         super.setIDDescription(id);
+        setLayerIndex(id);
+    }
+    
+    private void setLayerIndex(IDDescriptor id)
+    {
         layerIndex = id.indexOf("layer");
     }
     

GeomConverter/src/org/lcsim/geometry/subdetector
TrackerBase.java 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- TrackerBase.java	20 Jul 2005 19:11:59 -0000	1.3
+++ TrackerBase.java	24 Aug 2005 06:10:58 -0000	1.4
@@ -17,7 +17,7 @@
  *
  * Assumes that all concrete Tracker types will implement Layering interface.
  */
-public class TrackerBase
+abstract class TrackerBase
         extends LayeredSubdetectorBase
         implements Tracker
 {   

GeomConverter/test/org/lcsim/geometry
GeometryReaderTest.java 1.7 -> 1.8
diff -u -r1.7 -r1.8
--- GeometryReaderTest.java	20 Jul 2005 19:12:00 -0000	1.7
+++ GeometryReaderTest.java	24 Aug 2005 06:10:59 -0000	1.8
@@ -1,9 +1,6 @@
 package org.lcsim.geometry;
 
 import org.lcsim.geometry.compact.Segmentation;
-import org.lcsim.geometry.subdetector.TrackerBase;
-import org.lcsim.geometry.subdetector.CalorimeterBase;
-import org.lcsim.geometry.subdetector.CylindricalCalorimeter;
 import org.lcsim.geometry.layer.*;
 
 import junit.framework.*;
@@ -182,13 +179,13 @@
                 /* if tracker, test for TrackerIDDecoder */
                 if ( subdetector.isTracker() )
                 {
-                    TrackerIDDecoder tdec = ((TrackerBase)subdetector).getTrackerIDDecoder();
+                    TrackerIDDecoder tdec = ((Tracker)subdetector).getTrackerIDDecoder();
                     assert(tdec != null);
                 }
                 /* test for CalorimeterIDDecoder */
                 else
                 {
-                    CalorimeterIDDecoder cdec = ((CalorimeterBase)subdetector).getCalorimeterIDDecoder();                    
+                    CalorimeterIDDecoder cdec = ((Calorimeter)subdetector).getCalorimeterIDDecoder();                    
                     
                     /* test for segmentation */
                     Segmentation seg = ((Segmentation)cdec);
@@ -211,7 +208,7 @@
                 /* test thickness */
                 assertEquals( totThick, EMThick, tol );
                 
-                CylindricalCalorimeter cyl = (CylindricalCalorimeter) subdetector;
+                CylindricalSubdetector cyl = (CylindricalSubdetector) subdetector;
                 assert(cyl != null);
                 
                 /* test barrel attributes */
CVSspam 0.2.8