Commit in lcsim-contrib/src/main/java/org/lcsim/contrib/Cassell/recon on MAIN
AddFixedNumberOfJets.java+85added 1.1
Driver to add fixed# of jets clustering to event

lcsim-contrib/src/main/java/org/lcsim/contrib/Cassell/recon
AddFixedNumberOfJets.java added at 1.1
diff -N AddFixedNumberOfJets.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ AddFixedNumberOfJets.java	30 May 2011 19:17:33 -0000	1.1
@@ -0,0 +1,85 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package org.lcsim.contrib.Cassell.recon;
+import org.lcsim.util.Driver;
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.ReconstructedParticle;
+import org.lcsim.event.util.*;
+import hep.physics.jet.*;
+import java.util.*;
+import org.lcsim.event.util.CreateFinalStateMCParticleList;
+import org.lcsim.contrib.Cassell.recon.Cheat.*;
+
+/**
+ *
+ * @author cassell
+ */
+public class AddFixedNumberOfJets extends Driver
+{
+    boolean continueOnError;
+
+    public void setContinueOnError(boolean continueOnError)
+    {
+        this.continueOnError = continueOnError;
+    }
+    boolean first;
+    String FSname = "GenFinalStateParticles";
+    String prname = "PefectReconstructedParticles";
+    double ctcut = 0.993;
+    public AddFixedNumberOfJets()
+    {
+        this(true);
+    }
+    public AddFixedNumberOfJets(boolean coe)
+    {
+        continueOnError = coe;
+        add(new CreateFinalStateMCParticleList("Gen"));
+        org.lcsim.contrib.Cassell.recon.Cheat.MakePerfectReconParticles mprp = new org.lcsim.contrib.Cassell.recon.Cheat.MakePerfectReconParticles(FSname,prname);
+        mprp.setCosThetaCut(ctcut);
+        add(mprp);
+        JetDriver[] jd = new JetDriver[8];
+        JetFinder[] jf = new JetFinder[8];
+        for(int k=2;k<9;k++)
+        {
+            int j = k-2;
+            jd[j] = new JetDriver();
+            jf[j] = new FixNumberOfJetsFinder(k);
+            jd[j].setInputCollectionName(prname);
+            jd[j].setOutputCollectionName(prname+k+"Jets");
+            jd[j].setFinder(jf[j]);
+            jd[j].setContinueOnError(continueOnError);
+            add(jd[j]);
+        }
+        first = true;
+    }
+    protected void process(EventHeader event)
+    {
+        if(first)
+        {
+            List<List<ReconstructedParticle>> rll = event.get(ReconstructedParticle.class);
+            JetDriver[][] jd = new JetDriver[rll.size()][8];
+            JetFinder[][] jf = new JetFinder[rll.size()][8];
+            for(int i=0;i<rll.size();i++)
+            {
+                List<ReconstructedParticle> rl = rll.get(i);
+                String rps = event.getMetaData(rl).getName();
+                for(int k=2;k<9;k++)
+                {
+                    int j = k-2;
+                    jd[i][j] = new JetDriver();
+                    jf[i][j] = new FixNumberOfJetsFinder(k);
+                    jd[i][j].setInputCollectionName(rps);
+                    jd[i][j].setOutputCollectionName(rps+k+"Jets");
+                    jd[i][j].setFinder(jf[i][j]);
+                    jd[i][j].setContinueOnError(continueOnError);
+                    add(jd[i][j]);
+                }
+            }
+            first = false;
+        }
+        super.process(event);
+    }
+}
CVSspam 0.2.8