Author: [log in to unmask]
Date: Wed Jul 29 17:55:04 2015
New Revision: 3305
Log:
Add scaler parameters to lcsim events.
Modified:
java/trunk/evio/src/main/java/org/hps/evio/LCSimEngRunEventBuilder.java
Modified: java/trunk/evio/src/main/java/org/hps/evio/LCSimEngRunEventBuilder.java
=============================================================================
--- java/trunk/evio/src/main/java/org/hps/evio/LCSimEngRunEventBuilder.java (original)
+++ java/trunk/evio/src/main/java/org/hps/evio/LCSimEngRunEventBuilder.java Wed Jul 29 17:55:04 2015
@@ -4,6 +4,7 @@
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
+
import org.hps.recon.ecal.triggerbank.AbstractIntData;
import org.hps.recon.ecal.triggerbank.HeadBankData;
import org.hps.recon.ecal.triggerbank.SSPData;
@@ -11,7 +12,10 @@
import org.hps.recon.ecal.triggerbank.TIData;
import org.hps.record.epics.EpicsData;
import org.hps.record.epics.EpicsEvioProcessor;
+import org.hps.record.evio.EventTagBitMask;
import org.hps.record.evio.EvioEventUtilities;
+import org.hps.record.scalers.ScalerData;
+import org.hps.record.scalers.ScalerParameters;
import org.hps.record.scalers.ScalersEvioProcessor;
import org.jlab.coda.jevio.EvioEvent;
import org.lcsim.event.EventHeader;
@@ -19,23 +23,27 @@
import org.lcsim.util.log.LogUtil;
/**
- * This is the {@link org.hps.record.LCSimEventBuilder} implementation for the Engineering Run and the Commissioning Run.
+ * This is the {@link org.hps.record.LCSimEventBuilder} implementation for the Engineering Run and the Commissioning Run
+ * for converting EVIO to LCIO events.
* <p>
* It has several modifications from the Test Run builder including different values for certain bank tags.
* <p>
- * Additionally, this builder will write DAQ config information, EPICS control data, and scalar bank data into the output LCSim events if these banks
- * are present in the EVIO data.
+ * Additionally, this builder will write DAQ config information, EPICS control data, and scalar bank data into the
+ * output LCSim events if these banks are present in the EVIO data.
*
* @author Sho Uemura <[log in to unmask]>
* @author Jeremy McCormick <[log in to unmask]>
*/
public class LCSimEngRunEventBuilder extends LCSimTestRunEventBuilder {
- private static final Logger LOGGER = LogUtil.create(LCSimEngRunEventBuilder.class, new DefaultLogFormatter(), Level.INFO);
+ private static final Logger LOGGER = LogUtil.create(LCSimEngRunEventBuilder.class, new DefaultLogFormatter(),
+ Level.INFO);
private EpicsData epicsData;
private final EpicsEvioProcessor epicsProcessor = new EpicsEvioProcessor();
+
+ private ScalerData scalerData;
private final ScalersEvioProcessor scalerProcessor = new ScalersEvioProcessor();
@@ -62,7 +70,7 @@
*
* @param evioEvent The EVIO event data.
*/
- void createEpicsData(final EvioEvent evioEvent) {
+ private void createEpicsData(final EvioEvent evioEvent) {
epicsProcessor.process(evioEvent);
epicsData = epicsProcessor.getEpicsData();
}
@@ -99,25 +107,27 @@
try {
ecalReader.makeHits(evioEvent, lcsimEvent);
} catch (final Exception e) {
- LOGGER.log(Level.SEVERE, "Error making ECal hits", e);
+ LOGGER.log(Level.SEVERE, "Error making ECal hits.", e);
}
// Make SVT RawTrackerHits.
try {
svtReader.makeHits(evioEvent, lcsimEvent);
} catch (final Exception e) {
- LOGGER.log(Level.SEVERE, "Error making SVT hits", e);
+ LOGGER.log(Level.SEVERE, "Error making SVT hits.", e);
}
// Write the current EPICS data into this event.
- if (epicsData != null) {
- LOGGER.finest("writing EPICS data to lcsim event " + lcsimEvent.getEventNumber());
- epicsData.write(lcsimEvent);
- epicsData = null;
+ this.writeEpicsData(lcsimEvent);
+
+ // Write scalers into the event, if they exist in the EVIO data.
+ this.writeScalerData(evioEvent, lcsimEvent);
+
+ // Write scaler parameters into every event header.
+ if (EventTagBitMask.SYNC.isEventTag(evioEvent)) {
+ LOGGER.fine("event " + evioEvent.getEventNumber() + " is a sync event");
}
-
- // Write scalers into the event, if they exist in this EVIO data.
- this.writeScalerData(evioEvent, lcsimEvent);
+ this.writeScalerParameters(lcsimEvent);
return lcsimEvent;
}
@@ -128,8 +138,21 @@
// Create EPICS data if this is an EPICS control event.
if (EvioEventUtilities.isEpicsEvent(evioEvent)) {
- LOGGER.finest("creating data from EPICS event");
+ LOGGER.fine("creating data from EPICS event");
this.createEpicsData(evioEvent);
+ }
+ }
+
+ /**
+ * Write {@link org.hps.record.epics.EpicsData} into the event.
+ *
+ * @param lcsimEvent the lcsim event
+ */
+ private void writeEpicsData(final EventHeader lcsimEvent) {
+ if (epicsProcessor.getEpicsData() != null) {
+ LOGGER.fine("writing EPICS data to lcsim event " + lcsimEvent.getEventNumber());
+ epicsProcessor.getEpicsData().write(lcsimEvent);
+ epicsProcessor.reset();
}
}
@@ -139,11 +162,37 @@
* @param evioEvent The EVIO event data.
* @param lcsimEvent The output LCSim event.
*/
- void writeScalerData(final EvioEvent evioEvent, final EventHeader lcsimEvent) {
+ private void writeScalerData(final EvioEvent evioEvent, final EventHeader lcsimEvent) {
+
+ // Find scaler data in EVIO.
scalerProcessor.process(evioEvent);
+
if (scalerProcessor.getScalerData() != null) {
- LOGGER.finest("writing scaler data to lcsim event " + lcsimEvent.getEventNumber() + " from EVIO event " + evioEvent.getEventNumber());
+
+ LOGGER.fine("writing scaler data to lcsim event " + lcsimEvent.getEventNumber() + " from EVIO event "
+ + evioEvent.getEventNumber());
+
+ // Write the current scalar data to the event.
scalerProcessor.getScalerData().write(lcsimEvent);
+
+ // Save the current scaler data for writing to lcsim event header.
+ scalerData = scalerProcessor.getScalerData();
}
}
+
+ /**
+ * Write {@link org.hps.record.scalers.ScalerParameters} into the event.
+ *
+ * @param lcsimEvent the lcsim event
+ */
+ private void writeScalerParameters(final EventHeader lcsimEvent) {
+ final ScalerParameters scalerParameters = new ScalerParameters();
+ if (epicsData != null) {
+ scalerParameters.readEpicsData(epicsData);
+ }
+ if (scalerData != null) {
+ scalerParameters.readScalerData(scalerData);
+ }
+ scalerParameters.write(lcsimEvent);
+ }
}
|