Author: [log in to unmask] Date: Fri May 29 14:21:13 2015 New Revision: 3064 Log: Cleanup of EPICS and scaler record utilities. Added: java/trunk/evio/src/test/java/org/hps/evio/ScalersTest.java - copied, changed from r3058, java/trunk/evio/src/test/java/org/hps/evio/ScalarsTest.java java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/scalers/ - copied from r3049, java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/scalars/ java/trunk/record-util/src/main/java/org/hps/record/scalers/ - copied from r3049, java/trunk/record-util/src/main/java/org/hps/record/scalars/ java/trunk/record-util/src/main/java/org/hps/record/scalers/ScalerData.java - copied, changed from r3049, java/trunk/record-util/src/main/java/org/hps/record/scalars/ScalarData.java java/trunk/record-util/src/main/java/org/hps/record/scalers/ScalerUtilities.java - copied, changed from r3049, java/trunk/record-util/src/main/java/org/hps/record/scalars/ScalarUtilities.java java/trunk/record-util/src/main/java/org/hps/record/scalers/ScalersEvioProcessor.java - copied, changed from r3049, java/trunk/record-util/src/main/java/org/hps/record/scalars/ScalarsEvioProcessor.java java/trunk/record-util/src/main/java/org/hps/record/scalers/ScalersGenericObject.java - copied, changed from r3049, java/trunk/record-util/src/main/java/org/hps/record/scalars/ScalarsGenericObject.java Removed: java/trunk/evio/src/test/java/org/hps/evio/ScalarsTest.java java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/scalars/ java/trunk/record-util/src/main/java/org/hps/record/scalars/ java/trunk/record-util/src/main/java/org/hps/record/scalers/ScalarData.java java/trunk/record-util/src/main/java/org/hps/record/scalers/ScalarUtilities.java java/trunk/record-util/src/main/java/org/hps/record/scalers/ScalarsEvioProcessor.java java/trunk/record-util/src/main/java/org/hps/record/scalers/ScalarsGenericObject.java Modified: java/trunk/evio/src/test/java/org/hps/evio/EpicsDataTest.java java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/example/ExamplePlotDriver.java java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/scalers/DeadtimePlots.java java/trunk/record-util/src/main/java/org/hps/record/epics/EpicsData.java java/trunk/record-util/src/main/java/org/hps/record/epics/EpicsEvioProcessor.java java/trunk/record-util/src/main/java/org/hps/record/epics/EpicsGenericObject.java java/trunk/record-util/src/main/java/org/hps/record/evio/EvioEventConstants.java java/trunk/record-util/src/main/java/org/hps/record/scalers/package-info.java java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring/DeadtimeMonitor.lcsim Modified: java/trunk/evio/src/test/java/org/hps/evio/EpicsDataTest.java ============================================================================= --- java/trunk/evio/src/test/java/org/hps/evio/EpicsDataTest.java (original) +++ java/trunk/evio/src/test/java/org/hps/evio/EpicsDataTest.java Fri May 29 14:21:13 2015 @@ -13,7 +13,6 @@ import org.hps.record.enums.DataSourceType; import org.hps.record.enums.ProcessingStage; import org.hps.record.epics.EpicsData; -import org.hps.record.epics.EpicsEvioProcessor; import org.hps.record.evio.EvioDetectorConditionsProcessor; import org.lcsim.event.EventHeader; import org.lcsim.util.Driver; @@ -29,7 +28,7 @@ */ public class EpicsDataTest extends TestCase { - static final String TEST_FILE_URL = "http://www.lcsim.org/test/hps-java/ScalarsTest/hpsecal_004469_1000_events.evio.0"; + static final String TEST_FILE_URL = "http://www.lcsim.org/test/hps-java/ScalersTest/hpsecal_004469_1000_events.evio.0"; public void test() throws IOException { @@ -44,7 +43,6 @@ // Setup and run the loop to write out LCIO events with the EPICS scalar data. final CompositeLoopConfiguration configuration = new CompositeLoopConfiguration(); - configuration.add(new EpicsEvioProcessor()); configuration.setDataSourceType(DataSourceType.EVIO_FILE); configuration.add(new EvioDetectorConditionsProcessor("HPS-ECalCommissioning-v2")); configuration.setLCSimEventBuilder(builder); Copied: java/trunk/evio/src/test/java/org/hps/evio/ScalersTest.java (from r3058, java/trunk/evio/src/test/java/org/hps/evio/ScalarsTest.java) ============================================================================= --- java/trunk/evio/src/test/java/org/hps/evio/ScalarsTest.java (original) +++ java/trunk/evio/src/test/java/org/hps/evio/ScalersTest.java Fri May 29 14:21:13 2015 @@ -12,10 +12,9 @@ import org.hps.record.enums.DataSourceType; import org.hps.record.enums.ProcessingStage; import org.hps.record.evio.EvioDetectorConditionsProcessor; -import org.hps.record.scalars.ScalarData; -import org.hps.record.scalars.ScalarUtilities; -import org.hps.record.scalars.ScalarUtilities.LiveTimeIndex; -import org.hps.record.scalars.ScalarsEvioProcessor; +import org.hps.record.scalers.ScalerData; +import org.hps.record.scalers.ScalerUtilities; +import org.hps.record.scalers.ScalerUtilities.LiveTimeIndex; import org.lcsim.event.EventHeader; import org.lcsim.util.Driver; import org.lcsim.util.cache.FileCache; @@ -24,15 +23,15 @@ import org.lcsim.util.test.TestUtil.TestOutputFile; /** - * Test of reading scalar data from EVIO files. + * Test of reading scaler data from EVIO files. * <p> * <a href="https://jira.slac.stanford.edu/browse/HPSJAVA-470">HPSJAVA-470</a> * * @author Jeremy McCormick <[log in to unmask]> */ -public class ScalarsTest extends TestCase { +public class ScalersTest extends TestCase { - static final String TEST_FILE_URL = "http://www.lcsim.org/test/hps-java/ScalarsTest/hpsecal_004469_1000_events.evio.0"; + static final String TEST_FILE_URL = "http://www.lcsim.org/test/hps-java/ScalersTest/hpsecal_004469_1000_events.evio.0"; public void test() throws Exception { @@ -47,7 +46,6 @@ // Configure and run the job to write out the LCIO from EVIO. CompositeLoopConfiguration configuration = new CompositeLoopConfiguration(); - configuration.add(new ScalarsEvioProcessor()); configuration.setDataSourceType(DataSourceType.EVIO_FILE); configuration.add(new EvioDetectorConditionsProcessor("HPS-ECalCommissioning-v2")); configuration.setLCSimEventBuilder(builder); @@ -55,7 +53,7 @@ configuration.setProcessingStage(ProcessingStage.LCIO); configuration.setStopOnEndRun(false); configuration.setStopOnErrors(true); - TestOutputFile outputFile = new TestOutputFile("ScalarsTest.slcio"); + TestOutputFile outputFile = new TestOutputFile("ScalersTest.slcio"); configuration.add(new LCIODriver(outputFile.getPath())); CompositeLoop loop = new CompositeLoop(); loop.setConfiguration(configuration); @@ -66,14 +64,14 @@ readLoop.setLCIORecordSource(outputFile); readLoop.add(new Driver() { public void process(EventHeader event) { - ScalarData data = ScalarData.read(event); + ScalerData data = ScalerData.read(event); if (data != null) { - System.out.println("Driver got ScalarData in LCIO event ..."); + System.out.println("Driver got ScalerData in LCIO event ..."); System.out.println(data.toString()); - double fcupTdc = ScalarUtilities.getLiveTime(data, LiveTimeIndex.FCUP_TDC); - double fcupTrg = ScalarUtilities.getLiveTime(data, LiveTimeIndex.FCUP_TRG); - double clock = ScalarUtilities.getLiveTime(data, LiveTimeIndex.CLOCK); + double fcupTdc = ScalerUtilities.getLiveTime(data, LiveTimeIndex.FCUP_TDC); + double fcupTrg = ScalerUtilities.getLiveTime(data, LiveTimeIndex.FCUP_TRG); + double clock = ScalerUtilities.getLiveTime(data, LiveTimeIndex.CLOCK); System.out.println("calculated live times ..."); System.out.println(LiveTimeIndex.FCUP_TDC.toString() + " = " + fcupTdc); Modified: java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/example/ExamplePlotDriver.java ============================================================================= --- java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/example/ExamplePlotDriver.java (original) +++ java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/example/ExamplePlotDriver.java Fri May 29 14:21:13 2015 @@ -79,7 +79,7 @@ EcalReadoutHits - class org.lcsim.event.base.BaseRawCalorimeterHit EpicsData - interface org.lcsim.event.GenericObject EcalCalHits - interface org.lcsim.event.CalorimeterHit -ScalarData - interface org.lcsim.event.GenericObject +ScalerData - interface org.lcsim.event.GenericObject TriggerBank - class org.hps.recon.ecal.triggerbank.AbstractIntData EcalClusters - interface org.lcsim.event.Cluster */ Modified: java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/scalers/DeadtimePlots.java ============================================================================= --- java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/scalers/DeadtimePlots.java (original) +++ java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/scalers/DeadtimePlots.java Fri May 29 14:21:13 2015 @@ -1,12 +1,13 @@ -package org.hps.monitoring.drivers.scalars; +package org.hps.monitoring.drivers.scalers; import java.util.Date; + import org.hps.monitoring.plotting.MonitoringPlotFactory; import org.hps.monitoring.plotting.StripChartUpdater; import org.hps.monitoring.plotting.ValueProvider; -import org.hps.record.scalars.ScalarData; -import org.hps.record.scalars.ScalarUtilities; -import org.hps.record.scalars.ScalarUtilities.LiveTimeIndex; +import org.hps.record.scalers.ScalerData; +import org.hps.record.scalers.ScalerUtilities; +import org.hps.record.scalers.ScalerUtilities.LiveTimeIndex; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.Axis; import org.jfree.chart.axis.DateAxis; @@ -19,15 +20,16 @@ /** * + * Make a strip chart for DAQ deadtime from the info in the scaler block. + * * @author mgraham - * make a strip chart for DAQ deadtime from the info in the scalar block */ public class DeadtimePlots extends Driver { // static final int REFRESH_RATE = 10 * 1000; // units = ms // static final double DOMAIN_SIZE = 4 * 60 * 60 * 1000; // x-axis range (ms) double DOMAIN_SIZE = 10 * 60 * 1000; // 10 minutes - String scalarsName = "Scalars"; + //String scalarsName = "Scalars"; int events; @@ -63,10 +65,10 @@ @Override public void process(EventHeader event) { - ScalarData data = ScalarData.read(event); + ScalerData data = ScalerData.read(event); if (data != null) { - fcupTdc = ScalarUtilities.getLiveTime(data, LiveTimeIndex.FCUP_TDC); // etc. } - fcupTrg = ScalarUtilities.getLiveTime(data, LiveTimeIndex.FCUP_TRG); // etc. } + fcupTdc = ScalerUtilities.getLiveTime(data, LiveTimeIndex.FCUP_TDC); // etc. } + fcupTrg = ScalerUtilities.getLiveTime(data, LiveTimeIndex.FCUP_TRG); // etc. } // fill strip charts: long now = System.currentTimeMillis(); Modified: java/trunk/record-util/src/main/java/org/hps/record/epics/EpicsData.java ============================================================================= --- java/trunk/record-util/src/main/java/org/hps/record/epics/EpicsData.java (original) +++ java/trunk/record-util/src/main/java/org/hps/record/epics/EpicsData.java Fri May 29 14:21:13 2015 @@ -12,7 +12,7 @@ import org.lcsim.event.GenericObject; /** - * This is an API for reading and writing EPICS scalar data to LCIO events, as well as parsing the scalar data from a CDATA section within an EVIO + * This is an API for reading and writing EPICS data to LCIO events, as well as parsing the data from a CDATA section within an EVIO * string data bank. The {@link #read(EventHeader)} method should be used to create one of these objects from an LCIO event. * * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a> @@ -22,7 +22,7 @@ /** * Default collection name in the LCSim events. */ - public static final String DEFAULT_COLLECTION_NAME = "EpicsScalarData"; + private static final String DEFAULT_COLLECTION_NAME = "EpicsData"; /** * This map contains the list of EPICS key descriptions from the<br/> @@ -33,17 +33,17 @@ /** * Dummy float parameters to make LCIO persistency work. */ - static final Map<String, float[]> DUMMY_FLOAT_MAP = new HashMap<String, float[]>(); + private static final Map<String, float[]> DUMMY_FLOAT_MAP = new HashMap<String, float[]>(); /** * Dummy int parameters to make LCIO persistency work. */ - static final Map<String, int[]> DUMMY_INT_MAP = new HashMap<String, int[]>(); + private static final Map<String, int[]> DUMMY_INT_MAP = new HashMap<String, int[]>(); /** * Collection parameter that has the EPICS variable names. */ - public static final String EPICS_SCALAR_NAMES = "EPICS_SCALAR_NAMES"; + private static final String EPICS_VARIABLE_NAMES = "EPICS_VARIABLE_NAMES"; /** * List of descriptions. @@ -80,12 +80,12 @@ } /** - * Get the static list of available EPICs scalar names. + * Get the static list of all available EPICs variable names. * <p> * This could be different than the variable names which were actually written into the collection header. For this, instead use the method * {@link #getUsedNames()}. * - * @return the set of default EPICS scalar names + * @return the set of default EPICS variable names */ public static Set<String> getDefaultNames() { return DESCRIPTIONS.keySet(); @@ -94,7 +94,7 @@ /** * Get the description of a named EPICS variable. * - * @param name the name of the scalar + * @param name the name of the variable */ public static String getDescription(final String name) { return DESCRIPTIONS.get(name); @@ -125,11 +125,11 @@ * @param collectionName the collection name * @return the EPICS data from the LCIO event */ - static EpicsData read(final EventHeader event, final String collectionName) { + private static EpicsData read(final EventHeader event, final String collectionName) { final List<GenericObject> collection = event.get(GenericObject.class, collectionName); @SuppressWarnings("rawtypes") final Map stringMap = event.getMetaData(collection).getStringParameters(); - final String[] keys = (String[]) stringMap.get(EPICS_SCALAR_NAMES); + final String[] keys = (String[]) stringMap.get(EPICS_VARIABLE_NAMES); final EpicsData data = new EpicsData(); data.fromGenericObject(collection.get(0), keys); return data; @@ -143,10 +143,10 @@ /** * Given a list of names, read the double values from the {@link org.lcsim.event.GenericObject} into the data map of this object. * - * @param object the <code>GenericObject</code> with the scalar values + * @param object the <code>GenericObject</code> with the data values * @param names The list of names. */ - void fromGenericObject(final GenericObject object, final String[] names) { + private void fromGenericObject(final GenericObject object, final String[] names) { for (int index = 0; index < names.length; index++) { this.dataMap.put(names[index], object.getDoubleVal(index)); } @@ -172,11 +172,11 @@ } /** - * Get the list of used EPICS scalars in this object. + * Get the list of EPICS variables used by this object. * <p> * This could potentially be different than the list of default names from {@link #getDefaultNames()} but it will usually be the same. * - * @return the list of used EPICS scalar names + * @return the list of used EPICS variable names */ public Set<String> getUsedNames() { return this.dataMap.keySet(); @@ -192,7 +192,7 @@ } /** - * Get a double value from the key which should be a valid EPICS variable name. + * Set a double value by name. * * @return the value from the key */ @@ -205,7 +205,7 @@ * * @return the <code>GenericObject</code> representing this data */ - EpicsGenericObject toGenericObject() { + private EpicsGenericObject toGenericObject() { final EpicsGenericObject newObject = new EpicsGenericObject(); newObject.setKeys(new String[this.dataMap.size()]); newObject.setValues(new double[this.dataMap.size()]); @@ -247,12 +247,12 @@ * @param event the LCIO event * @param collectionName the name of the collection in the output event */ - void write(final EventHeader event, final String collectionName) { + private void write(final EventHeader event, final String collectionName) { final List<GenericObject> collection = new ArrayList<GenericObject>(); final EpicsGenericObject object = this.toGenericObject(); collection.add(object); final Map<String, String[]> stringMap = new HashMap<String, String[]>(); - stringMap.put(EPICS_SCALAR_NAMES, object.getKeys()); + stringMap.put(EPICS_VARIABLE_NAMES, object.getKeys()); event.put(collectionName, collection, GenericObject.class, 0, DUMMY_INT_MAP, DUMMY_FLOAT_MAP, stringMap); } } Modified: java/trunk/record-util/src/main/java/org/hps/record/epics/EpicsEvioProcessor.java ============================================================================= --- java/trunk/record-util/src/main/java/org/hps/record/epics/EpicsEvioProcessor.java (original) +++ java/trunk/record-util/src/main/java/org/hps/record/epics/EpicsEvioProcessor.java Fri May 29 14:21:13 2015 @@ -1,17 +1,23 @@ package org.hps.record.epics; + +import java.util.logging.Level; +import java.util.logging.Logger; import org.hps.record.evio.EvioEventConstants; import org.hps.record.evio.EvioEventProcessor; import org.jlab.coda.jevio.BaseStructure; import org.jlab.coda.jevio.EvioEvent; +import org.lcsim.util.log.DefaultLogFormatter; +import org.lcsim.util.log.LogUtil; /** - * This is an EVIO event processor that will read EPICS events (event tag 31) and turn them into {@link EpicsData} - * objects. + * This is an EVIO event processor that will read EPICS events (event tag 31) and turn them into {@link EpicsData} objects. * * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a> */ public final class EpicsEvioProcessor extends EvioEventProcessor { + + private static final Logger LOGGER = LogUtil.create(EpicsEvioProcessor.class, new DefaultLogFormatter(), Level.ALL); /** * The current EPICS data object. @@ -40,12 +46,15 @@ return; } + LOGGER.info("processing EPICS event " + evio.getEventNumber()); + // Find the bank with the EPICS information. BaseStructure epicsBank = null; final BaseStructure topBank = evio.getChildrenList().get(0); for (final BaseStructure childBank : topBank.getChildrenList()) { if (childBank.getHeader().getTag() == EvioEventConstants.EPICS_BANK_TAG) { epicsBank = childBank; + LOGGER.info("found EPICS data bank " + childBank.getHeader().getTag()); break; } } Modified: java/trunk/record-util/src/main/java/org/hps/record/epics/EpicsGenericObject.java ============================================================================= --- java/trunk/record-util/src/main/java/org/hps/record/epics/EpicsGenericObject.java (original) +++ java/trunk/record-util/src/main/java/org/hps/record/epics/EpicsGenericObject.java Fri May 29 14:21:13 2015 @@ -3,9 +3,8 @@ import org.lcsim.event.GenericObject; /** - * This is an implementation of GenericObject for reading and writing EPICS data. There is no functionality here - * intended for ends users. Instead, the EPICS data should be accessed using - * {@link EpicsData#read(org.lcsim.event.EventHeader)} to create the data object from input event data. + * This is an implementation of GenericObject for reading and writing EPICS data. There is no functionality here intended for ends users. Instead, the + * EPICS data should be accessed using {@link EpicsData#read(org.lcsim.event.EventHeader)} to create the data object from input event data. * * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a> */ Modified: java/trunk/record-util/src/main/java/org/hps/record/evio/EvioEventConstants.java ============================================================================= --- java/trunk/record-util/src/main/java/org/hps/record/evio/EvioEventConstants.java (original) +++ java/trunk/record-util/src/main/java/org/hps/record/evio/EvioEventConstants.java Fri May 29 14:21:13 2015 @@ -71,14 +71,14 @@ public static final int PRESTART_EVENT_TAG = 17; /** - * Tag of the scalars integer bank, which is a child of the crate bank. + * Tag of the scalers integer bank, which is a child of the crate bank. */ - public static final int SCALARS_BANK_TAG = 57621; + public static final int SCALERS_BANK_TAG = 57621; /** - * Tag of the scalars crate bank, which is a child of the top bank. + * Tag of the scalers crate bank, which is a child of the top bank. */ - public static final int SCALARS_CRATE_TAG = 39; + public static final int SCALERS_CRATE_TAG = 39; /** * CODA SYNC event tag. Copied: java/trunk/record-util/src/main/java/org/hps/record/scalers/ScalerData.java (from r3049, java/trunk/record-util/src/main/java/org/hps/record/scalars/ScalarData.java) ============================================================================= --- java/trunk/record-util/src/main/java/org/hps/record/scalars/ScalarData.java (original) +++ java/trunk/record-util/src/main/java/org/hps/record/scalers/ScalerData.java Fri May 29 14:21:13 2015 @@ -1,4 +1,4 @@ -package org.hps.record.scalars; +package org.hps.record.scalers; import java.util.ArrayList; import java.util.List; @@ -7,61 +7,62 @@ import org.lcsim.event.GenericObject; /** - * This class encapsulates EVIO scalar 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> */ -public final class ScalarData { +public final class ScalerData { /** - * Default name of scalar data collection in LCSim events. + * Default name of scaler data collection in LCSim events. */ - static String DEFAULT_SCALAR_DATA_COLLECTION_NAME = "ScalarData"; + private static final String DEFAULT_COLLECTION_NAME = "ScalerData"; /** - * Create a new <code>ScalarData</code> object from an LCIO event, using the default collection name. + * Create a new <code>ScalerData</code> object from an LCIO event, using the default collection name. * * @param event the LCIO event data - * @return the <code>ScalarData</code> object or <code>null</code> if there's no scalar data in the event + * @return the <code>ScalerData</code> object or <code>null</code> if there's no scaler data in the event */ - public static ScalarData read(final EventHeader event) { - return read(event, DEFAULT_SCALAR_DATA_COLLECTION_NAME); + public static ScalerData read(final EventHeader event) { + return read(event, DEFAULT_COLLECTION_NAME); } /** * Create a new object from the data in an LCIO event, using the default collection name. * * @param event the LCIO event data - * @return the <code>ScalarData</code> object or <code>null</code> if does not exist in event + * @return the <code>ScalerData</code> object or <code>null</code> if does not exist in event */ - public static ScalarData read(final EventHeader event, final String collectionName) { - ScalarData data = null; + 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"); final List<GenericObject> objects = event.get(GenericObject.class, collectionName); - data = new ScalarData(); + data = new ScalerData(); data.fromGenericObject(objects.get(0)); } return data; } /** - * The scalar data values. + * The scaler data values. */ private int[] data; /** * This is the no argument constructor which is for package internal use only. */ - ScalarData() { + ScalerData() { } /** - * Create from provided scalar data values. + * Create from provided scaler data values. * - * @param data the scalar data + * @param data the scaler data */ - public ScalarData(final int[] data) { + public ScalerData(final int[] data) { this.data = new int[data.length]; System.arraycopy(data, 0, this.data, 0, data.length); } @@ -69,9 +70,9 @@ /** * Load data into this object from an {@link org.lcsim.event.GenericObject} read from an LCIO event. * - * @param object the <code>GenericObject</code> with the scalar data + * @param object the <code>GenericObject</code> with the scaler data */ - void fromGenericObject(final GenericObject object) { + private void fromGenericObject(final GenericObject object) { this.data = new int[object.getNInt()]; for (int index = 0; index < object.getNInt(); index++) { this.data[index] = object.getIntVal(index); @@ -79,19 +80,19 @@ } /** - * Get the scalar data value at the index. + * Get the scaler data value at the index. * - * @param index the scalar data index - * @return the scalar data value + * @param index the scaler data index + * @return the scaler data value */ public Integer getValue(final int index) { return this.data[index]; } /** - * Get the number of scalars. + * Get the number of scalers. * - * @return the number of scalars + * @return the number of scalers */ public int size() { return this.data.length; @@ -100,16 +101,15 @@ /** * Convert this object to an LCSim {@link org.lcsim.event.GenericObject} for persistency to LCIO. * - * @return the LCIO <code>GenericObject</code> containing scalar data + * @return the LCIO <code>GenericObject</code> containing scaler data */ - GenericObject toGenericObject() { - final ScalarsGenericObject object = new ScalarsGenericObject(this.data); + private GenericObject toGenericObject() { + final ScalersGenericObject object = new ScalersGenericObject(this.data); return object; } /** - * 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 */ @@ -131,7 +131,7 @@ * @param event the output LCIO event */ public void write(final EventHeader event) { - write(event, DEFAULT_SCALAR_DATA_COLLECTION_NAME); + this.write(event, DEFAULT_COLLECTION_NAME); } /** @@ -140,9 +140,9 @@ * @param event the output LCIO event * @param collectionName the name of the output collection */ - public void write(final EventHeader event, final String collectionName) { + private void write(final EventHeader event, final String collectionName) { final List<GenericObject> collection = new ArrayList<GenericObject>(); - collection.add(toGenericObject()); + collection.add(this.toGenericObject()); event.put(collectionName, collection, GenericObject.class, 0); } } Copied: java/trunk/record-util/src/main/java/org/hps/record/scalers/ScalerUtilities.java (from r3049, java/trunk/record-util/src/main/java/org/hps/record/scalars/ScalarUtilities.java) ============================================================================= --- java/trunk/record-util/src/main/java/org/hps/record/scalars/ScalarUtilities.java (original) +++ java/trunk/record-util/src/main/java/org/hps/record/scalers/ScalerUtilities.java Fri May 29 14:21:13 2015 @@ -1,13 +1,13 @@ -package org.hps.record.scalars; +package org.hps.record.scalers; /** - * Utilities methods for scalar data. + * Utilities methods for scaler data. * <p> - * Currently this is used only for computing live time measurements from standard scalar data. + * Currently this is used only for computing live time measurements from standard scaler data. * * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a> */ -public final class ScalarUtilities { +public final class ScalerUtilities { /** * Indices for getting live time measurements. @@ -24,12 +24,12 @@ * @param index The enum of the index type. * @see LiveTimeIndex */ - public static double getLiveTime(final ScalarData data, final LiveTimeIndex index) { + public static double getLiveTime(final ScalerData data, final LiveTimeIndex index) { return getLiveTimes(data)[index.ordinal()]; } /** - * Get the live time measurements from standard scalar data. + * Get the live time measurements from standard scaler data. * <p> * This is returned as a double array of size 3 containing:</br> * @@ -39,13 +39,13 @@ * [2] = CLOCK measurement * </pre> * - * This method assumes the standard scalar data structure as outlined in <a + * This method assumes the standard scaler data structure as outlined in <a * href="https://jira.slac.stanford.edu/browse/HPSJAVA-470">HPSJAVA-470</a>. * - * @param data The scalar data. + * @param data The scaler data. * @return The live time measurements. */ - public static double[] getLiveTimes(final ScalarData data) { + public static double[] getLiveTimes(final ScalerData data) { // [03] - gated faraday cup with "TDC" threshold final int word03 = data.getValue(3); @@ -86,7 +86,7 @@ /** * Disallow class instantiation. */ - private ScalarUtilities() { + private ScalerUtilities() { throw new UnsupportedOperationException("Do not instantiate this class."); } } Copied: java/trunk/record-util/src/main/java/org/hps/record/scalers/ScalersEvioProcessor.java (from r3049, java/trunk/record-util/src/main/java/org/hps/record/scalars/ScalarsEvioProcessor.java) ============================================================================= --- java/trunk/record-util/src/main/java/org/hps/record/scalars/ScalarsEvioProcessor.java (original) +++ java/trunk/record-util/src/main/java/org/hps/record/scalers/ScalersEvioProcessor.java Fri May 29 14:21:13 2015 @@ -1,32 +1,41 @@ -package org.hps.record.scalars; +package org.hps.record.scalers; + +import java.util.logging.Level; +import java.util.logging.Logger; import org.hps.record.evio.EvioEventConstants; import org.hps.record.evio.EvioEventProcessor; import org.jlab.coda.jevio.BaseStructure; import org.jlab.coda.jevio.EvioEvent; +import org.lcsim.util.log.DefaultLogFormatter; +import org.lcsim.util.log.LogUtil; /** - * This is an EVIO event processor for creating a {@link ScalarData} object from scalar bank data. + * This is an EVIO event processor for creating a {@link ScalerData} object from scaler bank data. * * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a> */ -public final class ScalarsEvioProcessor extends EvioEventProcessor { +public final class ScalersEvioProcessor extends EvioEventProcessor { - // Currently cached ScalarData object which was created by the process method. - private ScalarData data; + private static final Logger LOGGER = LogUtil.create(ScalersEvioProcessor.class, new DefaultLogFormatter(), Level.INFO); /** - * Get the current scalar data or null if there was none in the last event processed. + * Currently cached ScalerData object which was created by the process method. + */ + private ScalerData data; + + /** + * Get the current scaler data or null if there was none in the last event processed. * - * @return the current scalar data or <code>null</code> if none exists + * @return the current scaler data or <code>null</code> if none exists */ - public ScalarData getScalarData() { + public ScalerData getScalerData() { return this.data; } /** - * This method will create a <code>ScalarData</code> object and cache it. The current object is first reset to - * <code>null</code> every time this method is called. + * This method will create a <code>ScalerData</code> object and cache it. The current object is first reset to <code>null</code> every time this + * method is called. * * @param evio the EVIO event data */ @@ -35,13 +44,16 @@ this.data = null; for (final BaseStructure bank : evio.getChildrenList()) { // Does the crate tag match? - if (bank.getHeader().getTag() == EvioEventConstants.SCALARS_CRATE_TAG) { + if (bank.getHeader().getTag() == EvioEventConstants.SCALERS_CRATE_TAG) { if (bank.getChildrenList() != null) { for (final BaseStructure subBank : bank.getChildrenList()) { // Does the bank tag match? - if (subBank.getHeader().getTag() == EvioEventConstants.SCALARS_BANK_TAG) { - // Scalar data exists in event so create object and stop processing. - this.data = new ScalarData(subBank.getIntData()); + if (subBank.getHeader().getTag() == EvioEventConstants.SCALERS_BANK_TAG) { + + LOGGER.fine("found scaler data in bank " + subBank.getHeader().getTag() + " and EVIO event " + evio.getEventNumber()); + + // Scaler data exists in event so create object and stop processing. + this.data = new ScalerData(subBank.getIntData()); break; } } Copied: java/trunk/record-util/src/main/java/org/hps/record/scalers/ScalersGenericObject.java (from r3049, java/trunk/record-util/src/main/java/org/hps/record/scalars/ScalarsGenericObject.java) ============================================================================= --- java/trunk/record-util/src/main/java/org/hps/record/scalars/ScalarsGenericObject.java (original) +++ java/trunk/record-util/src/main/java/org/hps/record/scalers/ScalersGenericObject.java Fri May 29 14:21:13 2015 @@ -1,26 +1,26 @@ -package org.hps.record.scalars; +package org.hps.record.scalers; import org.lcsim.event.GenericObject; /** - * This is the LCIO {@link org.lcsim.event.GenericObject} binding for EVIO scalar data. This should not be used - * directly. Rather the {@link ScalarData} class should be used for loading data from LCIO events. + * This is the LCIO {@link org.lcsim.event.GenericObject} binding for EVIO scaler data. This should not be used + * directly. Rather the {@link ScalerData} class should be used for loading data from LCIO events. * * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a> */ -final class ScalarsGenericObject implements GenericObject { +final class ScalersGenericObject implements GenericObject { /** - * The scalar data values. + * The scaler data values. */ private final int[] values; /** - * Create a new object with the given scalar values. + * Create a new object with the given scaler values. * - * @param values the array of scalar values + * @param values the array of scaler values */ - ScalarsGenericObject(final int[] values) { + ScalersGenericObject(final int[] values) { this.values = values; } @@ -35,7 +35,7 @@ } /** - * Get the scalar value at the index. + * Get the scaler value at the index. * * @param index the index in the data array */ Modified: java/trunk/record-util/src/main/java/org/hps/record/scalers/package-info.java ============================================================================= --- java/trunk/record-util/src/main/java/org/hps/record/scalers/package-info.java (original) +++ java/trunk/record-util/src/main/java/org/hps/record/scalers/package-info.java Fri May 29 14:21:13 2015 @@ -1,6 +1,6 @@ /** - * Classes for converting scalar data from EVIO to LCSim. + * Classes for converting scaler data from EVIO to LCSim. * * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a> */ -package org.hps.record.scalars; +package org.hps.record.scalers; Modified: java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring/DeadtimeMonitor.lcsim ============================================================================= --- java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring/DeadtimeMonitor.lcsim (original) +++ java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring/DeadtimeMonitor.lcsim Fri May 29 14:21:13 2015 @@ -5,7 +5,7 @@ <driver name="CleanupDriver" /> </execute> <drivers> - <driver name="DeadtimeMonitor" type="org.hps.monitoring.drivers.scalars.DeadtimePlots"> + <driver name="DeadtimeMonitor" type="org.hps.monitoring.drivers.scalers.DeadtimePlots"> </driver> <driver name="CleanupDriver" type="org.lcsim.recon.tracking.digitization.sisim.config.ReadoutCleanupDriver" /> </drivers>