Print

Print


Commit in GeomConverter/src/org/lcsim/geometry/compact on MAIN
CompactReader.java+20-111.15 -> 1.16
Readout.java+4-141.6 -> 1.7
+24-25
2 modified files
Moved code to setup IDDecoder from Readout to the CompactReader.

GeomConverter/src/org/lcsim/geometry/compact
CompactReader.java 1.15 -> 1.16
diff -u -r1.15 -r1.16
--- CompactReader.java	18 Jul 2005 18:00:03 -0000	1.15
+++ CompactReader.java	26 Sep 2005 20:19:33 -0000	1.16
@@ -9,6 +9,7 @@
 import org.jdom.Element;
 import org.jdom.JDOMException;
 import org.jdom.input.SAXBuilder;
+import org.lcsim.geometry.subdetector.TrackerIDDecoder;
 import org.lcsim.util.xml.ElementFactory.ElementCreationException;
 import org.lcsim.material.XMLMaterialManager;
 import org.lcsim.util.xml.ElementFactory;
@@ -17,7 +18,7 @@
 /**
  * A tool for reading xml files containing compact detector descriptions.
  * @author tonyj
- * @version $Id: CompactReader.java,v 1.15 2005/07/18 18:00:03 jeremy Exp $
+ * @version $Id: CompactReader.java,v 1.16 2005/09/26 20:19:33 jeremy Exp $
  *
  * This class does not create subclass objects.  For example, CylindricalBarrelCalorimeter
  * is inserted into Detector as a generic Subdetector.  To get subclasses, use the
@@ -28,7 +29,7 @@
  */
 public class CompactReader
 {
-    private ElementFactory factory;        
+    private ElementFactory factory;
     
     /**
      * Create a CompactReader using a DefaultElementFactory.
@@ -43,7 +44,7 @@
      */
     public CompactReader(ElementFactory factory)
     {
-        this.factory = factory;                
+        this.factory = factory;
     }
     
     /**
@@ -62,7 +63,7 @@
         Document doc = builder.build(in);
         
         Element lccdd = doc.getRootElement();
-        Detector det = factory.createElement(Detector.class,lccdd,null);               
+        Detector det = factory.createElement(Detector.class,lccdd,null);
         
         Element info = lccdd.getChild("info");
         det.setHeader(factory.createElement(Header.class,info,null));
@@ -73,10 +74,10 @@
             Constant c = factory.createElement(Constant.class,constant,null);
             jdom.addConstant(c.getName(),c.getValue());
             det.addConstant(c);
-        }                
+        }
         
         /* Load materials for this detector. */
-        setupMaterials(lccdd, det);        
+        setupMaterials(lccdd, det);
         
         /* setup readouts */
         Map<String,Readout> readoutMap = new HashMap<String,Readout>();
@@ -86,12 +87,20 @@
             Element readout = (Element) i.next();
             Readout r = factory.createElement(Readout.class,readout,null);
             Element segmentation = readout.getChild("segmentation");
+            
+            /* Setup a Segmentation for the Calorimeter. */
             if (segmentation != null)
             {
                 String type = segmentation.getAttributeValue("type");
                 Segmentation seg = factory.createElement(Segmentation.class, segmentation, type);
                 r.setSegmentation(seg);
             }
+            /* Setup a generic TrackerIDDecoder for the tracker Readout. */
+            else
+            {
+                r.setIDDecoder( new TrackerIDDecoder() );
+            }
+            
             readoutMap.put(r.getName(),r);
             det.addReadout(r);
         }
@@ -123,15 +132,15 @@
                 Field field = factory.createElement(Field.class,f,type);
                 det.addField(field);
             }
-        }                                                               
+        }
         
         return det;
-    }           
+    }
     
-    /** Create impl objects of materials and their references. */                
+    /** Create impl objects of materials and their references. */
     void setupMaterials(org.jdom.Element lccdd, Detector det) throws JDOMException
-    {               
-        XMLMaterialManager matmgr = det.getMaterialManager();                        
+    {
+        XMLMaterialManager matmgr = det.getMaterialManager();
         matmgr.addReferencesFromCompact(lccdd);
         matmgr.makeMaterials(null);
     }

GeomConverter/src/org/lcsim/geometry/compact
Readout.java 1.6 -> 1.7
diff -u -r1.6 -r1.7
--- Readout.java	7 Aug 2005 06:19:21 -0000	1.6
+++ Readout.java	26 Sep 2005 20:19:33 -0000	1.7
@@ -26,13 +26,8 @@
         name = node.getAttributeValue("name");
         
         setupIDDescriptor(node);
-        
-        /** No segmentation tag means that this Readout is for a tracker. */
-        if ( node.getChild("segmentation") == null )
-        {
-            setupTrackerIDDecoder(node);
-        }
-        else
+                
+        if ( node.getChild("segmentation") != null )
         {
             hasSegmentation = true;
         }
@@ -50,12 +45,7 @@
             throw new JDOMException("Invalid ID", x);
         }
     }
-    
-    private void setupTrackerIDDecoder(Element node)
-    {
-        setIDDecoder( new TrackerIDDecoder() );
-    }
-    
+        
     public Segmentation getSegmentation()
     {
         
@@ -84,7 +74,7 @@
         return decoder;
     }
     
-    private void setIDDecoder(IDDecoderBase d)
+    protected void setIDDecoder(IDDecoderBase d)
     {
         if ( d == null )
         {
CVSspam 0.2.8