Author: [log in to unmask]
Date: Thu May 28 12:03:52 2015
New Revision: 3051
Log:
Change offset time to a double. HPSJAVA-513
Modified:
java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtTimingConstants.java
java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtTimingConstantsLoader.java
java/trunk/conditions/src/test/java/org/hps/conditions/svt/SvtTimingConstantsTest.java
Modified: java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtTimingConstants.java
=============================================================================
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtTimingConstants.java (original)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtTimingConstants.java Thu May 28 12:03:52 2015
@@ -11,28 +11,28 @@
* Conditions object for SVT timing configuration constants, including offset phase and time (in nanoseconds).
* <p>
* There will generally be only one of these records per run.
- *
+ *
* @author Jeremy McCormick
*/
@Table(names = {"svt_timing_constants"})
@Converter(multipleCollectionsAction = MultipleCollectionsAction.LAST_CREATED)
public final class SvtTimingConstants extends BaseConditionsObject {
-
+
/**
* The collection implementation for {@link SvtTimingConstants}.
*/
@SuppressWarnings("serial")
public static class SvtTimingConstantsCollection extends BaseConditionsObjectCollection<SvtTimingConstants> {
-
+
/**
* Find timing constants by offset phase and time.
- *
+ *
* @param offsetPhase the offset phase
* @param offsetTime the offset time
* @return the constants that match the params or <code>null</code> if not found
*/
- public SvtTimingConstants find(int offsetPhase, int offsetTime) {
- for (SvtTimingConstants constants : this) {
+ public SvtTimingConstants find(final int offsetPhase, final double offsetTime) {
+ for (final SvtTimingConstants constants : this) {
if (constants.getOffsetPhase().equals(offsetPhase) && constants.getOffsetTime().equals(offsetTime)) {
return constants;
}
@@ -40,24 +40,24 @@
return null;
}
}
-
- /**
- * The SVT offset time (ns).
- *
- * @return the SVT offset time (ns)
- */
- @Field(names = {"offset_time"})
- public Integer getOffsetTime() {
- return this.getFieldValue("offset_time");
- }
-
+
/**
* The SVT offset phase (ns).
- *
+ *
* @return the SVT offset phase
*/
@Field(names = {"offset_phase"})
public Integer getOffsetPhase() {
return this.getFieldValue("offset_phase");
}
+
+ /**
+ * The SVT offset time (ns).
+ *
+ * @return the SVT offset time (ns)
+ */
+ @Field(names = {"offset_time"})
+ public Double getOffsetTime() {
+ return this.getFieldValue("offset_time");
+ }
}
Modified: java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtTimingConstantsLoader.java
=============================================================================
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtTimingConstantsLoader.java (original)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtTimingConstantsLoader.java Thu May 28 12:03:52 2015
@@ -1,4 +1,4 @@
-package org. hps.conditions.svt;
+package org.hps.conditions.svt;
import java.io.File;
import java.util.ArrayList;
@@ -18,89 +18,127 @@
/**
* Load SVT timing constant data from the run spreadsheet and insert into the conditions database.
* <p>
- * Be very careful about running this, because it will create many new conditions records that may
- * already be present in the database. In fact, don't run this at all without talking to me first. :-)
- *
+ * Be very careful about running this, because it will create many new conditions records that may already be present in the database. In fact, don't
+ * run this at all without talking to me first. :-)
+ *
* @author Jeremy McCormick
*/
public final class SvtTimingConstantsLoader {
-
- /**
- * Setup conditions.
- */
- private static final DatabaseConditionsManager MANAGER = DatabaseConditionsManager.getInstance();
-
+
/**
* The fields from the run spreadsheet for SVT timing constants.
*/
private static final Set<String> FIELDS = new HashSet<String>();
+
+ /**
+ * Setup conditions.
+ */
+ private static final DatabaseConditionsManager MANAGER = DatabaseConditionsManager.getInstance();
static {
FIELDS.add("svt_offset_phase");
FIELDS.add("svt_offset_time");
}
-
+
+ /**
+ * Create the conditions collections from the unique values found in the spreadsheet.
+ *
+ * @param uniqueValues the list of unique raw values
+ * @return the new conditions collections
+ */
+ private static List<SvtTimingConstantsCollection> createCollections(final List<Collection<String>> uniqueValues) {
+ final List<SvtTimingConstantsCollection> collections = new ArrayList<SvtTimingConstantsCollection>();
+ for (final Collection<String> values : uniqueValues) {
+
+ final SvtTimingConstants timing = new SvtTimingConstants();
+ final Iterator<String> it = values.iterator();
+ final Integer offsetPhase = Integer.parseInt(it.next());
+ final Float offsetTime = Float.parseFloat(it.next());
+
+ timing.setFieldValue("offset_phase", offsetPhase);
+ timing.setFieldValue("offset_time", offsetTime);
+
+ final SvtTimingConstantsCollection collection = new SvtTimingConstantsCollection();
+ collection.add(timing);
+ collections.add(collection);
+ }
+ return collections;
+ }
+
+ /**
+ * Find a timing constants collection from offset phase and time.
+ * <p>
+ * Each collection has a single object in it.
+ *
+ * @param timingConstantsList the list of collections
+ * @param offsetPhase the offset phase
+ * @param offsetTime the offset time
+ * @return the matching collection or <code>null</code> if not found
+ */
+ private static SvtTimingConstantsCollection findCollection(final List<SvtTimingConstantsCollection> timingConstantsList, final int offsetPhase,
+ final double offsetTime) {
+ for (final SvtTimingConstantsCollection collection : timingConstantsList) {
+ if (collection.find(offsetPhase, offsetTime) != null) {
+ return collection;
+ }
+ }
+ return null;
+ }
+
/**
* Load the SVT timing constants for time and phase offsets into the conditions database.
- *
+ *
* @param args the command line arguments (requires one argument which is CSV file name)
*/
- public static void main(String[] args) {
-
+ public static void main(final String[] args) {
+
// Load in CSV records from the exported run spreadsheet.
- String path = args[0];
- RunSpreadsheet runSheet = new RunSpreadsheet(new File(path));
-
+ final String path = args[0];
+ final RunSpreadsheet runSheet = new RunSpreadsheet(new File(path));
+
// Find the run ranges that have the same fields values.
- List<RunRange> ranges = RunRange.findRunRanges(runSheet, FIELDS);
-
+ final List<RunRange> ranges = RunRange.findRunRanges(runSheet, FIELDS);
+
// Get the unique field values for inserting new conditions collections.
- List<Collection<String>> uniqueValues = RunRange.getUniqueValues(ranges);
-
+ final List<Collection<String>> uniqueValues = RunRange.getUniqueValues(ranges);
+
/*
- System.out.println("unique values ...");
- for (Collection<String> collection : uniqueValues) {
- for (String value : collection) {
- System.out.print(value + " ");
- }
- System.out.println();
- }
- */
-
+ * System.out.println("unique values ..."); for (Collection<String> collection : uniqueValues) { for (String value : collection) {
+ * System.out.print(value + " "); } System.out.println(); }
+ */
+
// Create a new collection for each unique combination set of timing constants.
- List<SvtTimingConstantsCollection> collections = createCollections(uniqueValues);
-
+ final List<SvtTimingConstantsCollection> collections = createCollections(uniqueValues);
+
// Create a new collection for each of the unique combinations of values.
- for (SvtTimingConstantsCollection collection : collections) {
+ for (final SvtTimingConstantsCollection collection : collections) {
int collectionId = 0;
try {
- collectionId = MANAGER.addCollection(
- "svt_timing_constants",
- "SVT timing constants added by " + System.getProperty("user.name"),
+ collectionId = MANAGER.addCollection("svt_timing_constants", "SVT timing constants added by " + System.getProperty("user.name"),
"timing constants from run spreadsheet");
collection.setCollectionId(collectionId);
collection.insert();
- } catch (Exception e) {
+ } catch (final Exception e) {
throw new RuntimeException(e);
- }
- }
-
+ }
+ }
+
// Create the conditions records for the run ranges.
- for (RunRange range : ranges) {
-
+ for (final RunRange range : ranges) {
+
System.out.println(range);
-
+
// Get the data values from the run range.
- int offsetPhase = Integer.parseInt(range.getValue("svt_offset_phase"));
- int offsetTime = Integer.parseInt(range.getValue("svt_offset_time"));
+ final int offsetPhase = Integer.parseInt(range.getValue("svt_offset_phase"));
+ final double offsetTime = Float.parseFloat(range.getValue("svt_offset_time"));
// Find the matching timing constants collection to use.
- SvtTimingConstantsCollection collection = findCollection(collections, offsetPhase, offsetTime);
+ final SvtTimingConstantsCollection collection = findCollection(collections, offsetPhase, offsetTime);
if (collection != null) {
System.out.println("offset_phase : " + collection.get(0).getOffsetPhase() + ", offset_time: " + collection.get(0).getOffsetTime());
}
-
+
// Create a new conditions record with the run range.
- ConditionsRecord condi = new ConditionsRecord();
+ final ConditionsRecord condi = new ConditionsRecord();
condi.setFieldValue("run_start", range.getRunStart());
condi.setFieldValue("run_end", range.getRunEnd());
condi.setFieldValue("name", "svt_timing_constants");
@@ -108,61 +146,17 @@
condi.setFieldValue("notes", "timing constants from run spreadsheet");
condi.setFieldValue("created", new Date());
condi.setFieldValue("created_by", System.getProperty("user.name"));
-
+
condi.setFieldValue("collection_id", collection.getCollectionId());
try {
condi.insert();
- } catch (Exception e) {
+ } catch (final Exception e) {
throw new RuntimeException(e);
- }
-
- System.out.print(condi);
+ }
+
+ System.out.print(condi);
System.out.println();
}
}
-
- /**
- * Create the conditions collections from the unique values found in the spreadsheet.
- *
- * @param uniqueValues the list of unique raw values
- * @return the new conditions collections
- */
- private static List<SvtTimingConstantsCollection> createCollections(List<Collection<String>> uniqueValues) {
- List<SvtTimingConstantsCollection> collections = new ArrayList<SvtTimingConstantsCollection>();
- for (Collection<String> values : uniqueValues) {
-
- SvtTimingConstants timing = new SvtTimingConstants();
- Iterator<String> it = values.iterator();
- Integer offsetPhase = Integer.parseInt(it.next());
- Integer offsetTime = Integer.parseInt(it.next());
-
- timing.setFieldValue("offset_phase", offsetPhase);
- timing.setFieldValue("offset_time", offsetTime);
-
- SvtTimingConstantsCollection collection = new SvtTimingConstantsCollection();
- collection.add(timing);
- collections.add(collection);
- }
- return collections;
- }
-
- /**
- * Find a timing constants collection from offset phase and time.
- * <p>
- * Each collection has a single object in it.
- *
- * @param timingConstantsList the list of collections
- * @param offsetPhase the offset phase
- * @param offsetTime the offset time
- * @return the matching collection or <code>null</code> if not found
- */
- private static SvtTimingConstantsCollection findCollection(List<SvtTimingConstantsCollection> timingConstantsList, int offsetPhase, int offsetTime) {
- for (SvtTimingConstantsCollection collection : timingConstantsList) {
- if (collection.find(offsetPhase, offsetTime) != null) {
- return collection;
- }
- }
- return null;
- }
}
Modified: java/trunk/conditions/src/test/java/org/hps/conditions/svt/SvtTimingConstantsTest.java
=============================================================================
--- java/trunk/conditions/src/test/java/org/hps/conditions/svt/SvtTimingConstantsTest.java (original)
+++ java/trunk/conditions/src/test/java/org/hps/conditions/svt/SvtTimingConstantsTest.java Thu May 28 12:03:52 2015
@@ -24,8 +24,8 @@
* This is a list of run start values to check.
*/
private static final int[] RUNS = new int[] {4871, 5038, 5076, 5139, 5174, 5218, 5236, 5251, 5263, 5299, 5310, 5375, 5400, 5533, 5558, 5575,
- 5596, 5601, 5603, 5610, 4871, 5038, 5076, 5139, 5174, 5218, 5236, 5251, 5263, 5299, 5310, 5375, 5400, 5533, 5558, 5575, 5596, 5601, 5603,
- 5610, 5640, 5641, 5642, 5686, 5722, 5779};
+ 5596, 5601, 5603, 5610, 4871, 5038, 5076, 5139, 5174, 5218, 5236, 5251, 5263, 5299, 5310, 5375, 5400, 5533, 5558, 5575, 5596, 5601, 5603,
+ 5610, 5640, 5641, 5642, 5686, 5722, 5779};
/**
* Load SVT timing constants and print them out by run range.
@@ -44,6 +44,5 @@
System.out.println("run_start: " + condi.getRunStart() + ", run_end: " + condi.getRunEnd() + ", offset_phase: "
+ collection.get(0).getOffsetPhase() + ", offset_time: " + collection.get(0).getOffsetTime());
}
-
}
}
|