Print

Print


Author: [log in to unmask]
Date: Fri May 29 15:46:07 2015
New Revision: 3068

Log:
Add property for disabling database alignment constants.  HPSJAVA-524

Modified:
    java/trunk/detector-model/src/main/java/org/lcsim/geometry/compact/converter/HPSTrackerBuilder.java

Modified: java/trunk/detector-model/src/main/java/org/lcsim/geometry/compact/converter/HPSTrackerBuilder.java
 =============================================================================
--- java/trunk/detector-model/src/main/java/org/lcsim/geometry/compact/converter/HPSTrackerBuilder.java	(original)
+++ java/trunk/detector-model/src/main/java/org/lcsim/geometry/compact/converter/HPSTrackerBuilder.java	Fri May 29 15:46:07 2015
@@ -29,16 +29,26 @@
     /**
      * Return <code>true</code> if database conditions are in usable state and there are alignment conditions to load
      * for the current run.
+     * <p>
+     * Loading SVT alignment conditions must also not be disabled via a system property.
      * 
      * @return <code>true</code> if database conditions are usable
      */
     boolean checkConditionsSystem() {
-        // Conditions system must be setup; manager must have the correct type; and alignment conditions must be present
-        // for run.
-        return ConditionsManager.isSetup()
-                && ConditionsManager.defaultInstance() instanceof DatabaseConditionsManager
-                && DatabaseConditionsManager.getInstance().getConditionsRecords().getConditionsKeys()
-                        .contains("svt_alignments");
+        return ConditionsManager.isSetup() && ConditionsManager.defaultInstance() instanceof DatabaseConditionsManager 
+                && DatabaseConditionsManager.getInstance().getConditionsRecords().getConditionsKeys().contains("svt_alignments") 
+                && !isSvtAlignmentConstantsDisabled();
+    }
+    
+    /**
+     * Return <code>true</code> if the property <i>disableSvtAlignmentConstants</i> is set indicating
+     * that alignment constants should never be read from the database and should come only from the 
+     * compact description. 
+     * 
+     * @return <code>true</code> if reading alignment constants from the database is disabled
+     */
+    boolean isSvtAlignmentConstantsDisabled() {
+        return System.getProperties().containsKey("disableSvtAlignmentConstants");
     }
 
     /**
@@ -50,7 +60,7 @@
     public HPSTrackerBuilder(boolean debug, Element node) {
         this.debug = debug;
         this.node = node;
-        // Is conditions system in a valid state for reading from the database?
+        // Is conditions system usable?
         if (checkConditionsSystem()) {
             LOGGER.info("alignment conditions will be read from database");
             try {
@@ -59,8 +69,7 @@
                 throw new RuntimeException("Error reading alignment parameters from conditions database.", e);
             }
         } else {
-            // The conditions system isn't initialized or there are no alignment conditions so fall back to
-            // using constants from the detector XML file.
+            // The conditions system isn't usable or reading from the database is explicitly disabled.
             LOGGER.info("mille parameters will be read from compact.xml file");
             initAlignmentParameters();
         }