Commit in lcsim/src/org/lcsim/recon/cluster/clumpfinder on MAIN
ClumpFinder.java+13-21.5 -> 1.6
HighHitDensityDecision.java+12-31.2 -> 1.3
+25-5
2 modified files
MJC: Make density cut on ClumpFinder tuneable

lcsim/src/org/lcsim/recon/cluster/clumpfinder
ClumpFinder.java 1.5 -> 1.6
diff -u -r1.5 -r1.6
--- ClumpFinder.java	17 Dec 2007 22:40:21 -0000	1.5
+++ ClumpFinder.java	14 May 2008 21:11:56 -0000	1.6
@@ -29,7 +29,7 @@
  * or more for each hit. This is hard-coded at the moment, but
  * should become a user-definable in a later version.
  * 
- * @version $Id: ClumpFinder.java,v 1.5 2007/12/17 22:40:21 mcharles Exp $
+ * @version $Id: ClumpFinder.java,v 1.6 2008/05/14 21:11:56 mcharles Exp $
  */
 
 public class ClumpFinder extends Driver implements Clusterer
@@ -41,6 +41,15 @@
     protected DecisionMakerSingle<CalorimeterHit> m_seedDecision;
     protected DecisionMakerSingle<Cluster> m_clumpDecision;
 
+    protected int m_minHitsIn333Grid = 6;
+    protected int m_minHitsIn553Grid = 18;
+
+    /** Set minimum numbers of hits in 3x3x3 or 5x5x3 grid to pass */
+    public void setDensityThresholds(int minIn333, int minIn553) {
+	m_minHitsIn333Grid = minIn333;
+	m_minHitsIn553Grid = minIn553;
+    }
+
     /** Simple constructor. */
     public ClumpFinder() {
 	m_hitDecision = new DummyDecisionMakerSingle<CalorimeterHit> (); // Default: All hits are valid
@@ -104,7 +113,9 @@
 	ListFilter<CalorimeterHit> hitFilter = new ListFilter<CalorimeterHit> (m_hitDecision);
 	List<CalorimeterHit> inputHits = hitFilter.filterList(hits);
 	// Filter these again, require high local density:
-	ListFilter<CalorimeterHit> densityFilter = new ListFilter<CalorimeterHit> (new HighHitDensityDecision(inputHits));
+	HighHitDensityDecision densityDecision = new HighHitDensityDecision(inputHits);
+	densityDecision.setDensityThresholds(m_minHitsIn333Grid, m_minHitsIn553Grid);
+	ListFilter<CalorimeterHit> densityFilter = new ListFilter<CalorimeterHit> (densityDecision);
 	List<CalorimeterHit> unusedHits = densityFilter.filterList(inputHits);
 	// Apply some pre-filtering on these with a ListFilter to get a list of seeds
 	ListFilter<CalorimeterHit> seedFilter = new ListFilter<CalorimeterHit> (m_seedDecision);

lcsim/src/org/lcsim/recon/cluster/clumpfinder
HighHitDensityDecision.java 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- HighHitDensityDecision.java	19 Nov 2007 21:53:31 -0000	1.2
+++ HighHitDensityDecision.java	14 May 2008 21:11:56 -0000	1.3
@@ -24,11 +24,20 @@
  * Eventually this should be made more flexible and moved outside
  * the "structural" package.
  *
- * @version $Id: HighHitDensityDecision.java,v 1.2 2007/11/19 21:53:31 mcharles Exp $
+ * @version $Id: HighHitDensityDecision.java,v 1.3 2008/05/14 21:11:56 mcharles Exp $
  */
 
 public class HighHitDensityDecision implements DecisionMakerSingle<CalorimeterHit> 
 {
+    protected int m_minHitsIn333Grid = 6;
+    protected int m_minHitsIn553Grid = 18;
+
+    /** Set minimum numbers of hits in 3x3x3 or 5x5x3 grid to pass */
+    public void setDensityThresholds(int minIn333, int minIn553) {
+	m_minHitsIn333Grid = minIn333;
+	m_minHitsIn553Grid = minIn553;
+    }
+
     /**
      * Constructor. 
      *
@@ -62,10 +71,10 @@
 	    int deltaLayer = 1;
 	    int deltaThetaWide = 2;
 	    int deltaPhiWide = 2;
-	    int minNeighboursWide = 18;
+	    int minNeighboursWide = m_minHitsIn553Grid;
 	    int deltaThetaNarrow = 1;
 	    int deltaPhiNarrow = 1;
-	    int minNeighboursNarrow = 6;
+	    int minNeighboursNarrow = m_minHitsIn333Grid;
 	    // Find all hits from [unusedHits] within range:
 	    long[] wideWindowNeighbourIDs = idCAL.getNeighbourIDs(deltaLayer, deltaThetaWide, deltaPhiWide);
 	    long[] narrowWindowNeighbourIDs = idCAL.getNeighbourIDs(deltaLayer, deltaThetaNarrow, deltaPhiNarrow);
CVSspam 0.2.8