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