Print

Print


Author: [log in to unmask]
Date: Fri Oct  2 19:01:06 2015
New Revision: 3758

Log:
adding filters for all non-Pair1 triggers that also keep all EPICS and Scaler events

Added:
    java/trunk/recon/src/main/java/org/hps/recon/filtering/Pair0TriggerFilterDriver.java
    java/trunk/recon/src/main/java/org/hps/recon/filtering/Single0TriggerFilterDriver.java
    java/trunk/recon/src/main/java/org/hps/recon/filtering/Single1TriggerFilterDriver.java
    java/trunk/steering-files/src/main/resources/org/hps/steering/production/Pair0TriggerFilter.lcsim
    java/trunk/steering-files/src/main/resources/org/hps/steering/production/Single0TriggerFilter.lcsim
    java/trunk/steering-files/src/main/resources/org/hps/steering/production/Single1TriggerFilter.lcsim

Added: java/trunk/recon/src/main/java/org/hps/recon/filtering/Pair0TriggerFilterDriver.java
 =============================================================================
--- java/trunk/recon/src/main/java/org/hps/recon/filtering/Pair0TriggerFilterDriver.java	(added)
+++ java/trunk/recon/src/main/java/org/hps/recon/filtering/Pair0TriggerFilterDriver.java	Fri Oct  2 19:01:06 2015
@@ -0,0 +1,43 @@
+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.scalers.ScalerData;
+import org.hps.record.triggerbank.AbstractIntData;
+import org.hps.record.triggerbank.TIData;
+/**
+ * Keep pair-0 triggered events.
+ * Also keep EPICS events, and Scaler events.
+ * Drop all other events.
+ * 
+ * @author baltzell
+ *
+ */
+public class Pair0TriggerFilterDriver 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. keep all events with Scaler data:
+    if (ScalerData.read(event) != null) return;
+
+    // 3. drop event if it doesn't have a TriggerBank
+    if (!event.hasCollection(GenericObject.class,"TriggerBank"))
+      throw new Driver.NextEventException();
+  
+    // 4. keep event if it was from a Pair-0 trigger:
+    for (GenericObject gob : event.get(GenericObject.class,"TriggerBank"))
+    {
+      if (!(AbstractIntData.getTag(gob) == TIData.BANK_TAG)) continue;
+      TIData tid = new TIData(gob);
+      if (tid.isPair0Trigger()) return;
+    }
+    
+    // 5. Else, drop event:
+    throw new Driver.NextEventException();
+  }
+}

Added: java/trunk/recon/src/main/java/org/hps/recon/filtering/Single0TriggerFilterDriver.java
 =============================================================================
--- java/trunk/recon/src/main/java/org/hps/recon/filtering/Single0TriggerFilterDriver.java	(added)
+++ java/trunk/recon/src/main/java/org/hps/recon/filtering/Single0TriggerFilterDriver.java	Fri Oct  2 19:01:06 2015
@@ -0,0 +1,43 @@
+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.scalers.ScalerData;
+import org.hps.record.triggerbank.AbstractIntData;
+import org.hps.record.triggerbank.TIData;
+/**
+ * Keep single-0 triggered events.
+ * Also keep EPICS events, and Scaler events.
+ * Drop all other events.
+ * 
+ * @author baltzell
+ *
+ */
+public class Single0TriggerFilterDriver 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. keep all events with Scaler data:
+    if (ScalerData.read(event) != null) return;
+
+    // 3. drop event if it doesn't have a TriggerBank
+    if (!event.hasCollection(GenericObject.class,"TriggerBank"))
+      throw new Driver.NextEventException();
+  
+    // 4. keep event if it was from a Single-0 trigger:
+    for (GenericObject gob : event.get(GenericObject.class,"TriggerBank"))
+    {
+      if (!(AbstractIntData.getTag(gob) == TIData.BANK_TAG)) continue;
+      TIData tid = new TIData(gob);
+      if (tid.isSingle0Trigger()) return;
+    }
+    
+    // 5. Else, drop event:
+    throw new Driver.NextEventException();
+  }
+}

Added: java/trunk/recon/src/main/java/org/hps/recon/filtering/Single1TriggerFilterDriver.java
 =============================================================================
