GeomConverter/src/org/lcsim/geometry/compact/converter/pandora
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");
}