Commit in GeomConverter/src/org/lcsim/geometry on MAIN
Calorimeter.java+25-71.19 -> 1.20
Subdetector.java+2-21.24 -> 1.25
compact/converter/pandora/Main.java+3-31.28 -> 1.29
subdetector/AbstractCalorimeter.java+7-21.11 -> 1.12
           /AbstractLayeredSubdetector.java+54-261.8 -> 1.9
           /TestBeamCalorimeter.java+7-11.12 -> 1.13
+98-41
6 modified files
add methods for getting total rad and int lengths; minor refactoring

GeomConverter/src/org/lcsim/geometry
Calorimeter.java 1.19 -> 1.20
diff -u -r1.19 -r1.20
--- Calorimeter.java	7 Dec 2010 20:18:03 -0000	1.19
+++ Calorimeter.java	4 Jan 2011 21:58:51 -0000	1.20
@@ -7,7 +7,7 @@
  * important information.
  * 
  * @author Jeremy McCormick
- * @version $Id: Calorimeter.java,v 1.19 2010/12/07 20:18:03 jeremy Exp $      
+ * @version $Id: Calorimeter.java,v 1.20 2011/01/04 21:58:51 jeremy Exp $      
  * 
  */
 public interface Calorimeter extends Subdetector
@@ -166,6 +166,12 @@
      * @return The total layer thickness for the given layer.
      */
     public double getLayerThickness( int layern );
+    
+    /**
+     * Get the total thickness of the calorimeter.
+     * @return The calorimeter's thickness.
+     */
+    public double getTotalThickness();
 
     /**
      * Get the sensor thickness in mm. 
@@ -178,14 +184,28 @@
      * @param layern The layer number.
      * @return The number of interaction lengths for the given layer.
      */
-    public double getNumberOfInteractionLengths( int layern );
+    public double getInteractionLengths( int layern );
 
     /**
      * Get the number of radiation lengths in the layer.    
      * @param layern The layer number.
      * @return The number of radiation lengths for the given layer.
      */
-    public double getNumberOfRadiationLengths( int layern );
+    public double getRadiationLengths( int layern );
+    
+    /**
+     * Get the number of interaction lengths in the layers.     
+     * @param layern The layer number.
+     * @return The number of interaction lengths for the given layer.
+     */
+    public double getInteractionLengths();
+
+    /**
+     * Get the number of radiation lengths in the layers.    
+     * @param layern The layer number.
+     * @return The number of radiation lengths for the given layer.
+     */
+    public double getRadiationLengths();
 
     /**
      * Get MIP energy loss in GeV in this layer.     
@@ -205,11 +225,9 @@
      * @return The cell V dimension.
      */
     public double getCellSizeV();
-    
-    //
+        
     // public boolean isUnsegmented();
-    
-    //
+        
     // public boolean isOptical();
 
     // This would be useful but requires access to the conditions system.

GeomConverter/src/org/lcsim/geometry
Subdetector.java 1.24 -> 1.25
diff -u -r1.24 -r1.25
--- Subdetector.java	30 Nov 2010 00:16:28 -0000	1.24
+++ Subdetector.java	4 Jan 2011 21:58:51 -0000	1.25
@@ -27,7 +27,7 @@
      */
     @Deprecated
     public Layering getLayering();
-
+       
     public VisAttributes getVisAttributes();
 
     public boolean isTracker();
@@ -37,7 +37,7 @@
     public boolean isBarrel();
 
     public boolean isEndcap();
