3 added + 4 modified, total 7 files
java/trunk/conditions/src/main/java/org/hps/conditions
--- java/trunk/conditions/src/main/java/org/hps/conditions/DatabaseConditionsManager.java 2014-06-23 21:33:22 UTC (rev 733)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/DatabaseConditionsManager.java 2014-06-23 21:34:21 UTC (rev 734)
@@ -61,10 +61,9 @@
ConditionsSeriesConverter conditionsSeriesConverter = new ConditionsSeriesConverter(this);
/**
- * Class constructor, which is only package accessible. Users should call
- * {@link #getInstance()} to access the manager.
+ * Class constructor.
*/
- DatabaseConditionsManager() {
+ public DatabaseConditionsManager() {
registerConditionsConverter(new DetectorConditionsConverter());
baseReader = new BaseClasspathConditionsReader();
}
@@ -98,7 +97,7 @@
/**
* Register this conditions manager as the global default.
*/
- void register() {
+ public void register() {
ConditionsManager.setDefaultConditionsManager(this);
}
java/trunk/conditions/src/main/java/org/hps/conditions
--- java/trunk/conditions/src/main/java/org/hps/conditions/TableConstants.java 2014-06-23 21:33:22 UTC (rev 733)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/TableConstants.java 2014-06-23 21:34:21 UTC (rev 734)
@@ -39,6 +39,9 @@
/** ECAL time shifts. */
public static final String ECAL_TIME_SHIFTS = "ecal_time_shifts";
+
+ /** ECAL LED setup. */
+ public static final String ECAL_LEDS = "ecal_leds";
/** Conditions key for combined ECal conditions. */
public static final String SVT_CONDITIONS = "svt_conditions";
java/trunk/conditions/src/main/java/org/hps/conditions/config
--- java/trunk/conditions/src/main/java/org/hps/conditions/config/DevDatabaseReadOnlyConfig.java (rev 0)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/config/DevDatabaseReadOnlyConfig.java 2014-06-23 21:34:21 UTC (rev 734)
@@ -0,0 +1,44 @@
+package org.hps.conditions.config;
+
+import org.hps.conditions.DatabaseConditionsManager;
+import org.lcsim.conditions.ConditionsManager.ConditionsNotFoundException;
+
+/**
+ * Convenience class for setting up access to the conditions dev database.
+ * @author Jeremy McCormick <[log in to unmask]>
+ */
+public class DevDatabaseReadOnlyConfig {
+
+ private static String xmlConfig = "/org/hps/conditions/config/conditions_dev.xml";
+ private static String connectionProp = "/org/hps/conditions/config/conditions_dev.properties";
+ private DatabaseConditionsManager manager;
+
+ /**
+ * Constructor.
+ */
+ public DevDatabaseReadOnlyConfig() {
+ }
+
+ /**
+ * Setup the XML config and connection properties on the conditions manager.
+ */
+ public void setup() {
+ manager = new DatabaseConditionsManager();
+ manager.configure(xmlConfig);
+ manager.setConnectionResource(connectionProp);
+ manager.register();
+ }
+
+ /**
+ * Load a specific detector and run number to cache matching conditions.
+ * @param detectorName The name of the detector.
+ * @param runNumber The run number.
+ */
+ public void load(String detectorName, int runNumber) {
+ try {
+ manager.setDetector(detectorName, runNumber);
+ } catch (ConditionsNotFoundException e) {
+ throw new RuntimeException(e);
+ }
+ }
+}
\ No newline at end of file
java/trunk/conditions/src/main/java/org/hps/conditions/ecal
--- java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalConverterRegistry.java 2014-06-23 21:33:22 UTC (rev 733)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalConverterRegistry.java 2014-06-23 21:34:21 UTC (rev 734)
@@ -5,6 +5,7 @@
import org.hps.conditions.ecal.EcalCalibration.EcalCalibrationCollection;
import org.hps.conditions.ecal.EcalChannel.EcalChannelCollection;
import org.hps.conditions.ecal.EcalGain.EcalGainCollection;
+import org.hps.conditions.ecal.EcalLed.EcalLedCollection;
import org.hps.conditions.ecal.EcalTimeShift.EcalTimeShiftCollection;
/**
@@ -46,4 +47,10 @@
return EcalTimeShiftCollection.class;
}
}
+
+ public static final class EcalLedConverter extends ConditionsObjectConverter<EcalLed> {
+ public Class getType() {
+ return EcalLedCollection.class;
+ }
+ }
}
java/trunk/conditions/src/main/java/org/hps/conditions/ecal
--- java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalLed.java (rev 0)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalLed.java 2014-06-23 21:34:21 UTC (rev 734)
@@ -0,0 +1,66 @@
+package org.hps.conditions.ecal;
+
+import org.hps.conditions.AbstractConditionsObject;
+import org.hps.conditions.ConditionsObjectCollection;
+
+/**
+ * A conditions class for representing the setup of the LED system
+ * in the ECAL for one channel.
+ * @author Jeremy McCormick <[log in to unmask]>
+ */
+public class EcalLed extends AbstractConditionsObject {
+
+ /**
+ * Generic collection class for these objects.
+ */
+ public static class EcalLedCollection extends ConditionsObjectCollection<EcalLed> {
+ }
+
+ /**
+ * Get the ECAL channel ID.
+ * @return The ECAL channel ID.
+ */
+ int getEcalChannelId() {
+ return getFieldValue("ecal_channel_id");
+ }
+
+ /**
+ * Get the crate number assigned to this crystal.
+ * @return The crate number.
+ */
+ int getCrateNumber() {
+ return getFieldValue("crate");
+ }
+
+ /**
+ * Get the LED number assigned to this crystal.
+ * @return The LED number.
+ */
+ int getLedNumber() {
+ return getFieldValue("number");
+ }
+
+ /**
+ * Get the time delay of this channel.
+ * @return The time delay.
+ */
+ float getTimeDelay() {
+ return getFieldValue("time_delay");
+ }
+
+ /**
+ * Get the amplitude high setting.
+ * @return The amplitude high setting.
+ */
+ float getAmplitudeHigh() {
+ return getFieldValue("amplitude_high");
+ }
+
+ /**
+ * Get the amplitude low setting.
+ * @return The amplitude low setting.
+ */
+ float getAmplitudeLow() {
+ return getFieldValue("amplitude_low");
+ }
+}
java/trunk/conditions/src/main/resources/org/hps/conditions/config
--- java/trunk/conditions/src/main/resources/org/hps/conditions/config/conditions_dev.xml 2014-06-23 21:33:22 UTC (rev 733)
+++ java/trunk/conditions/src/main/resources/org/hps/conditions/config/conditions_dev.xml 2014-06-23 21:34:21 UTC (rev 734)
@@ -22,6 +22,7 @@
<converter class="org.hps.conditions.ecal.EcalConverterRegistry$EcalGainConverter"/>
<converter class="org.hps.conditions.ecal.EcalConverterRegistry$EcalCalibrationConverter"/>
<converter class="org.hps.conditions.ecal.EcalConverterRegistry$EcalTimeShiftConverter"/>
+ <converter class="org.hps.conditions.ecal.EcalConverterRegistry$EcalLedConverter"/>
<!-- Beam conditions converter -->
<converter class="org.hps.conditions.beam.BeamConverterRegistry$BeamCurrentConverter"/>
@@ -195,6 +196,21 @@
</fields>
</table>
+ <table key="ecal_leds" name="ecal_leds">
+ <classes>
+ <object class="org.hps.conditions.ecal.EcalLed"/>
+ <collection class="org.hps.conditions.ecal.EcalLed$EcalLedCollection"/>
+ </classes>
+ <fields>
+ <field name="ecal_channel_id"/>
+ <field name="crate"/>
+ <field name="number"/>
+ <field name="time_delay"/>
+ <field name="amplitude_high"/>
+ <field name="amplitude_low"/>
+ </fields>
+ </table>
+
<table key="beam_current" name="beam_current">
<classes>
<object class="org.hps.conditions.beam.BeamCurrent"/>
java/trunk/conditions/src/test/java/org/hps/conditions/ecal
--- java/trunk/conditions/src/test/java/org/hps/conditions/ecal/EcalLedTest.java (rev 0)
+++ java/trunk/conditions/src/test/java/org/hps/conditions/ecal/EcalLedTest.java 2014-06-23 21:34:21 UTC (rev 734)
@@ -0,0 +1,37 @@
+package org.hps.conditions.ecal;
+
+import junit.framework.TestCase;
+
+import org.hps.conditions.DatabaseConditionsManager;
+import org.hps.conditions.TableConstants;
+import org.hps.conditions.config.DevDatabaseReadOnlyConfig;
+import org.hps.conditions.ecal.EcalLed.EcalLedCollection;
+
+/**
+ * A very basic test to make sure ECAL LED information is
+ * readable from the conditions dev database.
+ * @author Jeremy McCormick <[log in to unmask]>
+ */
+public class EcalLedTest extends TestCase {
+
+ DevDatabaseReadOnlyConfig db = new DevDatabaseReadOnlyConfig();
+
+ public void setUp() {
+ db.setup();
+ db.load("HPS-TestRun-v5", 1351);
+ }
+
+ public void testEcalLed() {
+ DatabaseConditionsManager manager = DatabaseConditionsManager.getInstance();
+ EcalLedCollection collection = manager.getConditionsData(EcalLedCollection.class, TableConstants.ECAL_LEDS);
+ for (EcalLed led : collection) {
+ System.out.println("ECAL LED info ...");
+ System.out.println("ecal_channel_id: " + led.getEcalChannelId());
+ System.out.println("crate: " + led.getCrateNumber());
+ System.out.println("number: " + led.getLedNumber());
+ System.out.println("time_delay: " + led.getTimeDelay());
+ System.out.println("amplitude_low: " + led.getAmplitudeLow());
+ System.out.println("amplitude_high: " + led.getAmplitudeHigh());
+ }
+ }
+}
SVNspam 0.1