lcsim-contrib/src/main/java/org/lcsim/contrib/Cassell/recon
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);
+ }
+}