Print

Print


Commit in GeomConverter/src/org/lcsim/detector/converter/compact on MAIN
SiTrackerEndcapConverter.java+19-201.23 -> 1.24
JM: make module parameters map a local variable

GeomConverter/src/org/lcsim/detector/converter/compact
SiTrackerEndcapConverter.java 1.23 -> 1.24
diff -u -r1.23 -r1.24
--- SiTrackerEndcapConverter.java	21 Apr 2008 20:01:18 -0000	1.23
+++ SiTrackerEndcapConverter.java	6 May 2008 22:59:37 -0000	1.24
@@ -58,24 +58,15 @@
  * Converter for SiTrackerEndcap.
  *
  * @author Jeremy McCormick, Tim Nelson
- * @version $Id: SiTrackerEndcapConverter.java,v 1.23 2008/04/21 20:01:18 jeremy Exp $
+ * @version $Id: SiTrackerEndcapConverter.java,v 1.24 2008/05/06 22:59:37 jeremy Exp $
  */
 
 public class SiTrackerEndcapConverter
         extends AbstractSubdetectorConverter
         implements ISubdetectorConverter
 {
-    /*
-    public IDetectorElement makeSubdetectorDetectorElement(Detector detector, Subdetector subdetector)
-    {
-        IDetectorElement endcapDE = new DetectorElement(subdetector.getName(), detector.getDetectorElement());
-        subdetector.setDetectorElement(endcapDE);
-        return endcapDE;
-    }
-     */
-    
-    //private ModuleParameters moduleParameters = null;
-	private Map<String, ModuleParameters> moduleParameters = new HashMap<String, ModuleParameters>();
+	public SiTrackerEndcapConverter()
+	{}
     
     public IIdentifierHelper makeIdentifierHelper(Subdetector subdetector, SystemMap systemMap)
     {
@@ -84,6 +75,10 @@
     
     public void convert(Subdetector subdet, Detector detector)
     {
+    	System.out.println("converting " + subdet.getName());
+    	
+    	Map<String, ModuleParameters> moduleParameters = new HashMap<String, ModuleParameters>();
+    	
         IPhysicalVolume trackingPV = detector.getTrackingVolume();
         ILogicalVolume trackingLV = trackingPV.getLogicalVolume();
         
@@ -120,8 +115,14 @@
         
         // Set static module parameters.
         for (Object n : node.getChildren("module"))
-        {
-        	Element e = (Element)n;
+        {        	
+        	Element e = (Element)n;        	
+        	System.out.println("processing module");
+        	System.out.println("e="+e);
+        	System.out.println("name="+e.getAttributeValue("name"));
+        	if (moduleParameters == null)
+        		throw new RuntimeException("PANIC!  moduleParameters is null!");
+        	ModuleParameters params = new ModuleParameters(e);
         	moduleParameters.put(e.getAttributeValue("name"), new ModuleParameters(e));
         }        
         
@@ -154,7 +155,7 @@
                 throw new RuntimeException(x);
             }
             
-            ILogicalVolume layerLV = makeLayer(detector,subdet,innerR,outerR,thickness,nwedges,layerElement);
+            ILogicalVolume layerLV = makeLayer(detector,subdet,innerR,outerR,thickness,nwedges,layerElement,moduleParameters);
             
             double layerZ = innerZ + thickness / 2;
             
@@ -243,10 +244,7 @@
         catch (Exception x)
         {
             throw new RuntimeException(x);
-        }
-        
-        // Set cached module parameters to null for GC.
-        moduleParameters = null;
+        }        
     }
     
     private ILogicalVolume makeWedge(
@@ -284,7 +282,8 @@
             double outerR,
             double thickness,
             int nwedges,
-            Element layerElement
+            Element layerElement,
+            Map<String, ModuleParameters> moduleParameters
             )
     {
         int layern;
CVSspam 0.2.8