1 added + 5 removed + 31 modified, total 37 files
java/trunk/conditions/src/main/java/org/hps/conditions
--- java/trunk/conditions/src/main/java/org/hps/conditions/AbstractConditionsObject.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/AbstractConditionsObject.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -24,10 +24,6 @@
* Class that maps field names to values.
*/
public static final class FieldValueMap extends LinkedHashMap<String, Object> {
- //@SuppressWarnings("unchecked")
- //public <T> T getFieldValue(String key) {
- // return (T)this.getFieldValue(key);
- //}
}
/**
@@ -212,6 +208,11 @@
public <T> T getFieldValue(Class<T> klass, String field) {
return klass.cast(_fieldValues.get(field));
}
+
+ @SuppressWarnings("unchecked")
+ public <T> T getFieldValue(String field) {
+ return (T)_fieldValues.get(field);
+ }
public void setConnectionManager(ConnectionManager connectionManager) throws ConditionsObjectException {
if (_connectionManager != null)
java/trunk/conditions/src/main/java/org/hps/conditions
--- java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsConverterRegister.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsConverterRegister.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -6,10 +6,10 @@
import org.hps.conditions.ecal.EcalChannelMapConverter;
import org.hps.conditions.ecal.EcalConditionsConverter;
import org.hps.conditions.ecal.EcalGainConverter;
-import org.hps.conditions.svt.PulseParametersConverter;
+import org.hps.conditions.svt.SvtPulseParametersConverter;
import org.hps.conditions.svt.SvtBadChannelConverter;
import org.hps.conditions.svt.SvtCalibrationConverter;
-import org.hps.conditions.svt.SvtChannelMapConverter;
+import org.hps.conditions.svt.SvtChannelCollectionConverter;
import org.hps.conditions.svt.SvtConditionsConverter;
import org.hps.conditions.svt.SvtDaqMapConverter;
import org.hps.conditions.svt.SvtGainConverter;
@@ -37,51 +37,54 @@
new BasicConditionsObjectFactory(ConnectionManager.getConnectionManager(), tableRegistry);
// ConditionsRecords with validity meta data.
- manager.registerConditionsConverter(new ConditionsRecordConverter());
+ manager.registerConditionsConverter(new ConditionsRecordConverter(factory));
+
+ // SVT combined conditions.
+ manager.registerConditionsConverter(new SvtConditionsConverter(factory));
- // SVT gains. (TESTING!!!)
- // TODO: The factory should be a required argument for the converter classes.
- SvtGainConverter svtGainConverter = new SvtGainConverter();
- svtGainConverter.setObjectFactory(factory);
- manager.registerConditionsConverter(svtGainConverter);
-
- // SVT channel map.
- manager.registerConditionsConverter(new SvtChannelMapConverter());
+ // SVT gains.
+ manager.registerConditionsConverter(new SvtGainConverter(factory));
- // SVT DAQ map.
- manager.registerConditionsConverter(new SvtDaqMapConverter());
+ // SVT pulse parameters.
+ manager.registerConditionsConverter(new SvtPulseParametersConverter(factory));
// SVT calibrations.
- manager.registerConditionsConverter(new SvtCalibrationConverter());
-
+ manager.registerConditionsConverter(new SvtCalibrationConverter(factory));
+
+ // SVT channel map.
+ manager.registerConditionsConverter(new SvtChannelCollectionConverter(factory));
+
+ // SVT time shift by sensor.
+ manager.registerConditionsConverter(new SvtTimeShiftConverter(factory));
+
// SVT bad channels.
- manager.registerConditionsConverter(new SvtBadChannelConverter());
-
- // SVT time shift by sensor.
- manager.registerConditionsConverter(new SvtTimeShiftConverter());
+ manager.registerConditionsConverter(new SvtBadChannelConverter(factory));
+
+ // /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
+ // TODO: Remaining to convert to new API...
+ // /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
- // SVT combined conditions.
- manager.registerConditionsConverter(new SvtConditionsConverter());
-
// ECAL bad channels.
- manager.registerConditionsConverter(new EcalBadChannelConverter());
+ manager.registerConditionsConverter(new EcalBadChannelConverter(factory));
// ECAL channel map.
- manager.registerConditionsConverter(new EcalChannelMapConverter());
+ manager.registerConditionsConverter(new EcalChannelMapConverter(factory));
// ECAL gains.
- manager.registerConditionsConverter(new EcalGainConverter());
+ manager.registerConditionsConverter(new EcalGainConverter(factory));
// ECAL calibrations.
- manager.registerConditionsConverter(new EcalCalibrationConverter());
-
- // ECAL pulse parameters.
- manager.registerConditionsConverter(new PulseParametersConverter());
-
+ manager.registerConditionsConverter(new EcalCalibrationConverter(factory));
+
// ECAL combined conditions.
- manager.registerConditionsConverter(new EcalConditionsConverter());
+ manager.registerConditionsConverter(new EcalConditionsConverter(factory));
// Beam current condition.
- manager.registerConditionsConverter(new BeamCurrentConverter());
+ manager.registerConditionsConverter(new BeamCurrentConverter(factory));
+
+ ///////////////////////////////////////////////////////////////////////////////
+ // This one will be a pain so convert to new API last once others are working.
+ // SVT DAQ map.
+ manager.registerConditionsConverter(new SvtDaqMapConverter(factory));
}
}
java/trunk/conditions/src/main/java/org/hps/conditions
--- java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsObject.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsObject.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -83,13 +83,20 @@
void setFieldValues(FieldValueMap fieldValues);
/**
- * Get a field value, cast to the given type.
+ * Get a field value, cast to the given class.
* @param field The field value.
* @return The field value casted to type T.
*/
public <T> T getFieldValue(Class<T> klass, String field);
/**
+ * Get a field value with implicit return type.
+ * @param field The field's name.
+ * @return The field value cast to type.
+ */
+ public <T> T getFieldValue(String field);
+
+ /**
* Set the ConnectionManager of this object.
* This cannot be reset once set.
* @param connectionManager The ConnectionManager.
java/trunk/conditions/src/main/java/org/hps/conditions
--- java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsObjectCollection.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsObjectCollection.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -16,6 +16,9 @@
boolean _isDirty;
boolean _isNew;
+ protected ConditionsObjectCollection() {
+ }
+
public ConditionsObjectCollection(ConditionsTableMetaData tableMetaData, int collectionId, boolean isReadOnly) {
_tableMetaData = tableMetaData;
_collectionId = collectionId;
@@ -38,9 +41,11 @@
throw new IllegalArgumentException("Collection already contains this object.");
}
try {
- object.setCollectionId(getCollectionId());
+ // Only assign a collection ID to the object if this collection has a valid ID.
+ if (getCollectionId() != -1)
+ object.setCollectionId(getCollectionId());
} catch (ConditionsObjectException x) {
- throw new IllegalArgumentException("The object has already been assigned to a collection.", x);
+ throw new IllegalArgumentException("Error assigning collection ID to object.", x);
}
objects.add(object);
if (!isNew())
java/trunk/conditions/src/main/java/org/hps/conditions
--- java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsRecordConverter.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsRecordConverter.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -15,7 +15,8 @@
/**
* Class constructor.
*/
- public ConditionsRecordConverter() {
+ public ConditionsRecordConverter(ConditionsObjectFactory objectFactory) {
+ super(objectFactory);
}
/**
java/trunk/conditions/src/main/java/org/hps/conditions
--- java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsTableRegistry.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsTableRegistry.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -22,12 +22,57 @@
void registerDefaultTableMetaData() {
- // SVT Gains (as test!!!)
- Set<String> svtGainFields = new HashSet<String>();
- svtGainFields.add("gain");
- svtGainFields.add("offset");
- ConditionsTableMetaData svtGainTable =
- new ConditionsTableMetaData(ConditionsConstants.SVT_GAINS, svtGainFields);
- addTableMetaData(svtGainTable);
+ Set<String> fields;
+ ConditionsTableMetaData tableMetaData;
+
+ // SVT gains
+ fields = new HashSet<String>();
+ fields.add("svt_channel_id");
+ fields.add("gain");
+ fields.add("offset");
+ tableMetaData = new ConditionsTableMetaData(ConditionsConstants.SVT_GAINS, fields);
+ addTableMetaData(tableMetaData);
+
+ // SVT pulse parameters
+ fields = new HashSet<String>();
+ fields.add("svt_channel_id");
+ fields.add("amplitude");
+ fields.add("t0");
+ fields.add("tp");
+ fields.add("chisq");
+ tableMetaData = new ConditionsTableMetaData(ConditionsConstants.SVT_PULSE_PARAMETERS, fields);
+ addTableMetaData(tableMetaData);
+
+ // SVT gains
+ fields = new HashSet<String>();
+ fields.add("svt_channel_id");
+ fields.add("noise");
+ fields.add("pedestal");
+ tableMetaData = new ConditionsTableMetaData(ConditionsConstants.SVT_CALIBRATIONS, fields);
+ addTableMetaData(tableMetaData);
+
+ // SVT channels
+ fields = new HashSet<String>();
+ fields.add("id"); // TODO: Change to svt_channel_id
+ fields.add("fpga");
+ fields.add("hybrid");
+ fields.add("channel");
+ tableMetaData = new ConditionsTableMetaData(ConditionsConstants.SVT_CHANNELS, fields);
+ addTableMetaData(tableMetaData);
+
+ // SVT time shift
+ fields = new HashSet<String>();
+ fields.add("fpga");
+ fields.add("hybrid");
+ fields.add("time_shift");
+ tableMetaData = new ConditionsTableMetaData(ConditionsConstants.SVT_TIME_SHIFTS, fields);
+ addTableMetaData(tableMetaData);
+
+ // SVT bad channels
+ fields = new HashSet<String>();
+ fields.add("svt_channel_id");
+ tableMetaData = new ConditionsTableMetaData(ConditionsConstants.SVT_BAD_CHANNELS, fields);
+ addTableMetaData(tableMetaData);
+
}
}
java/trunk/conditions/src/main/java/org/hps/conditions
--- java/trunk/conditions/src/main/java/org/hps/conditions/DatabaseConditionsConverter.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/DatabaseConditionsConverter.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -11,6 +11,10 @@
protected ConditionsObjectFactory _objectFactory;
+ public DatabaseConditionsConverter(ConditionsObjectFactory objectFactory) {
+ _objectFactory = objectFactory;
+ }
+
/**
* Get the the {@link ConnectionManager} associated with this converter.
* For now, this calls the singleton method of the ConnectionManager
java/trunk/conditions/src/main/java/org/hps/conditions
--- java/trunk/conditions/src/main/java/org/hps/conditions/DatabaseConditionsReader.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/DatabaseConditionsReader.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -50,10 +50,7 @@
/** The current run number to determine if conditions are already loaded. */
private int currentRun = Integer.MIN_VALUE;
-
- /** Converter for making ConditionsRecord objects from the database. */
- ConditionsRecordConverter conditionsRecordConverter = new ConditionsRecordConverter();
-
+
/** The logger for printing messages. */
static Logger logger = null;
java/trunk/conditions/src/main/java/org/hps/conditions/beam
--- java/trunk/conditions/src/main/java/org/hps/conditions/beam/BeamCurrentConverter.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/beam/BeamCurrentConverter.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -4,6 +4,7 @@
import java.sql.SQLException;
import org.lcsim.conditions.ConditionsManager;
+import org.hps.conditions.ConditionsObjectFactory;
import org.hps.conditions.ConditionsRecord;
import org.hps.conditions.ConnectionManager;
import org.hps.conditions.DatabaseConditionsConverter;
@@ -14,12 +15,10 @@
*/
public class BeamCurrentConverter extends DatabaseConditionsConverter<BeamCurrent> {
- /**
- * Class constructor.
- */
- public BeamCurrentConverter() {
+ public BeamCurrentConverter(ConditionsObjectFactory objectFactory) {
+ super(objectFactory);
}
-
+
/**
* Get the conditions data.
* @param manager The current conditions manager.
java/trunk/conditions/src/main/java/org/hps/conditions/ecal
--- java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalBadChannelConverter.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalBadChannelConverter.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -5,6 +5,7 @@
import org.lcsim.conditions.ConditionsManager;
import org.hps.conditions.ChannelCollection;
+import org.hps.conditions.ConditionsObjectFactory;
import org.hps.conditions.ConditionsRecord;
import org.hps.conditions.ConditionsRecordCollection;
import org.hps.conditions.ConnectionManager;
@@ -16,6 +17,10 @@
*/
public class EcalBadChannelConverter extends DatabaseConditionsConverter<EcalBadChannelCollection> {
+ public EcalBadChannelConverter(ConditionsObjectFactory objectFactory) {
+ super(objectFactory);
+ }
+
/**
* Create the collection from the conditions database.
* @param manager The conditions manager.
java/trunk/conditions/src/main/java/org/hps/conditions/ecal
--- java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalCalibrationConverter.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalCalibrationConverter.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -1,13 +1,13 @@
package org.hps.conditions.ecal;
-import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
-import org.lcsim.conditions.ConditionsManager;
+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;
/**
* This class creates a list of {@link EcalCalibrationCollection} from the
@@ -16,7 +16,11 @@
* @author Jeremy McCormick <[log in to unmask]>
*/
public class EcalCalibrationConverter extends DatabaseConditionsConverter<EcalCalibrationCollection> {
-
+
+ public EcalCalibrationConverter(ConditionsObjectFactory objectFactory) {
+ super(objectFactory);
+ }
+
/**
* Create the calibration collection from the conditions database.
* @param manager The conditions manager.
java/trunk/conditions/src/main/java/org/hps/conditions/ecal
--- java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalChannelMapConverter.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalChannelMapConverter.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -6,6 +6,7 @@
import java.sql.SQLException;
import org.lcsim.conditions.ConditionsManager;
+import org.hps.conditions.ConditionsObjectFactory;
import org.hps.conditions.ConnectionManager;
import org.hps.conditions.DatabaseConditionsConverter;
@@ -17,6 +18,10 @@
*/
public class EcalChannelMapConverter extends DatabaseConditionsConverter<EcalChannelMap> {
+ public EcalChannelMapConverter(ConditionsObjectFactory objectFactory) {
+ super(objectFactory);
+ }
+
/**
* Load the data from the conditions database.
* @param manager The conditions manager.
java/trunk/conditions/src/main/java/org/hps/conditions/ecal
--- java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalConditionsConverter.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalConditionsConverter.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -8,6 +8,7 @@
import java.util.Map.Entry;
import org.lcsim.conditions.ConditionsManager;
+import org.hps.conditions.ConditionsObjectFactory;
import org.hps.conditions.DatabaseConditionsConverter;
/**
@@ -16,7 +17,11 @@
* @author Jeremy McCormick <[log in to unmask]>
*/
public class EcalConditionsConverter extends DatabaseConditionsConverter<EcalConditions> {
-
+
+ public EcalConditionsConverter(ConditionsObjectFactory objectFactory) {
+ super(objectFactory);
+ }
+
/**
* Create ECAL conditions object containing all data for the current run.
*/
java/trunk/conditions/src/main/java/org/hps/conditions/ecal
--- java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalConditionsLoader.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalConditionsLoader.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -31,7 +31,7 @@
crystal.reset();
// Find the corresponding entry in the channel map for this crystal.
- EcalChannel channel = channelMap.find(crystal.getX(), crystal.getY());
+ EcalChannel channel = channelMap.find(crystal.getX(), crystal.getY());
if (channel == null) {
throw new RuntimeException("EcalChannel not found for crystal: " + crystal.getName());
}
java/trunk/conditions/src/main/java/org/hps/conditions/ecal
--- java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalGainConverter.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalGainConverter.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -4,6 +4,7 @@
import java.sql.SQLException;
import org.lcsim.conditions.ConditionsManager;
+import org.hps.conditions.ConditionsObjectFactory;
import org.hps.conditions.ConditionsRecord;
import org.hps.conditions.ConnectionManager;
import org.hps.conditions.DatabaseConditionsConverter;
@@ -14,6 +15,11 @@
*/
public class EcalGainConverter extends DatabaseConditionsConverter<EcalGainCollection> {
+
+ public EcalGainConverter(ConditionsObjectFactory objectFactory) {
+ super(objectFactory);
+ }
+
/**
* Create the collection from the conditions database.
* @param manager The conditions manager.
java/trunk/conditions/src/main/java/org/hps/conditions/svt
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/ChannelConstants.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/ChannelConstants.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -11,7 +11,7 @@
private SvtCalibration calibration = null;
private SvtGain gain = null;
- private PulseParameters pulseParameters = null;
+ private SvtPulseParameters pulseParameters = null;
private boolean badChannel = false;
/**
@@ -24,7 +24,7 @@
* Set the pulse parameters.
* @param pulseParameters The pulse parameters
*/
- void setPulseParameters(PulseParameters pulseParameters) {
+ void setPulseParameters(SvtPulseParameters pulseParameters) {
this.pulseParameters = pulseParameters;
}
@@ -64,7 +64,7 @@
* Get the pulse parameters.
* @return The pulse parameters.
*/
- public PulseParameters getPulseParameters() {
+ public SvtPulseParameters getPulseParameters() {
return pulseParameters;
}
java/trunk/conditions/src/main/java/org/hps/conditions/svt
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/PulseParameters.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/PulseParameters.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -1,80 +0,0 @@
-package org.hps.conditions.svt;
-
-/**
- * This class represents the pulse parameters for an SVT channel.
- * @author Jeremy McCormick <[log in to unmask]>
- */
-public class PulseParameters {
-
- double amplitude = Double.NaN;
- double t0 = Double.NaN;
- double tp = Double.NaN;
- double chisq = Double.NaN;
-
- /**
- * Full qualified class constructor.
- * @param amplitude The amplitude.
- * @param t0 The start time.
- * @param tp The shaping time.
- * @param chisq The chisq of the measurement.
- */
- PulseParameters(double amplitude, double t0, double tp, double chisq) {
- this.amplitude = amplitude;
- this.t0 = t0;
- this.tp = tp;
- this.chisq = chisq;
- }
-
- /**
- * Get the amplitude.
- * @return The amplifude.
- */
- double getAmplitude() {
- return amplitude;
- }
-
- /**
- * Get the starting time.
- * @return The starting time.
- */
- double getT0() {
- return t0;
- }
-
- /**
- * Get the time shift.
- * @return The time shift.
- */
- double getTimeShift() {
- return tp;
- }
-
- /**
- * Get the chisq.
- * @return The chisq.
- */
- double getChisq() {
- return chisq;
- }
-
- /**
- * Convert this object to a human readable string.
- * @return This object converted to a string.
- */
- public String toString() {
- return "amp: " + amplitude + ", t0: " + t0 + ", shift: " + tp + ", chisq: " + chisq;
- }
-
- /**
- * Convert this object to an array of doubles.
- * @return This object converted to an array of doubles.
- */
- public double[] toArray() {
- double[] values = new double[4];
- values[0] = amplitude;
- values[1] = t0;
- values[2] = tp;
- values[3] = chisq;
- return values;
- }
-}
java/trunk/conditions/src/main/java/org/hps/conditions/svt
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/PulseParametersCollection.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/PulseParametersCollection.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -1,12 +0,0 @@
-package org.hps.conditions.svt;
-
-import java.util.LinkedHashMap;
-
-/**
- * A collection of {@link PulseParameters} objects stored by SVT channel ID.
- * @author Jeremy McCormick <[log in to unmask]>
- */
-public class PulseParametersCollection extends LinkedHashMap<Integer,PulseParameters> {
- PulseParametersCollection() {
- }
-}
java/trunk/conditions/src/main/java/org/hps/conditions/svt
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/PulseParametersConverter.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/PulseParametersConverter.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -1,81 +0,0 @@
-package org.hps.conditions.svt;
-
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-import org.lcsim.conditions.ConditionsManager;
-import org.hps.conditions.ConditionsRecord;
-import org.hps.conditions.ConnectionManager;
-import org.hps.conditions.DatabaseConditionsConverter;
-
-/**
- * This class creates a {@link PulseParametersCollection} object from the
- * conditions database.
- *
- * @author Jeremy McCormick <[log in to unmask]>
- */
-public class PulseParametersConverter extends DatabaseConditionsConverter<PulseParametersCollection> {
-
- /**
- * Get the pulse parameters by channel for this run by named conditions set.
- * @param manager The current conditions manager.
- * @param name The name of the conditions set.
- * @return The channel constants data.
- */
- public PulseParametersCollection getData(ConditionsManager manager, String name) {
-
- // Get the ConditionsRecord with the meta-data, which will use the
- // current run number from the manager.s
- 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();
-
- // Object for building the return value.
- PulseParametersCollection collection = new PulseParametersCollection();
-
- // Connection objects.
- ConnectionManager connectionManager = getConnectionManager();
-
- // Get the name of the current database being used.
- String database = connectionManager.getConnectionParameters().getDatabase();
-
- // Construct the query to find matching calibration records.
- String query = "SELECT svt_channel_id, amplitude, t0, tp, chisq FROM "
- + tableName + " WHERE "
- + fieldName + " = " + fieldValue + " ORDER BY id ASC";
-
- // Execute the query and get the results.
- ResultSet resultSet = connectionManager.query(query);
-
- try {
- // Loop over the calibration records.
- while (resultSet.next()) {
- // Create calibration object from database record.
- int channelId = resultSet.getInt(1);
- double amplitude = resultSet.getDouble(2);
- double t0 = resultSet.getDouble(3);
- double tp = resultSet.getDouble(4);
- double chisq = resultSet.getDouble(5);
- collection.put(channelId, new PulseParameters(amplitude, t0, tp, chisq));
- }
- } catch (SQLException x) {
- throw new RuntimeException("Database error.", x);
- }
-
- // Return the collection of channel constants to caller.
- return collection;
- }
-
- /**
- * Get the type handled by this converter.
- * @return The type handled by this converter, which is <code>ConditionsRecordCollection</code>.
- */
- public Class<PulseParametersCollection> getType() {
- return PulseParametersCollection.class;
- }
-}
java/trunk/conditions/src/main/java/org/hps/conditions/svt
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtBadChannel.java (rev 0)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtBadChannel.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -0,0 +1,11 @@
+package org.hps.conditions.svt;
+
+import org.hps.conditions.AbstractConditionsObject;
+
+public class SvtBadChannel extends AbstractConditionsObject {
+
+ public int getChannelId() {
+ return getFieldValue("svt_channel_id");
+ }
+
+}
java/trunk/conditions/src/main/java/org/hps/conditions/svt
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtBadChannelCollection.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtBadChannelCollection.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -1,11 +1,20 @@
package org.hps.conditions.svt;
-import org.hps.conditions.ChannelCollection;
+import org.hps.conditions.ConditionsObjectCollection;
+import org.hps.conditions.ConditionsTableMetaData;
/**
* This class represents a set of bad channels in the SVT by their channel IDs
* from the conditions database.
* @author Jeremy McCormick <[log in to unmask]>
*/
-public class SvtBadChannelCollection extends ChannelCollection {
+public class SvtBadChannelCollection extends ConditionsObjectCollection<SvtBadChannel> {
+
+ public SvtBadChannelCollection() {
+ }
+
+ public SvtBadChannelCollection(ConditionsTableMetaData tableMetaData, int collectionId, boolean isReadOnly) {
+ super(tableMetaData, collectionId, isReadOnly);
+ }
+
}
java/trunk/conditions/src/main/java/org/hps/conditions/svt
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtBadChannelConverter.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtBadChannelConverter.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -3,11 +3,15 @@
import java.sql.ResultSet;
import java.sql.SQLException;
-import org.lcsim.conditions.ConditionsManager;
+import org.hps.conditions.AbstractConditionsObject.FieldValueMap;
+import org.hps.conditions.ConditionsObject.ConditionsObjectException;
+import org.hps.conditions.ConditionsObjectFactory;
import org.hps.conditions.ConditionsRecord;
import org.hps.conditions.ConditionsRecordCollection;
+import org.hps.conditions.ConditionsTableMetaData;
import org.hps.conditions.ConnectionManager;
import org.hps.conditions.DatabaseConditionsConverter;
+import org.lcsim.conditions.ConditionsManager;
/**
* This class creates an {@link SvtBadChannelCollection} representing bad readout channels
@@ -16,6 +20,10 @@
*/
public class SvtBadChannelConverter extends DatabaseConditionsConverter<SvtBadChannelCollection> {
+ public SvtBadChannelConverter(ConditionsObjectFactory objectFactory) {
+ super(objectFactory);
+ }
+
/**
* Create the collection from the conditions database.
* @param manager The conditions manager.
@@ -23,15 +31,16 @@
*/
public SvtBadChannelCollection getData(ConditionsManager manager, String name) {
- // Collection to be returned to caller.
- SvtBadChannelCollection badChannels = new SvtBadChannelCollection();
-
// Get the ConditionsRecord with the meta-data, which will use the
// current run number from the manager.
ConditionsRecordCollection records = ConditionsRecord.find(manager, name);
+ SvtBadChannelCollection collection = new SvtBadChannelCollection();
+
// Loop over ConditionsRecords. For this particular type of condition, multiple
// sets of bad channels are possible.
+
+ // Collection to be returned to caller.
for (ConditionsRecord record : records) {
// Get the table name, field name, and field value defining the
@@ -40,23 +49,35 @@
String fieldName = record.getFieldName();
int fieldValue = record.getFieldValue();
+ ConditionsTableMetaData tableMetaData = _objectFactory.getTableRegistry().getTableMetaData(tableName);
+
// Query for getting back bad channel records.
- String query = "SELECT svt_channel_id FROM " + tableName + " WHERE "
+ String query = "SELECT id, svt_channel_id FROM " + tableName + " WHERE "
+ fieldName + " = " + fieldValue + " ORDER BY id ASC";
ResultSet resultSet = ConnectionManager.getConnectionManager().query(query);
// Loop over the records.
try {
while (resultSet.next()) {
- int channelId = resultSet.getInt(1);
- badChannels.add(channelId);
+ //int channelId = resultSet.getInt(1);
+ //badChannels.add(channelId);
+ int rowId = resultSet.getInt(1);
+
+ FieldValueMap fieldValues = new FieldValueMap();
+ fieldValues.put("svt_channel_id", resultSet.getInt(2));
+
+ SvtBadChannel newObject = _objectFactory.createObject(SvtBadChannel.class, tableName, rowId, fieldValues, true);
+
+ collection.add(newObject);
}
} catch (SQLException x) {
- throw new RuntimeException(x);
- }
+ throw new RuntimeException("Database error", x);
+ } catch (ConditionsObjectException x) {
+ throw new RuntimeException("Error converting to SvtBadChannel object.", x);
+ }
}
- return badChannels;
+ return collection;
}
/**
java/trunk/conditions/src/main/java/org/hps/conditions/svt
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtCalibration.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtCalibration.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -1,30 +1,27 @@
package org.hps.conditions.svt;
+import org.hps.conditions.AbstractConditionsObject;
+
/**
* This class represents a noise and pedestal measurement for an SVT channel.
* @author Jeremy McCormick <[log in to unmask]>
*/
-class SvtCalibration {
-
- double noise = Double.NaN;
- double pedestal = Double.NaN;
-
+public class SvtCalibration extends AbstractConditionsObject {
+
/**
- * Fully qualified constructor.
- * @param noise The noise value.
- * @param pedestal The pedestal value.
+ * Get the channel ID.
+ * @return The channel ID.
*/
- SvtCalibration(double noise, double pedestal) {
- this.noise = noise;
- this.pedestal = pedestal;
+ public int getChannelId() {
+ return getFieldValue(Integer.class, "svt_channel_id");
}
-
+
/**
* Get the noise value.
* @return The noise value.
*/
public double getNoise() {
- return noise;
+ return getFieldValue(Double.class, "noise");
}
/**
@@ -32,7 +29,7 @@
* @return The pedestal value.
*/
public double getPedestal() {
- return pedestal;
+ return getFieldValue(Double.class, "pedestal");
}
/**
@@ -40,6 +37,6 @@
* @return This object converted to a string.
*/
public String toString() {
- return "noise: " + noise + ", pedestal: " + pedestal;
+ return "noise: " + getNoise() + ", pedestal: " + getPedestal();
}
}
java/trunk/conditions/src/main/java/org/hps/conditions/svt
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtCalibrationCollection.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtCalibrationCollection.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -1,16 +1,19 @@
package org.hps.conditions.svt;
-import java.util.LinkedHashMap;
+import org.hps.conditions.ConditionsObjectCollection;
+import org.hps.conditions.ConditionsTableMetaData;
/**
* This class is a collection of {@link SvtCalibration} objects associated to their
* SVT channel IDs from the database.
* @author Jeremy McCormick <[log in to unmask]>
*/
-public class SvtCalibrationCollection extends LinkedHashMap<Integer,SvtCalibration> {
+public class SvtCalibrationCollection extends ConditionsObjectCollection<SvtCalibration> {
+
/**
* Class constructor.
*/
- SvtCalibrationCollection() {
+ SvtCalibrationCollection(ConditionsTableMetaData tableMetaData, int collectionId, boolean isReadOnly) {
+ super(tableMetaData, collectionId, isReadOnly);
}
}
java/trunk/conditions/src/main/java/org/hps/conditions/svt
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtCalibrationConverter.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtCalibrationConverter.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -3,10 +3,14 @@
import java.sql.ResultSet;
import java.sql.SQLException;
-import org.lcsim.conditions.ConditionsManager;
+import org.hps.conditions.AbstractConditionsObject.FieldValueMap;
+import org.hps.conditions.ConditionsObject.ConditionsObjectException;
+import org.hps.conditions.ConditionsObjectFactory;
import org.hps.conditions.ConditionsRecord;
+import org.hps.conditions.ConditionsTableMetaData;
import org.hps.conditions.ConnectionManager;
import org.hps.conditions.DatabaseConditionsConverter;
+import org.lcsim.conditions.ConditionsManager;
/**
* This class creates a {@link SvtCalibrationCollection} from the conditions
@@ -18,7 +22,8 @@
/**
* Class constructor.
*/
- public SvtCalibrationConverter() {
+ public SvtCalibrationConverter(ConditionsObjectFactory objectFactory) {
+ super(objectFactory);
}
/**
@@ -37,19 +42,21 @@
// applicable conditions.
String tableName = record.getTableName();
String fieldName = record.getFieldName();
- int fieldValue = record.getFieldValue();
+ int collectionId = record.getFieldValue();
// Objects for building the return value.
- SvtCalibrationCollection collection = new SvtCalibrationCollection();
+ ConditionsTableMetaData tableMetaData = _objectFactory.getTableRegistry().getTableMetaData(tableName);
+ SvtCalibrationCollection collection =
+ new SvtCalibrationCollection(tableMetaData, collectionId, true);
// Get a connection from the manager.
ConnectionManager connectionManager = getConnectionManager();
// Construct the query to find matching calibration records using the ID
// field.
- String query = "SELECT svt_channel_id, noise, pedestal FROM "
+ String query = "SELECT id, svt_channel_id, noise, pedestal FROM "
+ tableName + " WHERE "
- + fieldName + " = " + fieldValue + " ORDER BY svt_channel_id ASC";
+ + fieldName + " = " + collectionId + " ORDER BY svt_channel_id ASC";
// Execute the query and get the results.
ResultSet resultSet = connectionManager.query(query);
@@ -57,17 +64,23 @@
try {
// Loop over the calibration records.
while (resultSet.next()) {
-
- // Get the calibration data for a single channel.
- int channelId = resultSet.getInt(1);
- double noise = resultSet.getDouble(2);
- double pedestal = resultSet.getDouble(3);
-
- collection.put(channelId, new SvtCalibration(noise, pedestal));
+
+ int rowId = resultSet.getInt(1);
+
+ FieldValueMap fieldValues = new FieldValueMap();
+ fieldValues.put("svt_channel_id", resultSet.getInt(2));
+ fieldValues.put("noise", resultSet.getDouble(3));
+ fieldValues.put("pedestal", resultSet.getDouble(4));
+ SvtCalibration newObject = _objectFactory.createObject(
+ SvtCalibration.class, tableName, rowId, fieldValues, true);
+
+ collection.add(newObject);
}
} catch (SQLException x) {
throw new RuntimeException("Database error.", x);
- }
+ } catch (ConditionsObjectException x) {
+ throw new RuntimeException("Error converting to SvtCalibration object");
+ }
// Return the collection of channel constants to caller.
return collection;
java/trunk/conditions/src/main/java/org/hps/conditions/svt
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtChannel.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtChannel.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -1,34 +1,19 @@
package org.hps.conditions.svt;
+import org.hps.conditions.AbstractConditionsObject;
+
/**
* This class represents SVT channel setup information, including hybrid, FPGA, and channel numbers.
* @author Jeremy McCormick <[log in to unmask]>
*/
-public class SvtChannel {
-
- /** Channel data. */
- private int id, hybrid, fpga, channel;
+public class SvtChannel extends AbstractConditionsObject {
/**
- * Fully qualified constructor.
- * @param id The database record ID from the channel table.
- * @param fpga The FPGA number (0 to 6).
- * @param hybrid The hybrid number (0 to 2).
- * @param channel The channel number (0 to 639).
- */
- SvtChannel(int id, int fpga, int hybrid, int channel) {
- this.id = id;
- this.fpga = fpga;
- this.hybrid = hybrid;
- this.channel = channel;
- }
-
- /**
* Get the channel ID.
* @return The channel ID.
*/
public int getId() {
- return id;
+ return getFieldValue("id");
}
/**
@@ -36,7 +21,7 @@
* @return The hybrid number.
*/
public int getHybrid() {
- return hybrid;
+ return getFieldValue("hybrid");
}
/**
@@ -44,7 +29,7 @@
* @return The FPGA number.
*/
public int getFpga() {
- return fpga;
+ return getFieldValue("fpga");
}
/**
@@ -52,7 +37,7 @@
* @return The channel number.
*/
public int getChannel() {
- return channel;
+ return getFieldValue("channel");
}
/**
@@ -60,7 +45,7 @@
* @return This object as a string.
*/
public String toString() {
- return "id: " + id + ", fpga: " + fpga + ", hybrid: " + hybrid + ", channel: " + channel;
+ return "id: " + getId() + ", fpga: " + getFpga() + ", hybrid: " + getHybrid() + ", channel: " + getChannel();
}
/**
@@ -75,9 +60,9 @@
if (o == this)
return true;
SvtChannel channel = (SvtChannel)o;
- return id == channel.getId()
- && hybrid == channel.getHybrid()
- && fpga == channel.getFpga()
- && hybrid == channel.getHybrid();
+ return getId() == channel.getId()
+ && getHybrid() == channel.getHybrid()
+ && getFpga() == channel.getFpga()
+ && getHybrid() == channel.getHybrid();
}
}
\ No newline at end of file
java/trunk/conditions/src/main/java/org/hps/conditions/svt
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtChannelMap.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtChannelMap.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -1,53 +0,0 @@
-package org.hps.conditions.svt;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-
-import org.lcsim.hps.util.Pair;
-
-/**
- * This class represents a map between SVT channels and their IDs from the channels table
- * in the conditions database. It can be used to lookup information stored in the {@link SvtConditions} object.
- * @author Jeremy McCormick <[log in to unmask]>
- */
-public class SvtChannelMap extends HashMap<Integer,SvtChannel> {
-
- /**
- * Constructor, which is package protected. Users should not
- * create this class directly but retrieve it from the {@link SvtConditions}
- * object instead.
- */
- SvtChannelMap() {
- }
-
- /**
- * Find channels that match a DAQ pair (FPGA, hybrid).
- * @param pair The DAQ pair.
- * @return The channels matching the DAQ pair or null if not found.
- */
- public Collection<SvtChannel> find(Pair<Integer,Integer> pair) {
- List<SvtChannel> channels = new ArrayList<SvtChannel>();
- int fpga = pair.getFirstElement();
- int hybrid = pair.getSecondElement();
- for (SvtChannel channel : values()) {
- if (channel.getFpga() == fpga && channel.getHybrid() == hybrid) {
- channels.add(channel);
- }
- }
- return channels;
- }
-
- /**
- * Convert this object to a human readable string.
- * @return This object converted to a string.
- */
- public String toString() {
- StringBuffer buff = new StringBuffer();
- for (SvtChannel channel : values()) {
- buff.append(channel.toString() + '\n');
- }
- return buff.toString();
- }
-}
java/trunk/conditions/src/main/java/org/hps/conditions/svt
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtChannelMapConverter.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtChannelMapConverter.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -1,65 +0,0 @@
-package org.hps.conditions.svt;
-
-import static org.hps.conditions.ConditionsConstants.SVT_CHANNELS;
-
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-import org.lcsim.conditions.ConditionsManager;
-import org.hps.conditions.ConnectionManager;
-import org.hps.conditions.DatabaseConditionsConverter;
-
-/**
- * This class converts a table of SVT channel setup data into an {@link SvtChannelMap}.
- * @author Jeremy McCormick <[log in to unmask]>
- */
-public class SvtChannelMapConverter extends DatabaseConditionsConverter<SvtChannelMap> {
-
- /**
- * Create the channel map from the conditions database.
- * @param manager The current conditions manager.
- * @param name The name of the conditions set.
- */
- public SvtChannelMap getData(ConditionsManager manager, String name) {
-
- // Objects for building the return value.
- SvtChannelMap channels = new SvtChannelMap();
-
- // Get the connection manager.
- ConnectionManager connectionManager = getConnectionManager();
-
- // Assign default key name for channel data if none given.
- if (name == null)
- name = SVT_CHANNELS;
-
- // Construct the query to get the channel data.
- String query = "SELECT id, fpga, hybrid, channel FROM " + name;
-
- // Execute the query and get the results.
- ResultSet resultSet = connectionManager.query(query);
-
- try {
- // Loop over records.
- while (resultSet.next()) {
- // Add SVT channel data for this record.
- int id = resultSet.getInt(1);
- int fpga = resultSet.getInt(2);
- int hybrid = resultSet.getInt(3);
- int channel = resultSet.getInt(4);
- SvtChannel data = new SvtChannel(id, fpga, hybrid, channel);
- channels.put(data.getId(), data);
- }
- } catch (SQLException x) {
- throw new RuntimeException("Database error.", x);
- }
- return channels;
- }
-
- /**
- * Get the type handled by this converter.
- * @return The type handled by this converter.
- */
- public Class<SvtChannelMap> getType() {
- return SvtChannelMap.class;
- }
-}
java/trunk/conditions/src/main/java/org/hps/conditions/svt
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtConditions.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtConditions.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -15,7 +15,7 @@
/** SVT conditions data. */
private Map<SvtChannel, ChannelConstants> channelData = new HashMap<SvtChannel, ChannelConstants>();
- private SvtChannelMap channelMap = null;
+ private SvtChannelCollection channelMap = null;
private SvtDaqMap daqMap = null;
private SvtTimeShiftCollection timeShifts = null;
@@ -23,7 +23,7 @@
* Class constructor, which takes a channel map.
* @param channelMap The SVT channel map.
*/
- SvtConditions(SvtChannelMap channelMap) {
+ SvtConditions(SvtChannelCollection channelMap) {
this.channelMap = channelMap;
}
@@ -37,7 +37,7 @@
*/
public ChannelConstants getChannelConstants(SvtChannel channel) {
// This channel must come from the map.
- if (!channelMap.containsValue(channel)) {
+ if (!channelMap.getObjects().contains(channel)) {
System.err.println("Channel not found in map => " + channel);
throw new IllegalArgumentException("Channel was not found in map.");
}
@@ -48,10 +48,10 @@
}
/**
- * Get the {@link SvtChannelMap} for this set of conditions.
+ * Get the {@link SvtChannelCollection} for this set of conditions.
* @return The SVT channel map.
*/
- public SvtChannelMap getChannelMap() {
+ public SvtChannelCollection getChannelMap() {
return channelMap;
}
@@ -133,12 +133,12 @@
}
buff.append('\n');
// Loop over channels.
- for (SvtChannel channel : channelMap.values()) {
+ for (SvtChannel channel : channelMap.getObjects()) {
// Get the conditions for the channel.
ChannelConstants constants = getChannelConstants(channel);
SvtGain gain = constants.getGain();
- PulseParameters pulse = constants.getPulseParameters();
+ SvtPulseParameters pulse = constants.getPulseParameters();
SvtCalibration calibration = constants.getCalibration();
// Channel data.
java/trunk/conditions/src/main/java/org/hps/conditions/svt
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtConditionsConverter.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtConditionsConverter.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -10,7 +10,7 @@
import java.util.Map.Entry;
-import org.hps.conditions.ConditionsObject;
+import org.hps.conditions.ConditionsObjectFactory;
import org.hps.conditions.DatabaseConditionsConverter;
import org.lcsim.conditions.ConditionsManager;
@@ -19,7 +19,11 @@
* based on the current run number known by the conditions manager.
*/
public class SvtConditionsConverter extends DatabaseConditionsConverter<SvtConditions> {
-
+
+ public SvtConditionsConverter(ConditionsObjectFactory objectFactory) {
+ super(objectFactory);
+ }
+
/**
* Create and return the SVT conditions object.
* @param manager The current conditions manager.
@@ -28,7 +32,7 @@
public SvtConditions getData(ConditionsManager manager, String name) {
// Get the SVT channel map.
- SvtChannelMap channels = manager.getCachedConditions(SvtChannelMap.class, SVT_CHANNELS).getCachedData();
+ SvtChannelCollection channels = manager.getCachedConditions(SvtChannelCollection.class, SVT_CHANNELS).getCachedData();
// Create the conditions object.
SvtConditions conditions = new SvtConditions(channels);
@@ -39,22 +43,22 @@
// Add calibrations by channel.
SvtCalibrationCollection calibrations = manager.getCachedConditions(SvtCalibrationCollection.class, SVT_CALIBRATIONS).getCachedData();
- for (Entry<Integer,SvtCalibration> entry : calibrations.entrySet()) {
- SvtChannel channel = conditions.getChannelMap().get(entry.getKey());
- conditions.getChannelConstants(channel).setCalibration(entry.getValue());
- }
+ for (SvtCalibration calibration : calibrations.getObjects()) {
+ SvtChannel channel = conditions.getChannelMap().findChannel(calibration.getChannelId());
+ conditions.getChannelConstants(channel).setCalibration(calibration);
+ }
// Add pulse parameters by channel.
- PulseParametersCollection pulseParameters = manager.getCachedConditions(PulseParametersCollection.class, SVT_PULSE_PARAMETERS).getCachedData();
- for (Entry<Integer,PulseParameters> entry : pulseParameters.entrySet()) {
- SvtChannel channel = conditions.getChannelMap().get(entry.getKey());
- conditions.getChannelConstants(channel).setPulseParameters(entry.getValue());
+ SvtPulseParametersCollection pulseParametersCollection = manager.getCachedConditions(SvtPulseParametersCollection.class, SVT_PULSE_PARAMETERS).getCachedData();
+ for (SvtPulseParameters pulseParameters : pulseParametersCollection.getObjects()) {
+ SvtChannel channel = conditions.getChannelMap().findChannel(pulseParameters.getChannelId());
+ conditions.getChannelConstants(channel).setPulseParameters(pulseParameters);
}
// Add bad channels.
SvtBadChannelCollection badChannels = manager.getCachedConditions(SvtBadChannelCollection.class, SVT_BAD_CHANNELS).getCachedData();
- for (Integer badChannel : badChannels) {
- SvtChannel channel = conditions.getChannelMap().get(badChannel);
+ for (SvtBadChannel badChannel : badChannels.getObjects()) {
+ SvtChannel channel = conditions.getChannelMap().findChannel(badChannel.getChannelId());
conditions.getChannelConstants(channel).setBadChannel(true);
}
@@ -62,7 +66,7 @@
SvtGainCollection gains = manager.getCachedConditions(SvtGainCollection.class, SVT_GAINS).getCachedData();
for (SvtGain object : gains.getObjects()) {
int channelId = object.getChannelID();
- SvtChannel channel = conditions.getChannelMap().get(channelId);
+ SvtChannel channel = conditions.getChannelMap().findChannel(channelId);
conditions.getChannelConstants(channel).setGain(object);
}
@@ -80,4 +84,4 @@
public Class<SvtConditions> getType() {
return SvtConditions.class;
}
-}
+}
\ No newline at end of file
java/trunk/conditions/src/main/java/org/hps/conditions/svt
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtConditionsLoader.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtConditionsLoader.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -23,7 +23,7 @@
// Find sensor objects.
List<HpsSiSensor> sensors = detector.getDetectorElement().findDescendants(HpsSiSensor.class);
- SvtChannelMap channelMap = conditions.getChannelMap();
+ SvtChannelCollection channelMap = conditions.getChannelMap();
SvtDaqMap daqMap = conditions.getDaqMap();
SvtTimeShiftCollection timeShifts = conditions.getTimeShifts();
java/trunk/conditions/src/main/java/org/hps/conditions/svt
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtDaqMap.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtDaqMap.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -12,6 +12,8 @@
*/
public class SvtDaqMap {
+ // fields: half, layer, fpga, hybrid
+
/**
* Flag values for top or bottom half.
* FIXME: This should probably be an enum but it is simpler to use int values for now.
@@ -90,4 +92,4 @@
}
return buff.toString();
}
-}
+}
\ No newline at end of file
java/trunk/conditions/src/main/java/org/hps/conditions/svt
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtDaqMapConverter.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtDaqMapConverter.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -6,6 +6,7 @@
import java.sql.SQLException;
import org.lcsim.conditions.ConditionsManager;
+import org.hps.conditions.ConditionsObjectFactory;
import org.hps.conditions.ConditionsRecord;
import org.hps.conditions.ConnectionManager;
import org.hps.conditions.DatabaseConditionsConverter;
@@ -17,6 +18,10 @@
*/
public class SvtDaqMapConverter extends DatabaseConditionsConverter<SvtDaqMap> {
+ public SvtDaqMapConverter(ConditionsObjectFactory objectFactory) {
+ super(objectFactory);
+ }
+
/**
* Create an {@link SvtDaqMap} object from the database.
*/
java/trunk/conditions/src/main/java/org/hps/conditions/svt
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtGainConverter.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtGainConverter.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -5,6 +5,7 @@
import org.hps.conditions.AbstractConditionsObject.FieldValueMap;
import org.hps.conditions.ConditionsObject.ConditionsObjectException;
+import org.hps.conditions.ConditionsObjectFactory;
import org.hps.conditions.ConditionsRecord;
import org.hps.conditions.ConditionsTableMetaData;
import org.hps.conditions.ConnectionManager;
@@ -20,7 +21,8 @@
/**
* Class constructor.
*/
- public SvtGainConverter() {
+ public SvtGainConverter(ConditionsObjectFactory objectFactory) {
+ super(objectFactory);
}
/**
java/trunk/conditions/src/main/java/org/hps/conditions/svt
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtTimeShift.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtTimeShift.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -1,34 +1,20 @@
package org.hps.conditions.svt;
+import org.hps.conditions.AbstractConditionsObject;
+
/**
* This class is a data holder for associating a time shift with a specific sensor
* by FPGA and hybrid numbers.
* @author Jeremy McCormick <[log in to unmask]>
*/
-public class SvtTimeShift {
+public class SvtTimeShift extends AbstractConditionsObject {
- int fpga;
- int hybrid;
- double timeShift;
-
/**
- * Fully qualified constructor.
- * @param fpga The FPGA number.
- * @param hybrid The hybrid number.
- * @param timeShift The time shift.
- */
- SvtTimeShift(int fpga, int hybrid, double timeShift) {
- this.fpga = fpga;
- this.hybrid = hybrid;
- this.timeShift = timeShift;
- }
-
- /**
* Get the FPGA number.
* @return The FPGA number.
*/
int getFpga() {
- return fpga;
+ return getFieldValue("fpga");
}
/**
@@ -36,7 +22,7 @@
* @return The hybrid number.
*/
int getHybrid() {
- return hybrid;
+ return getFieldValue("hybrid");
}
/**
@@ -44,6 +30,6 @@
* @return The time shift.
*/
double getTimeShift() {
- return timeShift;
+ return getFieldValue("time_shift");
}
}
java/trunk/conditions/src/main/java/org/hps/conditions/svt
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtTimeShiftCollection.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtTimeShiftCollection.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -1,20 +1,24 @@
package org.hps.conditions.svt;
-import java.util.ArrayList;
-
+import org.hps.conditions.ConditionsObjectCollection;
+import org.hps.conditions.ConditionsTableMetaData;
import org.lcsim.hps.util.Pair;
/**
* A simple collection of {@link SvtTimeShift} objects.
* @author Jeremy McCormick <[log in to unmask]>
*/
-public class SvtTimeShiftCollection extends ArrayList<SvtTimeShift> {
+public class SvtTimeShiftCollection extends ConditionsObjectCollection<SvtTimeShift> {
+ SvtTimeShiftCollection(ConditionsTableMetaData tableMetaData, int collectionId, boolean isReadOnly) {
+ super(tableMetaData, collectionId, isReadOnly);
+ }
+
SvtTimeShiftCollection find(Pair<Integer,Integer> pair) {
- SvtTimeShiftCollection timeShifts = new SvtTimeShiftCollection();
+ SvtTimeShiftCollection timeShifts = new SvtTimeShiftCollection(this.getTableMetaData(), -1, false);
int fpga = pair.getFirstElement();
int hybrid = pair.getSecondElement();
- for (SvtTimeShift timeShift : this) {
+ for (SvtTimeShift timeShift : getObjects()) {
if (timeShift.getFpga() == fpga && timeShift.getHybrid() == hybrid) {
timeShifts.add(timeShift);
}
java/trunk/conditions/src/main/java/org/hps/conditions/svt
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtTimeShiftConverter.java 2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtTimeShiftConverter.java 2014-03-14 23:53:48 UTC (rev 301)
@@ -3,10 +3,13 @@
import java.sql.ResultSet;
import java.sql.SQLException;
-import org.lcsim.conditions.ConditionsManager;
+import org.hps.conditions.AbstractConditionsObject.FieldValueMap;
+import org.hps.conditions.ConditionsObject.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;
/**
* This class creates a {@link SvtGainCollection} from the conditions database.
@@ -14,12 +17,10 @@
*/
public class SvtTimeShiftConverter extends DatabaseConditionsConverter<SvtTimeShiftCollection> {
- /**
- * Class constructor.
- */
- public SvtTimeShiftConverter() {
+ public SvtTimeShiftConverter(ConditionsObjectFactory objectFactory) {
+ super(objectFactory);
}
-
+
/**
* Get the SVT channel constants for this run by named set.
* @param manager The current conditions manager.
@@ -34,17 +35,19 @@
// 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();
// Collection that will be returned.
- SvtTimeShiftCollection collection = new SvtTimeShiftCollection();
+ SvtTimeShiftCollection collection =
+ new SvtTimeShiftCollection(_objectFactory.getTableRegistry().getTableMetaData(tableName),
+ collectionId, true);
// Get the connection manager.
ConnectionManager connectionManager = ConnectionManager.getConnectionManager();
// Construct the query to find matching records.
- String query = "SELECT fpga, hybrid, time_shift FROM "
- + tableName + " WHERE " + fieldName + " = " + fieldValue;
+ String query = "SELECT id, fpga, hybrid, time_shift FROM "
+ + tableName + " WHERE " + fieldName + " = " + collectionId;
// Execute the query and get the results.
ResultSet resultSet = connectionManager.query(query);
@@ -52,14 +55,21 @@
try {
// Loop over the records.
while(resultSet.next()) {
- // Create the object with the sensor time shift.
- int fpga = resultSet.getInt(1);
- int hybrid = resultSet.getInt(2);
- double timeShift = resultSet.getDouble(3);
- collection.add(new SvtTimeShift(fpga, hybrid, timeShift));
+ int rowId = resultSet.getInt(1);
+
+ FieldValueMap fieldValues = new FieldValueMap();
+ fieldValues.put("fpga", resultSet.getInt(2));
+ fieldValues.put("hybrid", resultSet.getInt(3));
+ fieldValues.put("time_shift", resultSet.getInt(4));
+
+ SvtTimeShift newObject = _objectFactory.createObject(SvtTimeShift.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 SvtTimeShift object.", x);
}
// Return collection to caller.
SVNspam 0.1