Commit in lcsim/src/org/lcsim/contrib/uiowa on MAIN
DualActionTrackClusterMatcher.java+39added 1.1
MJC: Code in development

lcsim/src/org/lcsim/contrib/uiowa
DualActionTrackClusterMatcher.java added at 1.1
diff -N DualActionTrackClusterMatcher.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ DualActionTrackClusterMatcher.java	14 Oct 2007 22:57:26 -0000	1.1
@@ -0,0 +1,39 @@
+package org.lcsim.contrib.uiowa;
+
+import java.util.*;
+import org.lcsim.event.*;
+import org.lcsim.recon.pfa.identifier.*;
+import org.lcsim.recon.cluster.mipfinder.*;
+
+// interface:
+// public Cluster matchTrackToCluster(Track tr, List<Cluster> clusters);
+
+public class DualActionTrackClusterMatcher implements TrackClusterMatcher {
+
+    TrackClusterMatcher m_mipTrackClusterMatcher;
+    TrackClusterMatcher m_genericTrackClusterMatcher;
+
+    public DualActionTrackClusterMatcher(TrackClusterMatcher mipTrackClusterMatcher, TrackClusterMatcher genericTrackClusterMatcher) {
+	m_mipTrackClusterMatcher = mipTrackClusterMatcher;
+	m_genericTrackClusterMatcher = genericTrackClusterMatcher;
+    }
+
+    public Cluster matchTrackToCluster(Track tr, List<Cluster> clusters) {
+	// First try the MIPs...
+	List<Cluster> mipClusters = new Vector<Cluster>();
+	for (Cluster clus : clusters) {
+	    if (clus instanceof MIPCluster) {
+		mipClusters.add(clus);
+	    }
+	}
+	
+	Cluster matchedMIP = m_mipTrackClusterMatcher.matchTrackToCluster(tr, mipClusters);
+	if (matchedMIP != null) {
+	    return matchedMIP;
+	}
+	 
+	// That didn't work -- now try generic match
+	Cluster matchedClus = m_genericTrackClusterMatcher.matchTrackToCluster(tr, clusters);
+	return matchedClus;
+    }     
+}
CVSspam 0.2.8