--- java/trunk/recon/src/main/java/org/hps/recon/filtering/Single1TriggerFilterDriver.java	(added)
+++ java/trunk/recon/src/main/java/org/hps/recon/filtering/Single1TriggerFilterDriver.java	Fri Oct  2 19:01:06 2015
@@ -0,0 +1,43 @@
+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.scalers.ScalerData;
+import org.hps.record.triggerbank.AbstractIntData;
+import org.hps.record.triggerbank.TIData;
+/**
+ * Keep single-1 triggered events.
+ * Also keep EPICS events, and Scaler events.
+ * Drop all other events.
+ * 
+ * @author baltzell
+ *
+ */
+public class Single1TriggerFilterDriver 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. keep all events with Scaler data:
+    if (ScalerData.read(event) != null) return;
+
+    // 3. drop event if it doesn't have a TriggerBank
+    if (!event.hasCollection(GenericObject.class,"TriggerBank"))
+      throw new Driver.NextEventException();
+  
+    // 4. keep event if it was from a Single-1 trigger:
+    for (GenericObject gob : event.get(GenericObject.class,"TriggerBank"))
+    {
+      if (!(AbstractIntData.getTag(gob) == TIData.BANK_TAG)) continue;
+      TIData tid = new TIData(gob);
+      if (tid.isSingle1Trigger()) return;
+    }
+    
+    // 5. Else, drop event:
+    throw new Driver.NextEventException();
+  }
+}

Added: java/trunk/steering-files/src/main/resources/org/hps/steering/production/Pair0TriggerFilter.lcsim
 =============================================================================
--- java/trunk/steering-files/src/main/resources/org/hps/steering/production/Pair0TriggerFilter.lcsim	(added)
+++ java/trunk/steering-files/src/main/resources/org/hps/steering/production/Pair0TriggerFilter.lcsim	Fri Oct  2 19:01:06 2015
@@ -0,0 +1,16 @@
+<lcsim xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" 
+       xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/lcsim/1.0/lcsim.xsd">
+    
+    <execute>
+        <driver name="Skimmer"/>
+        <driver name="LCIOWriter"/>
+    </execute>    
+
+    <drivers>
+        <driver name="Skimmer" type="org.hps.recon.filtering.Pair0TriggerFilterDriver">
+        </driver>
+        <driver name="LCIOWriter" type="org.lcsim.util.loop.LCIODriver">
+            <outputFilePath>${outputFile}.slcio</outputFilePath>
+        </driver>
+    </drivers>   
+</lcsim>

Added: java/trunk/steering-files/src/main/resources/org/hps/steering/production/Single0TriggerFilter.lcsim
 =============================================================================
--- java/trunk/steering-files/src/main/resources/org/hps/steering/production/Single0TriggerFilter.lcsim	(added)
+++ java/trunk/steering-files/src/main/resources/org/hps/steering/production/Single0TriggerFilter.lcsim	Fri Oct  2 19:01:06 2015
@@ -0,0 +1,16 @@
+<lcsim xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" 
+       xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/lcsim/1.0/lcsim.xsd">
+    
+    <execute>
+        <driver name="Skimmer"/>
+        <driver name="LCIOWriter"/>
+    </execute>    
+
+    <drivers>
+        <driver name="Skimmer" type="org.hps.recon.filtering.Single0TriggerFilterDriver">
+        </driver>
+        <driver name="LCIOWriter" type="org.lcsim.util.loop.LCIODriver">
+            <outputFilePath>${outputFile}.slcio</outputFilePath>
+        </driver>
+    </drivers>   
+</lcsim>

Added: java/trunk/steering-files/src/main/resources/org/hps/steering/production/Single1TriggerFilter.lcsim
 =============================================================================
--- java/trunk/steering-files/src/main/resources/org/hps/steering/production/Single1TriggerFilter.lcsim	(added)
+++ java/trunk/steering-files/src/main/resources/org/hps/steering/production/Single1TriggerFilter.lcsim	Fri Oct  2 19:01:06 2015
@@ -0,0 +1,16 @@
+<lcsim xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" 
+       xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/lcsim/1.0/lcsim.xsd">
+    
+    <execute>
+        <driver name="Skimmer"/>
+        <driver name="LCIOWriter"/>
+    </execute>    
+
+    <drivers>
+        <driver name="Skimmer" type="org.hps.recon.filtering.Single1TriggerFilterDriver">
+        </driver>
+        <driver name="LCIOWriter" type="org.lcsim.util.loop.LCIODriver">
+            <outputFilePath>${outputFile}.slcio</outputFilePath>
+        </driver>
+    </drivers>   
+</lcsim>