Print

Print


Author: [log in to unmask]
Date: Tue Sep  1 08:11:35 2015
New Revision: 3480

Log:
adding pulser trigger skimmer

Added:
    java/trunk/recon/src/main/java/org/hps/recon/filtering/PulserTriggerFilterDriver.java

Added: java/trunk/recon/src/main/java/org/hps/recon/filtering/PulserTriggerFilterDriver.java
 =============================================================================
--- java/trunk/recon/src/main/java/org/hps/recon/filtering/PulserTriggerFilterDriver.java	(added)
+++ java/trunk/recon/src/main/java/org/hps/recon/filtering/PulserTriggerFilterDriver.java	Tue Sep  1 08:11:35 2015
@@ -0,0 +1,32 @@
+package org.hps.recon.filtering;
+
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.GenericObject;
+import org.lcsim.util.Driver;
+import org.hps.record.epics.EpicsData;
+import org.hps.record.triggerbank.AbstractIntData;
+import org.hps.record.triggerbank.TIData;
+
+public class PulserTriggerFilterDriver extends Driver
+{
+  public void process(EventHeader event) {
+
+    // 1. keep all events with EPICS data (could also use event tag = 31):
+    if (EpicsData.read(event) != null) return;
+
+    // 2. drop event if it doesn't have a TriggerBank
+    if (!event.hasCollection(GenericObject.class,"TriggerBank"))
+      throw new Driver.NextEventException();
+  
+    // 3. keep event if it was from a Pulser trigger:
+    for (GenericObject gob : event.get(GenericObject.class,"TriggerBank"))
+    {
+      if (!(AbstractIntData.getTag(gob) == TIData.BANK_TAG)) continue;
+      TIData tid = new TIData(gob);
+      if (tid.isPulserTrigger()) return;
+    }
+    
+    // 4. Else, drop event:
+    throw new Driver.NextEventException();
+  }
+}