Print

Print


Author: [log in to unmask]
Date: Wed Mar 25 14:28:52 2015
New Revision: 2551

Log:
Move classes from monitoring-app to record-util module.

Added:
    java/trunk/record-util/src/main/java/org/hps/record/epics/EpicsEtProcessor.java
    java/trunk/record-util/src/main/java/org/hps/record/et/PreStartProcessor.java
    java/trunk/record-util/src/main/java/org/hps/record/et/SyncEventProcessor.java

Added: java/trunk/record-util/src/main/java/org/hps/record/epics/EpicsEtProcessor.java
 =============================================================================
--- java/trunk/record-util/src/main/java/org/hps/record/epics/EpicsEtProcessor.java	(added)
+++ java/trunk/record-util/src/main/java/org/hps/record/epics/EpicsEtProcessor.java	Wed Mar 25 14:28:52 2015
@@ -0,0 +1,34 @@
+package org.hps.record.epics;
+
+import java.io.IOException;
+
+import org.hps.record.et.EtEventProcessor;
+import org.jlab.coda.et.EtEvent;
+import org.jlab.coda.jevio.EvioEvent;
+import org.jlab.coda.jevio.EvioException;
+import org.jlab.coda.jevio.EvioReader;
+
+/**
+ * An ET event processor that builds EPICS events.
+ * 
+ * @author Jeremy McCormick <[log in to unmask]>
+ */
+public class EpicsEtProcessor extends EtEventProcessor {
+    
+    EpicsEvioProcessor evioProcessor = new EpicsEvioProcessor();
+    
+    public void process(EtEvent event) {
+        EvioEvent evio;
+        try {
+            evio = new EvioReader(event.getDataBuffer()).parseNextEvent();
+        } catch (IOException | EvioException e) {
+            throw new RuntimeException(e);
+        }        
+        evioProcessor.process(evio);
+        if (evioProcessor.getEpicsScalarData() != null) {
+            System.out.println("EpicsEtProcessor created EpicsScalarData ...");
+            System.out.println(evioProcessor.getEpicsScalarData());
+        }
+    }
+}                   
+ 

Added: java/trunk/record-util/src/main/java/org/hps/record/et/PreStartProcessor.java
 =============================================================================
--- java/trunk/record-util/src/main/java/org/hps/record/et/PreStartProcessor.java	(added)
+++ java/trunk/record-util/src/main/java/org/hps/record/et/PreStartProcessor.java	Wed Mar 25 14:28:52 2015
@@ -0,0 +1,33 @@
+package org.hps.record.et;
+
+import java.io.IOException;
+
+import org.hps.record.evio.EvioDetectorConditionsProcessor;
+import org.jlab.coda.et.EtEvent;
+import org.jlab.coda.jevio.EvioEvent;
+import org.jlab.coda.jevio.EvioException;
+import org.jlab.coda.jevio.EvioReader;
+
+/**
+ * @author Jeremy McCormick <[log in to unmask]>
+ */
+public class PreStartProcessor extends EtEventProcessor {
+
+    String detectorName;
+    EvioDetectorConditionsProcessor conditionsProcessor;
+    
+    public PreStartProcessor(String detectorName) {
+        this.detectorName = detectorName;
+        this.conditionsProcessor = new EvioDetectorConditionsProcessor(detectorName);
+    }
+    
+    public void process(EtEvent event) {
+        EvioEvent evioEvent = null;
+        try {
+            evioEvent = new EvioReader(event.getDataBuffer()).parseNextEvent();
+            conditionsProcessor.startRun(evioEvent);
+        } catch (IOException | EvioException e) {
+            throw new RuntimeException(e);
+        }
+    }
+}

Added: java/trunk/record-util/src/main/java/org/hps/record/et/SyncEventProcessor.java
 =============================================================================
--- java/trunk/record-util/src/main/java/org/hps/record/et/SyncEventProcessor.java	(added)
+++ java/trunk/record-util/src/main/java/org/hps/record/et/SyncEventProcessor.java	Wed Mar 25 14:28:52 2015
@@ -0,0 +1,57 @@
+package org.hps.record.et;
+
+import java.io.IOException;
+import java.util.List;
+
+import org.hps.evio.TriggerConfigEvioReader;
+import org.hps.recon.ecal.daqconfig.ConfigurationManager;
+import org.hps.recon.ecal.daqconfig.EvioDAQParser;
+import org.hps.record.evio.EvioEventUtilities;
+import org.jlab.coda.et.EtEvent;
+import org.jlab.coda.jevio.EvioEvent;
+import org.jlab.coda.jevio.EvioException;
+import org.jlab.coda.jevio.EvioReader;
+import org.lcsim.event.base.BaseLCSimEvent;
+
+/**
+ * This is an ET event processor that will load DAQ configuration into the global manager 
+ * from EVIO physics SYNC events, which have an event type in which bits 6 and 7 are set to 1.
+ * 
+ * @author Jeremy McCormick <[log in to unmask]>
+ * 
+ * @see org.hps.recon.ecal.daqconfig.ConfigurationManager
+ * @see org.hps.recon.ecal.daqconfig.EvioDAQParser
+ */
+public class SyncEventProcessor extends EtEventProcessor {
+
+    private static final String TRIGGER_CONFIG = "TriggerConfig";
+    TriggerConfigEvioReader configReader = new TriggerConfigEvioReader();
+
+    public void process(EtEvent event) {
+        EvioEvent evioEvent = null;
+        try {
+            evioEvent = new EvioReader(event.getDataBuffer()).parseNextEvent();
+        } catch (IOException | EvioException e) {
+            throw new RuntimeException(e);
+        }
+        try {
+            // Create a dummy LCIO event to satisfy the configuration reader's interface.
+            BaseLCSimEvent dummyLcsimEvent = 
+                    new BaseLCSimEvent(EvioEventUtilities.getRunNumber(evioEvent), evioEvent.getEventNumber(), "DUMMY", 0, false);
+            
+            // Create the DAQ configuration object in the LCIO event.
+            configReader.getDAQConfig(evioEvent, dummyLcsimEvent);
+            
+            // Update the global configuration if a configuration was created.
+            if (dummyLcsimEvent.hasCollection(EvioDAQParser.class, TRIGGER_CONFIG)) {
+                List<EvioDAQParser> configList = dummyLcsimEvent.get(EvioDAQParser.class, TRIGGER_CONFIG);
+                if (!configList.isEmpty()) {
+                    ConfigurationManager.updateConfiguration(configList.get(0));
+                }
+            }
+        } catch (Exception e) {
+            System.err.println("Failed to load DAQ config from sync event ...");
+            e.printStackTrace();
+        }
+    }
+}