Print

Print


Commit in lcsim/src/org/lcsim/contrib/uiowa/structural on MAIN
ClusterEnergyAssociator.java+39added 1.1
Quick 'n' dirty truth association

lcsim/src/org/lcsim/contrib/uiowa/structural
ClusterEnergyAssociator.java added at 1.1
diff -N ClusterEnergyAssociator.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ClusterEnergyAssociator.java	14 Oct 2005 17:54:51 -0000	1.1
@@ -0,0 +1,39 @@
+package structural; // package org.lcsim.recon.cluster.structural;
+
+import java.util.List;
+
+import org.lcsim.event.Cluster;
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.MCParticle;
+import org.lcsim.event.Cluster;
+
+import util.EnergyAssociator;
+
+public class ClusterEnergyAssociator implements ClusterAssociator
+{
+    protected EnergyAssociator m_cacheAssociator = null;
+    protected EventHeader m_cacheEvent = null;
+    public ClusterEnergyAssociator() {}
+
+    public boolean isLinkCorrect(Cluster clus1, Cluster clus2, EventHeader event)
+    {
+	if (event != m_cacheEvent) {
+	    m_cacheEvent = event;
+	    m_cacheAssociator = new EnergyAssociator(event);
+	}
+	List<MCParticle> mc1 = m_cacheAssociator.associateClusterToMCParticles(clus1);
+	List<MCParticle> mc2 = m_cacheAssociator.associateClusterToMCParticles(clus2);
+	if (mc1 != null && mc2 != null) {
+	    if (mc1.size()>0 && mc2.size()>0) {
+		MCParticle dominant1 = mc1.iterator().next();
+		MCParticle dominant2 = mc2.iterator().next();
+		if (dominant1 == dominant2) {
+		    // Match!
+		    return true;
+		}
+	    }
+	}
+	// Failure
+	return false;
+    }
+}
CVSspam 0.2.8