lcsim/src/org/lcsim/recon/cluster/util
diff -N CombineClLists.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ CombineClLists.java 26 Feb 2008 18:25:03 -0000 1.1
@@ -0,0 +1,62 @@
+/*
+ * CombineClLists.java
+ *
+ * Created on February 25, 2008, 9:49 AM
+ *
+ * Utility to combine a set of ClusterLists into 1 ClusterList
+ */
+
+package org.lcsim.recon.cluster.util;
+import java.util.*;
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.Cluster;
+import org.lcsim.event.CalorimeterHit;
+import org.lcsim.util.Driver;
+import org.lcsim.recon.cluster.util.BasicCluster;
+import org.lcsim.util.lcio.LCIOConstants;
+
+/**
+ *
+ * @author cassell
+ */
+public class CombineClLists extends Driver
+{
+
+ /** Creates a new instance of CombineClLists */
+ String[] inName;
+ String outName;
+ int minhits = 1;
+ public CombineClLists(String[] in, String out)
+ {
+ inName = in;
+ outName = out;
+ }
+ public CombineClLists(String[] in, String out, int min)
+ {
+ inName = in;
+ outName = out;
+ minhits = min;
+ }
+ public void setMinNHits(int n)
+ {minhits = n;}
+ protected void process(EventHeader event)
+ {
+ List<Cluster> outList = new ArrayList<Cluster>();
+ List<List<Cluster>> all = event.get(Cluster.class);
+ for(List<Cluster> cl:all)
+ {
+ for(int i=0;i<inName.length;i++)
+ {
+ if(event.getMetaData(cl).getName().compareTo(inName[i]) == 0)
+ {
+ for(Cluster c:cl)
+ {
+ if(c.getCalorimeterHits().size() >= minhits)outList.add(c);
+ }
+ }
+ }
+ }
+ int flag = 1<<LCIOConstants.CLBIT_HITS;
+ event.put(outName,outList,Cluster.class,flag);
+ }
+}