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);