-
+    
     /**
      * 
      * @param localPos

GeomConverter/src/org/lcsim/geometry/compact/converter/pandora
Main.java 1.28 -> 1.29
diff -u -r1.28 -r1.29
--- Main.java	30 Nov 2010 00:16:29 -0000	1.28
+++ Main.java	4 Jan 2011 21:58:51 -0000	1.29
@@ -53,7 +53,7 @@
  * geometry input format.
  * 
  * @author Jeremy McCormick <[log in to unmask]>
- * @version $Id: Main.java,v 1.28 2010/11/30 00:16:29 jeremy Exp $
+ * @version $Id: Main.java,v 1.29 2011/01/04 21:58:51 jeremy Exp $
  */
 public class Main implements Converter
 {
@@ -606,8 +606,8 @@
         		coilInnerR = c.getInnerR()[0];
         		coilOuterR = c.getInnerR()[coilLayers-1] + c.getLayerThickness(coilLayers-1);
         		for (int layern = 0; layern != c.getNumberOfLayers(); layern++) {
-        			coilRadLen += c.getNumberOfRadiationLengths(layern);
-        			coilIntLen += c.getNumberOfInteractionLengths(layern);
+        			coilRadLen += c.getRadiationLengths(layern);
+        			coilIntLen += c.getInteractionLengths(layern);
         		}
         		//calculate average interaction/radiation length in coil material
         		coilRadLen = coilRadLen/(coilOuterR-coilInnerR);

GeomConverter/src/org/lcsim/geometry/subdetector
AbstractCalorimeter.java 1.11 -> 1.12
diff -u -r1.11 -r1.12
--- AbstractCalorimeter.java	30 Nov 2010 00:16:29 -0000	1.11
+++ AbstractCalorimeter.java	4 Jan 2011 21:58:51 -0000	1.12
@@ -11,7 +11,7 @@
  * @see org.lcsim.geometry.Calorimeter;
  *                                      
  * @author Jeremy McCormick
- * @version $Id: AbstractCalorimeter.java,v 1.11 2010/11/30 00:16:29 jeremy Exp $
+ * @version $Id: AbstractCalorimeter.java,v 1.12 2011/01/04 21:58:51 jeremy Exp $
  */
 abstract class AbstractCalorimeter extends AbstractLayeredSubdetector implements Calorimeter
 {
@@ -55,7 +55,12 @@
     {
         return true;
     }
-
+    
+    public double getTotalThickness()
+    {
+        return layering.getThickness();
+    }
+    
     /**
      * Get the cell U dimension from the segmentation.
      * @return The cell U dimension.

GeomConverter/src/org/lcsim/geometry/subdetector
AbstractLayeredSubdetector.java 1.8 -> 1.9
diff -u -r1.8 -r1.9
--- AbstractLayeredSubdetector.java	30 Nov 2010 00:16:29 -0000	1.8
+++ AbstractLayeredSubdetector.java	4 Jan 2011 21:58:51 -0000	1.9
@@ -27,16 +27,19 @@
 
 /**
  * @author Jeremy McCormick <[log in to unmask]>
- * @version $Id: AbstractLayeredSubdetector.java,v 1.8 2010/11/30 00:16:29 jeremy Exp $
+ * @version $Id: AbstractLayeredSubdetector.java,v 1.9 2011/01/04 21:58:51 jeremy Exp $
  */
-abstract class AbstractLayeredSubdetector extends AbstractSubdetector implements Layered
+abstract public class AbstractLayeredSubdetector extends AbstractSubdetector implements Layered
 {
     protected Layering layering;
 
-    private List< Double > nrad;
-    private List< Double > nlam;
-    private List< Double > de;
-    private Map< String, Double > dedxmap = new HashMap< String, Double >();
+    private List<Double> nrad;
+    private List<Double> nlam;
+    private List<Double> de;
+    private Map<String, Double> dedxmap = new HashMap<String, Double>();
+    
+    private double intLens;
+    private double radLens;
 
     /**
      * Creates a new instance of a LayeredSubdetector
@@ -47,9 +50,9 @@
         build( node );
 
         // Initialize parameter arrays using layer count.
-        nrad = new ArrayList< Double >( this.getLayering().getNumberOfLayers() );
-        de = new ArrayList< Double >( this.getLayering().getNumberOfLayers() );
-        nlam = new ArrayList< Double >( this.getLayering().getNumberOfLayers() );
+        nrad = new ArrayList<Double>( this.getLayering().getNumberOfLayers() );
+        de = new ArrayList<Double>( this.getLayering().getNumberOfLayers() );
+        nlam = new ArrayList<Double>( this.getLayering().getNumberOfLayers() );
 
         // Compute layer derived quantities.
         computeLayerParameters();
@@ -77,10 +80,17 @@
     {
         return layering;
     }
+    
+    public double getTotalThickess()
+    {
+        return layering.getThickness();
+    }
 
     protected void setLayering( Layering layering )
     {
-        this.layering = layering;
+        // May only be called once at initialization time.
+        if ( this.layering == null )
+            this.layering = layering;
     }
 
     public Layer getLayer( int layern )
@@ -137,24 +147,13 @@
             {
                 Material m = slice.getMaterial();
                 String materialName = m.getName();
-                // String materialName = slice.getMaterial().getName();
-                // Material m = ms.get( materialName );
-                // if (m == null)
-                // throw new RuntimeException( "Material <" + materialName +
-                // "> not found.");
                 double dedx;
                 if ( dedxmap.containsKey( materialName ) )
                     dedx = dedxmap.get( materialName ).doubleValue();
                 else
                 {
-                    // dedx = BetheBlochCalculator.computeBetheBloch( m, p, 105., 1., .01
-                    // ) / 10000.;
-                    // BetheBlochCalculator.computeBetheBloch( material, p, mass, charge,
-                    // distance )
-
                     // Kludge to get material state to avoid using IMaterial objects that
-                    // are not
-                    // instantiated yet.
+                    // are not instantiated yet.
                     MaterialState state = m.getState();
                     IMaterial.State istate = null;
                     if ( state == MaterialState.GAS )
@@ -173,8 +172,17 @@
                     {
                         istate = IMaterial.Unknown;
                     }
-                    dedx = BetheBlochCalculator.computeBetheBloch( m.getZeff(), m.getAeff(), m.getDensity(), istate, m
-                            .getPressure(), m.getTemperature(), p, 105., 1., .01 ) / 10000;
+                    dedx = BetheBlochCalculator.computeBetheBloch( 
+                            m.getZeff(), 
+                            m.getAeff(), 
+                            m.getDensity(), 
+                            istate, 
+                            m.getPressure(), 
+                            m.getTemperature(), 
+                            p, 
+                            105., 
+                            1., 
+                            .01 ) / 10000;
                     dedxmap.put( materialName, new Double( dedx ) );
                 }
                 double dx = slice.getThickness();
@@ -186,14 +194,34 @@
             nlam.add( j, new Double( xlam / 10. ) );
             de.add( j, new Double( xde ) );
         }
+        
+        // Compute totals for all layers.
+        for ( double lam : nlam )
+        {
+            intLens += lam;
+        }
+        for ( double rad : nrad )
+        {
+            radLens += rad;
+        }
+    }
+    
+    public double getInteractionLengths()
+    {
+        return intLens;
+    }
+    
+    public double getRadiationLengths()
+    {
+        return radLens;
     }
 
-    public double getNumberOfInteractionLengths( int layern )
+    public double getInteractionLengths( int layern )
     {
         return nlam.get( layern );
     }
 
-    public double getNumberOfRadiationLengths( int layern )
+    public double getRadiationLengths( int layern )
     {
         return nrad.get( layern );
     }

GeomConverter/src/org/lcsim/geometry/subdetector
TestBeamCalorimeter.java 1.12 -> 1.13
diff -u -r1.12 -r1.13
--- TestBeamCalorimeter.java	30 Nov 2010 00:16:29 -0000	1.12
+++ TestBeamCalorimeter.java	4 Jan 2011 21:58:51 -0000	1.13
@@ -7,7 +7,7 @@
 
 /**
  * @author Jeremy McCormick <[log in to unmask]>
- * @version $Id: TestBeamCalorimeter.java,v 1.12 2010/11/30 00:16:29 jeremy Exp $
+ * @version $Id: TestBeamCalorimeter.java,v 1.13 2011/01/04 21:58:51 jeremy Exp $
  */
 // TODO Need to make this class inherit from AbstractCalorimeter.
 public class TestBeamCalorimeter extends AbstractTestBeam implements Calorimeter
@@ -51,4 +51,10 @@
     {
         return 0;
     }
+    
+    // FIXME Duplicate implementation w.r.t. AbstractCalorimeter.
+    public double getTotalThickness()
+    {
+        return layering.getThickness();
+    }
 }
\ No newline at end of file
CVSspam 0.2.8