Print

Print


Commit in lcsim/src/org/lcsim/recon/cluster/util on MAIN
CombineClLists.java+62added 1.1
Utility to combine multiple cluster lists into 1

lcsim/src/org/lcsim/recon/cluster/util
CombineClLists.java added at 1.1
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);
+    }
+}
CVSspam 0.2.8