Print

Print


Author: [log in to unmask]
Date: Thu May 12 15:06:23 2016
New Revision: 4351

Log:
Added max number of tracks and clusters

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

Modified: java/trunk/recon/src/main/java/org/hps/recon/filtering/SimpleEventFilterDriver.java
 =============================================================================
--- java/trunk/recon/src/main/java/org/hps/recon/filtering/SimpleEventFilterDriver.java	(original)
+++ java/trunk/recon/src/main/java/org/hps/recon/filtering/SimpleEventFilterDriver.java	Thu May 12 15:06:23 2016
@@ -10,7 +10,7 @@
 import org.lcsim.util.Driver;
 
 /**
- * This is a Driver for rejecting recon events using simple criteria on the output collections.
+ * This is a Driver for selecting/rejecting recon events using simple criteria on the output collections.
  * 
  * @author Jeremy McCormick <[log in to unmask]>
  */
@@ -20,12 +20,16 @@
     int minReconParticles = 0;
     int minClusters = 0;
     
+    int maxTracks = 999;
+    int maxReconParticles = 999;
+    int maxClusters = 999;
+    
     int nRejected = 0;
     int nAccepted = 0;
     
-    static final String trackCollectionName = "MatchedTracks";
-    static final String reconParticleCollectionName = "FinalStateParticles";
-    static final String clusterCollectionName = "EcalClusters";
+     String trackCollectionName = "MatchedTracks";
+     String reconParticleCollectionName = "FinalStateParticles";
+     String clusterCollectionName = "EcalClusters";
     
     List<EventFilter> filters = new ArrayList<EventFilter>();
     
@@ -60,14 +64,38 @@
     public void setMinTracks(int minTracks) {
         this.minTracks = minTracks;
     }
+    public void setMaxTracks(int maxTracks) {
+        this.maxTracks = maxTracks;
+    }
     
     public void setMinClusters(int minClusters) {
         this.minClusters = minClusters;
+    }
+    public void setMaxClusters(int maxClusters) {
+        this.maxClusters = maxClusters;
     }
     
     public void setMinReconParticles(int minReconParticles) {
         this.minReconParticles = minReconParticles;
     }
+    public void setMaxReconParticles(int maxReconParticles) {
+        this.maxReconParticles = maxReconParticles;
+    }
+    
+    public void setTrackCollectionName(String s)
+    {
+        trackCollectionName = s;
+    }
+    public void setReconParticleCollectionName(String s)
+    {
+        reconParticleCollectionName = s;
+    }
+    
+    public void setClusterCollectionName(String s)
+    {
+        clusterCollectionName = s;
+    }
+    
     
     static interface EventFilter {
         
@@ -84,7 +112,8 @@
         
         public boolean accept(EventHeader event) {
             if (event.hasCollection(Track.class, trackCollectionName)) {
-                if (event.get(Track.class, trackCollectionName).size() >= minTracks) {
+                int n = event.get(Track.class, trackCollectionName).size() ;
+                if ( n >= minTracks && n <= maxTracks) {
                     return true;
                 }
             }
@@ -100,7 +129,8 @@
         
         public boolean accept(EventHeader event) {
             if (event.hasCollection(Cluster.class, clusterCollectionName)) {
-                if (event.get(Track.class, clusterCollectionName).size() >= minClusters) {
+                int n = event.get(Cluster.class, clusterCollectionName).size();
+                if (n >= minClusters && n <= maxClusters) {
                     return true;
                 }
             }
@@ -116,7 +146,8 @@
         
         public boolean accept(EventHeader event) {
             if (event.hasCollection(ReconstructedParticle.class, reconParticleCollectionName)) {
-                if (event.get(Track.class, reconParticleCollectionName).size() >= minReconParticles) {
+                int n = event.get(ReconstructedParticle.class, reconParticleCollectionName).size();
+                if ( n >= minReconParticles && n <= maxReconParticles) {
                     return true;
                 }
             }