Commit in lcsim/src/org/lcsim/recon/cluster/util on MAIN
ClusterSubtractDriver.java+56added 1.1
Utility to remove clusters with overlapping hit in remove lis

lcsim/src/org/lcsim/recon/cluster/util
ClusterSubtractDriver.java added at 1.1
diff -N ClusterSubtractDriver.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ClusterSubtractDriver.java	14 Mar 2011 18:51:52 -0000	1.1
@@ -0,0 +1,56 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package org.lcsim.recon.cluster.util;
+import org.lcsim.util.Driver;
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.Cluster;
+import org.lcsim.event.CalorimeterHit;
+import java.util.*;
+
+/**
+ *
+ * @author cassell
+ */
+public class ClusterSubtractDriver extends Driver
+{
+    String initName;
+    String sublName;
+    String outName;
+    public ClusterSubtractDriver(String initname, String sublname, String outname)
+    {
+        initName = initname;
+        sublName = sublname;
+        outName = outname;
+    }
+    protected void process(EventHeader event)
+    {
+        List<Cluster> initl = event.get(Cluster.class,initName);
+        List<Cluster> subl = event.get(Cluster.class,sublName);
+        List<Cluster> outl = new ArrayList<Cluster>(initl);
+        for(Cluster c:subl)
+        {
+            for(Cluster cc:initl)
+            {
+                int nmatch = 0;
+                List<CalorimeterHit> hl = cc.getCalorimeterHits();
+                for(CalorimeterHit h:c.getCalorimeterHits())
+                {
+                    if(hl.contains(h))
+                    {
+                        nmatch++;
+                        break;
+                    }
+                }
+                if(nmatch > 0)
+                {
+                    outl.remove(cc);
+                    break;
+                }
+            }
+        }
+        event.put(outName, outl);
+    }
+}
CVSspam 0.2.8