lcsim/src/org/lcsim/recon/cluster/util
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);
+ }
+}