Print

Print


Author: [log in to unmask]
Date: Wed Jul 29 17:36:09 2015
New Revision: 3300

Log:
Add enum for indexing full scaler data array.

Added:
    java/trunk/record-util/src/main/java/org/hps/record/scalers/ScalerDataIndex.java
Modified:
    java/trunk/record-util/src/main/java/org/hps/record/scalers/ScalerData.java

Modified: java/trunk/record-util/src/main/java/org/hps/record/scalers/ScalerData.java
 =============================================================================
--- java/trunk/record-util/src/main/java/org/hps/record/scalers/ScalerData.java	(original)
+++ java/trunk/record-util/src/main/java/org/hps/record/scalers/ScalerData.java	Wed Jul 29 17:36:09 2015
@@ -7,8 +7,8 @@
 import org.lcsim.event.GenericObject;
 
 /**
- * This class encapsulates EVIO scaler data which is simply an array of integer values. The exact meaning of each of these integer words is defined
- * externally to this class.
+ * This class encapsulates EVIO scaler data which is simply an array of integer values. The exact meaning of each of
+ * these integer words is defined externally to this class.
  *
  * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a>
  */
@@ -38,7 +38,7 @@
     public static ScalerData read(final EventHeader event, final String collectionName) {
         ScalerData data = null;
         if (event.hasCollection(GenericObject.class, collectionName)) {
-            System.out.println("ScalerData - found collection");
+            //System.out.println("ScalerData - found collection");
             final List<GenericObject> objects = event.get(GenericObject.class, collectionName);
             data = new ScalerData();
             data.fromGenericObject(objects.get(0));
@@ -88,6 +88,15 @@
     public Integer getValue(final int index) {
         return this.data[index];
     }
+    
+    /**
+     * Get the value using a {@link ScalerDataIndex} enum.
+     * 
+     * @return the value at the index
+     */
+    public Integer getValue(ScalerDataIndex scalarDataIndex) {
+        return this.data[scalarDataIndex.index()];
+    }
 
     /**
      * Get the number of scalers.
@@ -109,7 +118,8 @@
     }
 
     /**
-     * Convert this object to a readable string, which is a list of integer values enclosed in braces and separated by commas.
+     * Convert this object to a readable string, which is a list of integer values enclosed in braces and separated by
+     * commas.
      *
      * @return this object converted to a string
      */

Added: java/trunk/record-util/src/main/java/org/hps/record/scalers/ScalerDataIndex.java
 =============================================================================
--- java/trunk/record-util/src/main/java/org/hps/record/scalers/ScalerDataIndex.java	(added)
+++ java/trunk/record-util/src/main/java/org/hps/record/scalers/ScalerDataIndex.java	Wed Jul 29 17:36:09 2015
@@ -0,0 +1,57 @@
+package org.hps.record.scalers;
+
+/**
+ * Represents an index into a {@link ScalerData} array from EVIO data (full 72 word integer array).
+ *
+ * @author Jeremy McCormick, SLAC
+ */
+public enum ScalerDataIndex {
+
+    /**
+     * Gated clock.
+     */
+    CLOCK_GATED(67),
+    /**
+     * Ungated clock.
+     */
+    CLOCK_UNGATED(68),
+    /**
+     * Gated Faraday cup TDC threshold.
+     */
+    FCUP_TDC_GATED(3),
+    /**
+     * Ungated Faraday cup TDC threshold.
+     */
+    FCUP_TDC_UNGATED(35),
+    /**
+     * Gated Faraday cup TRG threshold.
+     */
+    FCUP_TRG_GATED(19),
+    /**
+     * Ungated Faraday cup TRG threshold.
+     */
+    FCUP_TRG_UNGATED(51);
+
+    /**
+     * The index value within the scaler data array.
+     */
+    private int index;
+
+    /**
+     * Create a scaler data index.
+     *
+     * @param index the index within the data array
+     */
+    ScalerDataIndex(final int index) {
+        this.index = index;
+    }
+
+    /**
+     * Get the index value.
+     *
+     * @return the index value
+     */
+    public int index() {
+        return this.index;
+    }
+}