lcsim/src/org/lcsim/contrib/uiowa/structural
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;
+ }
+}