Print

Print


Commit in java/trunk/conditions/src on MAIN
main/java/org/hps/conditions/DatabaseConditionsManager.java+3-4733 -> 734
                            /TableConstants.java+3733 -> 734
main/java/org/hps/conditions/config/DevDatabaseReadOnlyConfig.java+44added 734
main/java/org/hps/conditions/ecal/EcalConverterRegistry.java+7733 -> 734
                                 /EcalLed.java+66added 734
main/resources/org/hps/conditions/config/conditions_dev.xml+16733 -> 734
test/java/org/hps/conditions/ecal/EcalLedTest.java+37added 734
+176-4
3 added + 4 modified, total 7 files
Add implementation of ECAL LED condition.  Using only dummy data now.

java/trunk/conditions/src/main/java/org/hps/conditions
DatabaseConditionsManager.java 733 -> 734
--- 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
TableConstants.java 733 -> 734
--- 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
DevDatabaseReadOnlyConfig.java added at 734
--- 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
EcalConverterRegistry.java 733 -> 734
--- 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
EcalLed.java added at 734
--- 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
conditions_dev.xml 733 -> 734
--- 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
EcalLedTest.java added at 734
--- 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