Print

Print


Author: [log in to unmask]
Date: Thu Jan  1 23:20:40 2015
New Revision: 1826

Log:
Handle bad channel sets with a series rather than single collection.

Modified:
    java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalBadChannel.java
    java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalConditionsConverter.java
    java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtBadChannel.java

Modified: java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalBadChannel.java
 =============================================================================
--- java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalBadChannel.java	(original)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalBadChannel.java	Thu Jan  1 23:20:40 2015
@@ -12,7 +12,7 @@
  * should not be used in reconstruction.
  */
 @Table(names = {"ecal_bad_channels"})
-@Converter(multipleCollectionsAction = MultipleCollectionsAction.COMBINE)
+@Converter(multipleCollectionsAction = MultipleCollectionsAction.LAST_UPDATED)
 public final class EcalBadChannel extends AbstractConditionsObject {
 
     public static class EcalBadChannelCollection extends AbstractConditionsObjectCollection<EcalBadChannel> {

Modified: java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalConditionsConverter.java
 =============================================================================
--- java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalConditionsConverter.java	(original)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalConditionsConverter.java	Thu Jan  1 23:20:40 2015
@@ -2,6 +2,8 @@
 
 import java.util.logging.Logger;
 
+import org.hps.conditions.api.ConditionsObjectCollection;
+import org.hps.conditions.api.ConditionsSeries;
 import org.hps.conditions.database.DatabaseConditionsManager;
 import org.hps.conditions.ecal.EcalBadChannel.EcalBadChannelCollection;
 import org.hps.conditions.ecal.EcalCalibration.EcalCalibrationCollection;
@@ -33,9 +35,9 @@
     protected EcalGainCollection getEcalGainCollection(DatabaseConditionsManager manager) {
         return manager.getCollection(EcalGainCollection.class);
     }
-    
-    protected EcalBadChannelCollection getEcalBadChannelCollection(DatabaseConditionsManager manager) {
-        return manager.getCollection(EcalBadChannelCollection.class);
+        
+    protected ConditionsSeries<EcalBadChannel, EcalBadChannelCollection> getEcalBadChannelSeries(DatabaseConditionsManager manager) {
+        return manager.getConditionsSeries(EcalBadChannelCollection.class);
     }
     
     protected EcalCalibrationCollection getEcalCalibrationCollection(DatabaseConditionsManager manager) {
@@ -72,18 +74,12 @@
             conditions.getChannelConstants(channel).setGain(gain);
         }
 
-        // Get the ECal bad channels and add them to the conditions set
-        EcalBadChannelCollection badChannels = null;
-        try {
-            badChannels = getEcalBadChannelCollection(databaseConditionsManager);
-        } catch (RuntimeException e) {
-            databaseConditionsManager.getLogger().warning(e.getMessage());
-        }
-        if (badChannels != null) {
+        ConditionsSeries<EcalBadChannel, EcalBadChannelCollection> badChannelSeries = 
+                getEcalBadChannelSeries(databaseConditionsManager);
+        // FIXME: How to get EcalBadChannelCollection here instead for the collection type?
+        //        API of ConditionsSeries and ConditionsSeriesConverter needs to be changed!
+        for (ConditionsObjectCollection<EcalBadChannel> badChannels : badChannelSeries) {
             for (EcalBadChannel badChannel : badChannels) {
-                if (badChannel == null) {
-                    throw new RuntimeException("The badChannel points to null.");
-                }
                 ChannelId channelId = new ChannelId(new int[] { badChannel.getChannelId() });
                 EcalChannel channel = channels.findChannel(channelId);
                 conditions.getChannelConstants(channel).setBadChannel(true);

Modified: java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtBadChannel.java
 =============================================================================
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtBadChannel.java	(original)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtBadChannel.java	Thu Jan  1 23:20:40 2015
@@ -8,7 +8,7 @@
 import org.hps.conditions.database.Table;
 
 @Table(names = {"svt_bad_channels", "test_run_svt_bad_channels"})
-@Converter(multipleCollectionsAction = MultipleCollectionsAction.COMBINE)
+@Converter(multipleCollectionsAction = MultipleCollectionsAction.LAST_CREATED)
 public final class SvtBadChannel extends AbstractConditionsObject {
 
     public static class SvtBadChannelCollection extends AbstractConditionsObjectCollection<SvtBadChannel> {