Author: [log in to unmask]
Date: Mon May 11 12:26:13 2015
New Revision: 2947
Log:
Add enums for EVIO event tag values and masks.
Added:
java/trunk/record-util/src/main/java/org/hps/record/evio/EventTagBitMask.java
java/trunk/record-util/src/main/java/org/hps/record/evio/EventTagConstant.java
Added: java/trunk/record-util/src/main/java/org/hps/record/evio/EventTagBitMask.java
=============================================================================
--- java/trunk/record-util/src/main/java/org/hps/record/evio/EventTagBitMask.java (added)
+++ java/trunk/record-util/src/main/java/org/hps/record/evio/EventTagBitMask.java Mon May 11 12:26:13 2015
@@ -0,0 +1,88 @@
+package org.hps.record.evio;
+
+import org.jlab.coda.jevio.EvioEvent;
+
+/**
+ * Encapsulates bit mask values for different types of physics events as described at <a
+ * href="https://confluence.slac.stanford.edu/display/hpsg/EVIO+Data+Format#EVIODataFormat-EVIOEventtypes-2015DataSet"
+ * >EVIO Event types</a>.
+ *
+ * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a>
+ */
+public enum EventTagBitMask {
+
+ /** LED or Cosmic trigger. */
+ LED_COSMIC(4),
+ /** Pair 0 trigger. */
+ PAIRS0(2),
+ /** Pair 1 trigger. */
+ PAIRS1(3),
+ /** Physics event. */
+ PHYSICS(7),
+ /** Pulser triggered event. */
+ PULSER(5),
+ /** Single 0 trigger. */
+ SINGLE0(0),
+ /** Single 1 trigger. */
+ SINGLE1(1),
+ /** Physics sync event. */
+ SYNC(6);
+
+ /**
+ * The bit number.
+ */
+ private int bit;
+
+ /**
+ * The bit mask.
+ */
+ int bitMask;
+
+ /**
+ * Constructor with bit number.
+ *
+ * @param bit the bit number
+ */
+ private EventTagBitMask(final int bit) {
+ this.bit = bit;
+ this.bitMask = 1 >> this.bit;
+ }
+
+ /**
+ * Get the bit number.
+ *
+ * @return the bit number
+ */
+ public int getBit() {
+ return this.bit;
+ }
+
+ /**
+ * Get the bit mask.
+ *
+ * @return the bit mask
+ */
+ public int getBitMask() {
+ return this.bitMask;
+ }
+
+ /**
+ * Return <code>true</code> if the event's tag matches this one.
+ *
+ * @param event an <code>EvioEvent</code> to check
+ * @return <code>true</code> if the event's tag matches this one
+ */
+ public boolean isEventTag(final EvioEvent event) {
+ return isEventTag(event.getHeader().getTag());
+ }
+
+ /**
+ * Return <code>true</code> if the tag matches this one.
+ *
+ * @param eventTag the event's tag from the header bank
+ * @return <code>true</code> if the tag matches this one
+ */
+ public boolean isEventTag(final int eventTag) {
+ return (eventTag & this.bitMask) == 1;
+ }
+}
Added: java/trunk/record-util/src/main/java/org/hps/record/evio/EventTagConstant.java
=============================================================================
--- java/trunk/record-util/src/main/java/org/hps/record/evio/EventTagConstant.java (added)
+++ java/trunk/record-util/src/main/java/org/hps/record/evio/EventTagConstant.java Mon May 11 12:26:13 2015
@@ -0,0 +1,61 @@
+package org.hps.record.evio;
+
+import org.jlab.coda.jevio.EvioEvent;
+
+/**
+ * Encapsulates event tag constants for EVIO events as described at <a
+ * href="https://confluence.slac.stanford.edu/display/hpsg/EVIO+Data+Format#EVIODataFormat-EVIOEventtypes-2015DataSet"
+ * >EVIO Event types</a>.
+ *
+ * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a>
+ */
+public enum EventTagConstant {
+
+ /** CODA END event inserted at end of run. */
+ END(20),
+ /** EPICS event containing variable values. */
+ EPICS(31),
+ /** CODA GO event indicating event stream is starting. */
+ GO(18),
+ /** CODA PAUSE event indicating the pause button was pressed in the GUI. */
+ PAUSE(19),
+ /** The old physics event tag by HPS convention. */
+ PHYSICS_OLD(1),
+ /** CODA PRESTART event when run initializes. */
+ PRESTART(17),
+ /** CODA SYNC event. */
+ SYNC(16);
+
+ /**
+ * The tag value.
+ */
+ private final int tag;
+
+ /**
+ * Constructor with tag value.
+ *
+ * @param tag the tag value
+ */
+ private EventTagConstant(final int tag) {
+ this.tag = tag;
+ }
+
+ /**
+ * Return <code>true</code> if the event tag matches this one.
+ *
+ * @param event the <code>EvioEvent</code> to check
+ * @return <code>true</code> if the event's tag matches this one
+ */
+ public boolean isEventTag(final EvioEvent event) {
+ return event.getHeader().getTag() == this.tag;
+ }
+
+ /**
+ * Get the tag value.
+ *
+ * @return the tag value
+ */
+ public int tag() {
+ return this.tag;
+ }
+}
|