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; } }