Print

Print


Author: [log in to unmask]
Date: Tue Jun 28 15:36:38 2016
New Revision: 4411

Log:
added simple cluster selection criteria

Modified:
    java/trunk/analysis/src/main/java/org/hps/analysis/examples/StripEventDriver.java

Modified: java/trunk/analysis/src/main/java/org/hps/analysis/examples/StripEventDriver.java
 =============================================================================
--- java/trunk/analysis/src/main/java/org/hps/analysis/examples/StripEventDriver.java	(original)
+++ java/trunk/analysis/src/main/java/org/hps/analysis/examples/StripEventDriver.java	Tue Jun 28 15:36:38 2016
@@ -1,6 +1,7 @@
 package org.hps.analysis.examples;
 
 import java.util.List;
+import org.lcsim.event.Cluster;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.Track;
 import org.lcsim.event.TrackerHit;
@@ -22,6 +23,12 @@
     private int _minNumberOfUnconstrainedV0Vertices = 0;
     private int _minNumberOfStripHits = 0;
     private int _maxNumberOfStripHits = Integer.MAX_VALUE;
+    private int _minNumberOfClusters = 0;
+    private int _maxNumberOfClusters = Integer.MAX_VALUE;
+    private double _minClusterEnergy = 0.;
+    private double _maxClusterEnergy = 12.;
+
+    private String _clusterCollectionName = "EcalClusters";
 
     @Override
     protected void process(EventHeader event)
@@ -49,13 +56,32 @@
                 skipEvent = true;
             }
         }
-        if(event.hasCollection(TrackerHit.class, "StripClusterer_SiTrackerHitStrip1D")) {
+        if (event.hasCollection(TrackerHit.class, "StripClusterer_SiTrackerHitStrip1D")) {
             int nHits = event.get(TrackerHit.class, "StripClusterer_SiTrackerHitStrip1D").size();
             if (nHits < _minNumberOfStripHits) {
                 skipEvent = true;
             }
             if (nHits > _maxNumberOfStripHits) {
                 skipEvent = true;
+            }
+        }
+        if (event.hasCollection(Cluster.class, _clusterCollectionName)) {
+            List<Cluster> clusters = event.get(Cluster.class, _clusterCollectionName);
+            int nclusters = clusters.size();
+            if (nclusters < _minNumberOfClusters) {
+                skipEvent = true;
+            }
+            if (nclusters > _maxNumberOfClusters) {
+                skipEvent = true;
+            }
+            for (Cluster clus : clusters) {
+                double e = clus.getEnergy();
+                if (e < _minClusterEnergy) {
+                    skipEvent = true;
+                }
+                if (e > _maxClusterEnergy) {
+                    skipEvent = true;
+                }
             }
         }
         if (skipEvent) {
@@ -85,15 +111,40 @@
     {
         _minNumberOfUnconstrainedV0Vertices = nVertices;
     }
-    
+
     public void setMinNumberOfStripHits(int n)
     {
         _minNumberOfStripHits = n;
     }
-    
+
     public void setMaxNumberOfStripHits(int n)
     {
         _maxNumberOfStripHits = n;
     }
 
+    public void setMinNumberOfClusters(int n)
+    {
+        _minNumberOfClusters = n;
+    }
+
+    public void setMaxNumberOfClusters(int n)
+    {
+        _maxNumberOfClusters = n;
+    }
+
+    public void setMinClusterEnergy(double e)
+    {
+        _minClusterEnergy = e;
+    }
+
+    public void setMaxClusterEnergy(double e)
+    {
+        _maxClusterEnergy = e;
+    }
+
+    public void setClusterCollectionName(String s)
+    {
+        _clusterCollectionName = s;
+    }
+
 }