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; + } +}