Print

Print


Author: [log in to unmask]
Date: Thu Jan  1 23:16:30 2015
New Revision: 1824

Log:
Detector setup classes now implement ConditionsListener so they are less coupled to the ConditionsManager.

Removed:
    java/trunk/conditions/src/main/java/org/hps/conditions/svt/TestRunSvtDetectorSetup.java
Modified:
    java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalDetectorSetup.java
    java/trunk/conditions/src/test/java/org/hps/conditions/svt/TestRunSvtDetectorSetupTest.java

Modified: java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalDetectorSetup.java
 =============================================================================
--- java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalDetectorSetup.java	(original)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalDetectorSetup.java	Thu Jan  1 23:16:30 2015
@@ -4,8 +4,11 @@
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
+import org.hps.conditions.database.DatabaseConditionsManager;
 import org.hps.conditions.ecal.EcalChannel.EcalChannelCollection;
 import org.hps.conditions.ecal.EcalChannel.GeometryId;
+import org.lcsim.conditions.ConditionsEvent;
+import org.lcsim.conditions.ConditionsListener;
 import org.lcsim.detector.converter.compact.EcalCrystal;
 import org.lcsim.detector.identifier.IIdentifierHelper;
 import org.lcsim.geometry.Subdetector;
@@ -16,13 +19,41 @@
  * detector.
  * @author Jeremy McCormick <[log in to unmask]>
  */
-public final class EcalDetectorSetup {
+public final class EcalDetectorSetup implements ConditionsListener {
 
-    static Logger logger = LogUtil.create(EcalDetectorSetup.class);
+    private static Logger logger = LogUtil.create(EcalDetectorSetup.class);
+    
+    private String ecalName = "Ecal";
+    private boolean enabled = true;
+    
+    public EcalDetectorSetup(String ecalName) {
+        this.ecalName = ecalName;
+    }
     
     public void setLogLevel(Level level) {
         logger.setLevel(level);
         logger.getHandlers()[0].setLevel(level);
+    }
+    
+    public void setEcalName(String ecalName) {
+        this.ecalName = ecalName;
+    }
+    
+    public void setEnabled(boolean enabled) {
+        this.enabled = enabled;
+    }
+    
+    @Override
+    public void conditionsChanged(ConditionsEvent event) {
+        if (enabled) {
+            logger.info("setting up ECAL detector conditions");
+            DatabaseConditionsManager manager = (DatabaseConditionsManager) event.getConditionsManager();
+            Subdetector subdetector = manager.getDetectorObject().getSubdetector(ecalName); 
+            EcalConditions conditions = manager.getConditionsData(EcalConditions.class, "ecal_conditions");
+            load(subdetector, conditions);
+        } else {
+            
+        }
     }
         
     /**
@@ -30,7 +61,7 @@
      * @param detector The detector object.
      * @param conditions The conditions object.
      */
-    public void load(Subdetector subdetector, EcalConditions conditions) {
+    void load(Subdetector subdetector, EcalConditions conditions) {
 
         logger.info("loading ECAL conditions onto subdetector " + subdetector.getName());
         

Modified: java/trunk/conditions/src/test/java/org/hps/conditions/svt/TestRunSvtDetectorSetupTest.java
 =============================================================================
--- java/trunk/conditions/src/test/java/org/hps/conditions/svt/TestRunSvtDetectorSetupTest.java	(original)
+++ java/trunk/conditions/src/test/java/org/hps/conditions/svt/TestRunSvtDetectorSetupTest.java	Thu Jan  1 23:16:30 2015
@@ -5,8 +5,6 @@
 import junit.framework.TestCase;
 
 import org.hps.conditions.database.DatabaseConditionsManager;
-import org.hps.conditions.svt.TestRunSvtConditions;
-import org.hps.conditions.svt.TestRunSvtDetectorSetup;
 import org.lcsim.detector.tracker.silicon.HpsTestRunSiSensor;
 import org.lcsim.geometry.Detector;
 
@@ -46,13 +44,6 @@
 
         // Get the detector.
         Detector detector = conditionsManager.getCachedConditions(Detector.class, "compact.xml").getCachedData();
-
-        // Get all test run SVT conditions.
-        TestRunSvtConditions conditions = conditionsManager.getCachedConditions(TestRunSvtConditions.class, "svt_conditions").getCachedData();
-
-        // Load the test run SVT conditions onto detector.
-        TestRunSvtDetectorSetup loader = new TestRunSvtDetectorSetup();
-        loader.load(detector.getSubdetector(SVT_SUBDETECTOR_NAME), conditions);
 
         // Check sensor data.
         List<HpsTestRunSiSensor> sensors = detector.getSubdetector(SVT_SUBDETECTOR_NAME).getDetectorElement().findDescendants(HpsTestRunSiSensor.class);