1 added + 6 modified, total 7 files
java/trunk/conditions/src/main/java/org/hps/conditions
--- java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsConverterRegistery.java 2014-03-18 16:18:13 UTC (rev 312)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsConverterRegistery.java 2014-03-18 19:10:30 UTC (rev 313)
@@ -52,6 +52,7 @@
manager.registerConditionsConverter(new SvtCalibrationConverter(factory));
// SVT channel map.
+ // TODO: Needs to support unique collection IDs.
manager.registerConditionsConverter(new SvtChannelCollectionConverter(factory));
// SVT time shift by sensor.
@@ -69,22 +70,20 @@
// ECAL calibrations.
manager.registerConditionsConverter(new EcalCalibrationConverter(factory));
- // /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
- // TODO: Remaining to convert to new API...
- // /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
-
// ECAL combined conditions.
manager.registerConditionsConverter(new EcalConditionsConverter(factory));
// Beam current condition.
manager.registerConditionsConverter(new BeamCurrentConverter(factory));
- // ECAL channel map.
- manager.registerConditionsConverter(new EcalChannelMapConverter(factory));
+ // /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
+ // TODO: Remaining to convert to new API...
+ // /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
- ///////////////////////////////////////////////////////////////////////////////
- // This one will be a pain so convert to new API last once others are working.
// SVT DAQ map.
manager.registerConditionsConverter(new SvtDaqMapConverter(factory));
+
+ // ECAL channel map.
+ manager.registerConditionsConverter(new EcalChannelMapConverter(factory));
}
}
java/trunk/conditions/src/main/java/org/hps/conditions
--- java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsTableRegistry.java 2014-03-18 16:18:13 UTC (rev 312)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsTableRegistry.java 2014-03-18 19:10:30 UTC (rev 313)
@@ -71,6 +71,14 @@
fields.add("svt_channel_id");
addTableMetaData(new ConditionsTableMetaData(ConditionsTableConstants.SVT_BAD_CHANNELS, fields));
+ // SVT DAQ map
+ fields = new HashSet<String>();
+ fields.add("half");
+ fields.add("layer");
+ fields.add("fpga");
+ fields.add("hybrid");
+ addTableMetaData(new ConditionsTableMetaData(ConditionsTableConstants.SVT_DAQ_MAP, fields));
+
// ECal bad channels
fields = new HashSet<String>();
fields.add("ecal_channel_id");
java/trunk/conditions/src/main/java/org/hps/conditions/svt
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtCalibrationConverter.java 2014-03-18 16:18:13 UTC (rev 312)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtCalibrationConverter.java 2014-03-18 19:10:30 UTC (rev 313)
@@ -45,9 +45,8 @@
int collectionId = record.getFieldValue();
// Objects for building the return value.
- ConditionsTableMetaData tableMetaData = _objectFactory.getTableRegistry().getTableMetaData(tableName);
SvtCalibrationCollection collection =
- new SvtCalibrationCollection(tableMetaData, collectionId, true);
+ new SvtCalibrationCollection(this.getTableMetaData(tableName), collectionId, true);
// Get a connection from the manager.
ConnectionManager connectionManager = getConnectionManager();
java/trunk/conditions/src/main/java/org/hps/conditions/svt
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtConditionsLoader.java 2014-03-18 16:18:13 UTC (rev 312)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtConditionsLoader.java 2014-03-18 19:10:30 UTC (rev 313)
@@ -38,9 +38,9 @@
// Get info from the DAQ map about this sensor.
Pair<Integer, Integer> daqPair = null;
- int half = SvtDaqMap.TOP;
+ int half = SvtDaqMap.TOP_HALF;
if (sensor.isBottomLayer()) {
- half = SvtDaqMap.BOTTOM;
+ half = SvtDaqMap.BOTTOM_HALF;
}
daqPair = daqMap.get(half, layerNumber);
if (daqPair == null) {
java/trunk/conditions/src/main/java/org/hps/conditions/svt
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtDaqMap.java 2014-03-18 16:18:13 UTC (rev 312)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtDaqMap.java 2014-03-18 19:10:30 UTC (rev 313)
@@ -1,8 +1,7 @@
package org.hps.conditions.svt;
-import java.util.HashMap;
-import java.util.Map;
-
+import org.hps.conditions.ConditionsObjectCollection;
+import org.hps.conditions.ConditionsTableMetaData;
import org.lcsim.hps.util.Pair;
/**
@@ -10,56 +9,32 @@
* for the top and bottom halves of the detector.
* @author Jeremy McCormick <[log in to unmask]>
*/
-public class SvtDaqMap {
-
- // fields: half, layer, fpga, hybrid
+public class SvtDaqMap extends ConditionsObjectCollection<SvtDaqMapping> {
/**
* Flag values for top or bottom half.
- * FIXME: This should probably be an enum but it is simpler to use int values for now.
*/
- static final int TOP = 0;
- static final int BOTTOM = 1;
-
- /**
- * This is the data structure used for the mapping of layer numbers to DAQ pair by top or bottom half.
- * The mapping is the following: half => layer => pair(fpga, hybrid)
- */
- @SuppressWarnings("serial")
- static private class LayerMap extends HashMap<Integer,HashMap<Integer,Pair<Integer,Integer>>> {
- }
-
- /**
- * Object that holds the DAQ map data.
- */
- LayerMap layerMap = new LayerMap();
+ public static final int TOP_HALF = 0;
+ public static final int BOTTOM_HALF = 1;
- /**
- * Class constructor.
- */
- SvtDaqMap() {
- layerMap.put(TOP, new HashMap<Integer,Pair<Integer,Integer>>());
- layerMap.put(BOTTOM, new HashMap<Integer,Pair<Integer,Integer>>());
+ public SvtDaqMap(ConditionsTableMetaData tableMetaData, int collectionId, boolean isReadOnly) {
+ super(tableMetaData, collectionId, isReadOnly);
}
-
+
/**
- * Add a record to the DAQ map.
- * @param half The value indicating top or bottom half of the detector.
- * @param layerNumber The layer number.
- */
- void add(int half, int layerNumber, Pair<Integer,Integer> pair) {
- layerMap.get(half).put(layerNumber, pair);
- }
-
- /**
- * Get a DAQ pair (FPGA, hybrid) by layer number.
+ * Get a DAQ pair (FPGA, hybrid) by top/bottom number and layer number.
* @param half Value indicating top or bottom half of detector.
* @param layerNumber The layer number.
* @return The DAQ pair for the half and layer number or null if does not exist.
*/
Pair<Integer,Integer> get(int half, int layerNumber) {
- return layerMap.get(half).get(layerNumber);
- }
+ for (SvtDaqMapping object : this.getObjects()) {
+ if (object.getHalf() == half && object.getLayerNumber() == layerNumber) {
+ return new Pair<Integer, Integer>(object.getFpgaNumber(), object.getHybridNumber());
+ }
+ }
+ return null;
+ }
/**
* Convert this object to a string.
@@ -77,18 +52,15 @@
buff.append('\n');
buff.append("----------------------");
buff.append('\n');
- for (int half : layerMap.keySet()) {
- Map<Integer,Pair<Integer,Integer>> map = layerMap.get(half);
- for (Map.Entry<Integer, Pair<Integer,Integer>> entry : map.entrySet()) {
- buff.append(half);
- buff.append(" ");
- buff.append(String.format("%-2d", entry.getKey()));
- buff.append(" ");
- buff.append(entry.getValue().getFirstElement());
- buff.append(" ");
- buff.append(entry.getValue().getSecondElement());
- buff.append('\n');
- }
+ for (SvtDaqMapping object : getObjects()) {
+ buff.append(object.getHalf());
+ buff.append(" ");
+ buff.append(String.format("%-2d", object.getLayerNumber()));
+ buff.append(" ");
+ buff.append(object.getFpgaNumber());
+ buff.append(" ");
+ buff.append(object.getHybridNumber());
+ buff.append('\n');
}
return buff.toString();
}
java/trunk/conditions/src/main/java/org/hps/conditions/svt
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtDaqMapConverter.java 2014-03-18 16:18:13 UTC (rev 312)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtDaqMapConverter.java 2014-03-18 19:10:30 UTC (rev 313)
@@ -5,12 +5,13 @@
import java.sql.ResultSet;
import java.sql.SQLException;
+import org.hps.conditions.AbstractConditionsObject.FieldValueMap;
+import org.hps.conditions.ConditionsObjectException;
import org.hps.conditions.ConditionsObjectFactory;
import org.hps.conditions.ConditionsRecord;
import org.hps.conditions.ConnectionManager;
import org.hps.conditions.DatabaseConditionsConverter;
import org.lcsim.conditions.ConditionsManager;
-import org.lcsim.hps.util.Pair;
/**
* This class creates a {@link SvtDaqMap} from the conditions database.
@@ -31,24 +32,25 @@
if (name == null) {
name = SVT_DAQ_MAP;
}
-
- // The object to be returned to caller.
- SvtDaqMap daqMap = new SvtDaqMap();
-
+
// Get the ConditionsRecord with the meta-data, which will use the current run number from the manager.
ConditionsRecord record = ConditionsRecord.find(manager, name).get(0);
// Get the table name, field name, and field value defining the applicable conditions.
String tableName = record.getTableName();
String fieldName = record.getFieldName();
- int fieldValue = record.getFieldValue();
+ int collectionId = record.getFieldValue();
+
+ // The object to be returned to caller.
+ SvtDaqMap collection =
+ new SvtDaqMap(this.getTableMetaData(tableName), collectionId, true);
// Get the connection manager.
ConnectionManager connectionManager = ConnectionManager.getConnectionManager();
// Construct the query to find matching calibration records using the ID field.
- String query = "SELECT half, layer, hybrid, fpga FROM "
- + tableName + " WHERE " + fieldName + " = " + fieldValue
+ String query = "SELECT id, half, layer, hybrid, fpga FROM "
+ + tableName + " WHERE " + fieldName + " = " + collectionId
+ " ORDER BY half ASC, layer ASC";
// Execute the query and get the results.
@@ -58,21 +60,25 @@
// Loop over the database records.
while(resultSet.next()) {
- // Get record data.
- int half = resultSet.getInt(1);
- int layer = resultSet.getInt(2);
- int hybrid = resultSet.getInt(3);
- int fpga = resultSet.getInt(4);
-
- // Add data to DAQ map: half => layer => DAQ pair
- daqMap.add(half, layer, new Pair<Integer,Integer>(fpga, hybrid));
+ int rowId = resultSet.getInt(1);
+
+ FieldValueMap fieldValues = new FieldValueMap();
+ fieldValues.put("half", resultSet.getInt(2));
+ fieldValues.put("layer", resultSet.getInt(3));
+ fieldValues.put("hybrid", resultSet.getInt(4));
+ fieldValues.put("fpga", resultSet.getInt(5));
+ SvtDaqMapping newObject = _objectFactory.createObject(
+ SvtDaqMapping.class, tableName, rowId, fieldValues, true);
+ collection.add(newObject);
}
} catch (SQLException x) {
throw new RuntimeException("Database error.", x);
- }
+ } catch (ConditionsObjectException x) {
+ throw new RuntimeException("Error creating object of " + getType().getSimpleName() + " type.", x);
+ }
// Return DAQ map to caller.
- return daqMap;
+ return collection;
}
/**
java/trunk/conditions/src/main/java/org/hps/conditions/svt
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtDaqMapping.java (rev 0)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtDaqMapping.java 2014-03-18 19:10:30 UTC (rev 313)
@@ -0,0 +1,23 @@
+package org.hps.conditions.svt;
+
+import org.hps.conditions.AbstractConditionsObject;
+
+
+public class SvtDaqMapping extends AbstractConditionsObject {
+
+ public int getHalf() {
+ return getFieldValue("half");
+ }
+
+ public int getLayerNumber() {
+ return getFieldValue("layer");
+ }
+
+ public int getFpgaNumber() {
+ return getFieldValue("fpga");
+ }
+
+ public int getHybridNumber() {
+ return getFieldValue("hybrid");
+ }
+}
SVNspam 0.1