Print

Print


Commit in GeomConverter/src/org/lcsim/geometry/compact/converter/pandora on MAIN
Main.java+10-131.20 -> 1.21
fix pandora converter to work when SamplingFractions conditions are not present

GeomConverter/src/org/lcsim/geometry/compact/converter/pandora
Main.java 1.20 -> 1.21
diff -u -r1.20 -r1.21
--- Main.java	16 Aug 2010 19:33:18 -0000	1.20
+++ Main.java	30 Sep 2010 18:18:17 -0000	1.21
@@ -55,7 +55,7 @@
  * geometry input format.
  * 
  * @author Jeremy McCormick <[log in to unmask]>
- * @version $Id: Main.java,v 1.20 2010/08/16 19:33:18 jeremy Exp $
+ * @version $Id: Main.java,v 1.21 2010/09/30 18:18:17 jeremy Exp $
  */
 public class Main implements Converter
 {
@@ -523,13 +523,7 @@
                         // Set cell thickness. 
                         layerElem.setAttribute("cellThickness", xthick.format(layer.getSensorThickness()));
 
-                        // Set basic sampling fraction.
-                        double samplingFraction = SamplingFractionManager.defaultInstance().getSamplingFraction(
-                                subdetector,
-                                i);
-                        layerElem.setAttribute("samplingFraction", xfrac.format(samplingFraction));
-
-                        // Set EM and HAD sampling fractions from CalorimeterCalibration conditions.
+                        // Set EM and HAD sampling fractions from CalorimeterCalibration conditions, if present.
                         if (haveCalCalib)
                         {
                             SamplingLayerRange layerRange = subdetectorCalorimeterConditions.getSamplingLayerRange(i);
@@ -547,9 +541,12 @@
                             }
                             layerElem.setAttribute("emSamplingFraction", xfrac.format(layerRange.getEMSampling()));
                             layerElem.setAttribute("hadSamplingFraction", xfrac.format(layerRange.getHADSampling()));
-                        } // Set from base SamplingFraction conditions.
+                        } 
+                        // Set from base SamplingFraction conditions.  May throw an exception if neither CalorimeterCalibration
+                        // or SamplingFractions conditions exists.
                         else
                         {
+                            double samplingFraction = SamplingFractionManager.defaultInstance().getSamplingFraction(subdetector, i);
                             layerElem.setAttribute("emSamplingFraction", xfrac.format(samplingFraction));
                             layerElem.setAttribute("hadSamplingFraction", xfrac.format(samplingFraction));
                         }
@@ -559,15 +556,15 @@
                     }
                 }
 
-                // Set digital attribute from conditions.
-                ConditionsSet conditions = conditionsManager.getConditions("SamplingFractions/" + subdetector.getName());
-
                 // Set digital flag.
                 try
                 {
+                    // Set digital attribute from conditions, if present.
+                    ConditionsSet conditions = conditionsManager.getConditions("SamplingFractions/" + subdetector.getName());
                     boolean isDigital = conditions.getBoolean("digital");
                     calorimeter.setAttribute("digital", String.valueOf(isDigital));
-                } catch (IllegalArgumentException x)
+                } 
+                catch (Exception x)
                 {
                     calorimeter.setAttribute("digital", "false");
                 }
CVSspam 0.2.8