Author: [log in to unmask]
Date: Tue Aug 4 16:31:09 2015
New Revision: 3334
Log:
Replace dates with UTC time values.
Modified:
java/trunk/record-util/src/main/java/org/hps/record/run/RunManager.java
java/trunk/record-util/src/main/java/org/hps/record/run/RunSummary.java
java/trunk/record-util/src/main/java/org/hps/record/run/RunSummaryReader.java
Modified: java/trunk/record-util/src/main/java/org/hps/record/run/RunManager.java
=============================================================================
--- java/trunk/record-util/src/main/java/org/hps/record/run/RunManager.java (original)
+++ java/trunk/record-util/src/main/java/org/hps/record/run/RunManager.java Tue Aug 4 16:31:09 2015
@@ -72,6 +72,14 @@
* The {@link RunSummary} for the current run.
*/
private RunSummary runSummary = null;
+
+ void closeConnection() {
+ try {
+ this.connection.close();
+ } catch (final SQLException e) {
+ e.printStackTrace();
+ }
+ }
/**
* Load new run information when conditions have changed.
@@ -175,14 +183,11 @@
}
/**
- * Set the run number.
- * <p>
- * This is public in order for the class to be usable without the conditions system but it should not be called
- * within a standard lcsim job as it resets the global state of the RunManager.
+ * Set the run number and load the applicable {@link RunSummary} from the db.
*
* @param run the run number
*/
- public synchronized void setRun(final int run) {
+ synchronized void setRun(final int run) {
if (run < 0) {
throw new IllegalArgumentException("invalid run number: " + run);
Modified: java/trunk/record-util/src/main/java/org/hps/record/run/RunSummary.java
=============================================================================
--- java/trunk/record-util/src/main/java/org/hps/record/run/RunSummary.java (original)
+++ java/trunk/record-util/src/main/java/org/hps/record/run/RunSummary.java Tue Aug 4 16:31:09 2015
@@ -20,26 +20,30 @@
* This information includes:
* <ul>
* <li>run number</li>
- * <li>start date</li>
- * <li>end date</li>
- * <li>total number of events across all files in the run</li>
- * <li>number of files found belonging to the run</li>
- * <li>whether the EVIO END event was found</li>
- * <li>whether the run is considered good</li>
+ * <li>start time (UTC)</li>
+ * <li>end time (UTC)</li>
+ * <li>total number of events in the run</li>
+ * <li>number of EVIO files in the run</li>
+ * <li>whether the END event was found indicating that the DAQ did not crash</li>
+ * <li>whether the run is considered good (all <code>true</code> for now)</li>
+ * <li>list of EVIO files in the run</li>
* </ul>
+ * There are also associated {@link org.hps.record.epics.EpicsData} and {@link org.hps.record.scalers.ScalerData}
+ * objects representing the EPICS and scaler data summaries for the run. The EPICS data is averaged over the whole run
+ * while the scalers are from the last scaler data bank that was found.
*
* @author Jeremy McCormick, SLAC
*/
public final class RunSummary {
/**
- * Set up date formatting to display EST (GMT-4).
+ * Default date display format.
*/
private static final DateFormat DATE_DISPLAY = new SimpleDateFormat();
static {
/**
- * Set default time zone to East Coast (JLAB) where data was taken.
+ * Set default time zone for display to East Coast (JLAB) where data was taken.
*/
DATE_DISPLAY.setCalendar(new GregorianCalendar(TimeZone.getTimeZone("America/New_York")));
}
@@ -47,16 +51,16 @@
private Date created;
/**
- * The end date of the run.
- */
- private Date endDate;
-
- /**
* This is <code>true</code> if the END event is found in the data.
*/
private boolean endOkay;
/**
+ * The run end time in UTC (milliseconds).
+ */
+ private long endTimeUtc;
+
+ /**
* The combined EPICS information for the run (uses the mean values for each variable).
*/
private EpicsData epics;
@@ -87,9 +91,9 @@
private ScalerData scalerData;
/**
- * The start date of the run.
- */
- private Date startDate;
+ * The run start time in UTC (milliseconds).
+ */
+ private long startTimeUtc;
/**
* The total events found in the run across all files.
@@ -134,14 +138,12 @@
}
/**
- * Get the date when the run ended.
- * <p>
- * This will be extracted from the EVIO END event. If there is no END record it will be the last event time.
- *
- * @return the date when the run ended
+ * Get the end date.
+ *
+ * @return the end date
*/
public Date getEndDate() {
- return this.endDate;
+ return new Date(this.endTimeUtc);
}
/**
@@ -151,6 +153,15 @@
*/
public boolean getEndOkay() {
return this.endOkay;
+ }
+
+ /**
+ * Get the end time in UTC (milliseconds)
+ *
+ * @return the end time in milliseconds
+ */
+ public long getEndTimeUtc() {
+ return this.endTimeUtc;
}
/**
@@ -223,12 +234,21 @@
}
/**
- * Get the start date of the run.
- *
- * @return the start date of the run
+ * Get the start date.
+ *
+ * @return the start date
*/
public Date getStartDate() {
- return this.startDate;
+ return new Date(this.startTimeUtc);
+ }
+
+ /**
+ * Get the run start time in UTC (milliseconds).
+ *
+ * @return the start time in milliseconds
+ */
+ public long getStartTimeUtc() {
+ return this.startTimeUtc;
}
/**
@@ -255,13 +275,7 @@
* @return the total seconds in the run
*/
public long getTotalSeconds() {
- if (this.getStartDate() == null) {
- throw new RuntimeException("missing start date");
- }
- if (this.getEndDate() == null) {
- throw new RuntimeException("missing end date");
- }
- return (this.getEndDate().getTime() - this.getStartDate().getTime()) / 1000;
+ return (this.endTimeUtc - this.startTimeUtc) / 1000;
}
/**
@@ -308,15 +322,6 @@
}
/**
- * Set the end date.
- *
- * @param endDate the end date
- */
- public void setEndDate(final Date endDate) {
- this.endDate = endDate;
- }
-
- /**
* Set if end is okay.
*
* @param endOkay <code>true</code> if end is okay
@@ -326,6 +331,15 @@
}
/**
+ * Set the end date.
+ *
+ * @param endDate the end date
+ */
+ public void setEndTimeUtc(final long endTimeUtc) {
+ this.endTimeUtc = endTimeUtc;
+ }
+
+ /**
* Set the EPICS data for the run.
*
* @param epics the EPICS data for the run
@@ -375,8 +389,8 @@
*
* @param startDate the start date of the run
*/
- public void setStartDate(final Date startDate) {
- this.startDate = startDate;
+ public void setStartTimeUtc(final long startTimeUtc) {
+ this.startTimeUtc = startTimeUtc;
}
/**
@@ -420,8 +434,8 @@
*/
@Override
public String toString() {
- return "RunSummary { run: " + this.getRun() + ", startDate: " + this.getStartDate() + ", endDate: "
- + this.getEndDate() + ", totalEvents: " + this.getTotalEvents() + ", totalFiles: "
+ return "RunSummary { run: " + this.getRun() + ", startTimeUtc: " + this.getStartTimeUtc() + ", endTimeUtc: "
+ + this.getEndTimeUtc() + ", totalEvents: " + this.getTotalEvents() + ", totalFiles: "
+ this.getTotalFiles() + ", endOkay: " + this.getEndOkay() + ", runOkay: " + this.getRunOkay()
+ ", updated: " + this.getUpdated() + ", created: " + this.getCreated() + " }";
}
Modified: java/trunk/record-util/src/main/java/org/hps/record/run/RunSummaryReader.java
=============================================================================
--- java/trunk/record-util/src/main/java/org/hps/record/run/RunSummaryReader.java (original)
+++ java/trunk/record-util/src/main/java/org/hps/record/run/RunSummaryReader.java Tue Aug 4 16:31:09 2015
@@ -18,7 +18,7 @@
/**
* The SQL SELECT query string.
*/
- private final String SELECT_SQL = "SELECT run, start_date, end_date, nevents, nfiles, end_ok, run_ok, updated, created FROM runs WHERE run = ?";
+ private final String SELECT_SQL = "SELECT run, start_time_utc, end_time_utc, nevents, nfiles, end_ok, run_ok, updated, created FROM runs WHERE run = ?";
/**
* Read data from the database and convert to a {@link RunSummary} object.
@@ -42,8 +42,8 @@
}
final RunSummary runSummary = new RunSummary(this.getRun());
- runSummary.setStartDate(resultSet.getTimestamp("start_date"));
- runSummary.setEndDate(resultSet.getTimestamp("end_date"));
+ runSummary.setStartTimeUtc(resultSet.getLong("start_time_utc"));
+ runSummary.setEndTimeUtc(resultSet.getLong("end_time_utc"));
runSummary.setTotalEvents(resultSet.getInt("nevents"));
runSummary.setTotalFiles(resultSet.getInt("nfiles"));
runSummary.setEndOkay(resultSet.getBoolean("end_ok"));
|