Print

Print


Author: [log in to unmask]
Date: Wed Oct  7 10:07:49 2015
New Revision: 3787

Log:
Add flag to keep events with epics data.

Modified:
    java/trunk/recon/src/main/java/org/hps/recon/filtering/MollerCandidateFilter.java
    java/trunk/recon/src/main/java/org/hps/recon/filtering/V0CandidateFilter.java

Modified: java/trunk/recon/src/main/java/org/hps/recon/filtering/MollerCandidateFilter.java
 =============================================================================
--- java/trunk/recon/src/main/java/org/hps/recon/filtering/MollerCandidateFilter.java	(original)
+++ java/trunk/recon/src/main/java/org/hps/recon/filtering/MollerCandidateFilter.java	Wed Oct  7 10:07:49 2015
@@ -2,6 +2,7 @@
 
 import static java.lang.Math.abs;
 import java.util.List;
+import org.hps.record.epics.EpicsData;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.ReconstructedParticle;
 
@@ -17,7 +18,8 @@
  *
  * @version $Id:
  */
-public class MollerCandidateFilter extends EventReconFilter {
+public class MollerCandidateFilter extends EventReconFilter
+{
 
     private String _mollerCandidateCollectionName = "TargetConstrainedMollerCandidates";
     private double _mollerMomentumSumMin = 0.85;
@@ -26,10 +28,20 @@
     private double _clusterTimingCut = 2.5;
 
     private boolean _tight = false;
+    private boolean _keepEpicsDataEvents = false;
 
     @Override
-    protected void process(EventHeader event) {
+    protected void process(EventHeader event)
+    {
         incrementEventProcessed();
+        if (_keepEpicsDataEvents) {
+            // don't drop any events with EPICS data:
+            final EpicsData data = EpicsData.read(event);
+            if (data != null) {
+                incrementEventPassed();
+                return;
+            }
+        }
         if (!event.hasCollection(ReconstructedParticle.class, _mollerCandidateCollectionName)) {
             skipEvent();
         }
@@ -96,7 +108,8 @@
      *
      * @param d
      */
-    public void setClusterTimingCut(double d) {
+    public void setClusterTimingCut(double d)
+    {
         _clusterTimingCut = d;
     }
 
@@ -105,7 +118,8 @@
      *
      * @param s
      */
-    public void setMollerCandidateCollectionName(String s) {
+    public void setMollerCandidateCollectionName(String s)
+    {
         _mollerCandidateCollectionName = s;
     }
 
@@ -114,7 +128,8 @@
      *
      * @param d
      */
-    public void setMollerMomentumSumMin(double d) {
+    public void setMollerMomentumSumMin(double d)
+    {
         _mollerMomentumSumMin = d;
     }
 
@@ -123,7 +138,8 @@
      *
      * @param d
      */
-    public void setMollerMomentumSumMax(double d) {
+    public void setMollerMomentumSumMax(double d)
+    {
         _mollerMomentumSumMax = d;
     }
 
@@ -133,7 +149,8 @@
      *
      * @param d
      */
-    public void setMollerMomentumMax(double d) {
+    public void setMollerMomentumMax(double d)
+    {
         _fullEnergyCut = d;
     }
 
@@ -143,7 +160,18 @@
      *
      * @param b
      */
-    public void setTightConstraint(boolean b) {
+    public void setTightConstraint(boolean b)
+    {
         _tight = b;
     }
+    
+    /**
+     * Setting this true keeps ALL events containing EPICS data
+     *
+     * @param b
+     */
+    public void setKeepEpicsDataEvents(boolean b)
+    {
+        _keepEpicsDataEvents = b;
+    }
 }

Modified: java/trunk/recon/src/main/java/org/hps/recon/filtering/V0CandidateFilter.java
 =============================================================================
--- java/trunk/recon/src/main/java/org/hps/recon/filtering/V0CandidateFilter.java	(original)
+++ java/trunk/recon/src/main/java/org/hps/recon/filtering/V0CandidateFilter.java	Wed Oct  7 10:07:49 2015
@@ -2,6 +2,7 @@
 
 import static java.lang.Math.abs;
 import java.util.List;
+import org.hps.record.epics.EpicsData;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.ReconstructedParticle;
 
@@ -21,10 +22,20 @@
     private double _clusterTimingCut = 2.5;
 
     private boolean _tight = false;
+    private boolean _keepEpicsDataEvents = false;
+
 
     @Override
     protected void process(EventHeader event) {
         incrementEventProcessed();
+        if (_keepEpicsDataEvents) {
+            // don't drop any events with EPICS data:
+            final EpicsData data = EpicsData.read(event);
+            if (data != null) {
+                incrementEventPassed();
+                return;
+            }
+        }
         if (!event.hasCollection(ReconstructedParticle.class, _V0CandidateCollectionName)) {
             skipEvent();
         }
@@ -98,4 +109,14 @@
     public void setTightConstraint(boolean b) {
         _tight = b;
     }
+    
+    /**
+     * Setting this true keeps ALL events containing EPICS data
+     *
+     * @param b
+     */
+    public void setKeepEpicsDataEvents(boolean b)
+    {
+        _keepEpicsDataEvents = b;
+    }
 }