lcsim-contrib/src/main/java/org/lcsim/contrib/SteveMagill
diff -N MCRPdijetm.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ MCRPdijetm.java 12 Aug 2009 18:33:49 -0000 1.1
@@ -0,0 +1,78 @@
+package org.lcsim.contrib.SteveMagill;
+
+import java.util.List;
+import org.lcsim.event.EventHeader;
+import org.lcsim.util.Driver;
+import hep.physics.vec.Hep3Vector;
+import org.lcsim.event.ReconstructedParticle;
+import org.lcsim.util.aida.AIDA;
+
+/*
+ * PFASelect includes fiducial cut to select region for PFA analysis
+ */
+
+public class MCRPdijetm extends Driver
+{
+ private String _jname;
+ private AIDA aida = AIDA.defaultInstance();
+
+ public MCRPdijetm()
+ {
+
+ }
+
+ protected void process(EventHeader event)
+ {
+ super.process(event);
+
+ // get dijet mass if 2 jets
+ List<ReconstructedParticle> jets = event.get(ReconstructedParticle.class,_jname);
+ double jpx = 0.;
+ double jpy = 0.;
+ double jpz = 0.;
+ double Etot = 0.;
+ double jm2 = 0.;
+ int jind = 0;
+ double[] ejet = new double[10];
+ double[] pzjet = new double[10];
+ aida.cloud1D("Number of Jets from MCRPs").fill(jets.size());
+
+ for(ReconstructedParticle jet : jets)
+ {
+ Etot += jet.getEnergy();
+ Hep3Vector jmom = jet.getMomentum();
+ aida.cloud1D("MCParticle Jet pT").fill(Math.sqrt(jmom.x()*jmom.x()+jmom.y()*jmom.y()));
+ jpx += jmom.x();
+ jpy += jmom.y();
+ jpz += jmom.z();
+ ejet[jind] = jet.getEnergy();
+ jm2 += jet.getMass()*jet.getMass();
+ pzjet[jind] = jmom.z();
+ jind++;
+ }
+ double emin = 0.;
+ double pzj = 0.;
+ if (jind<3)
+ {
+ emin = ejet[1];
+ pzj = pzjet[1];
+ if (ejet[0] < ejet[1])
+ {
+ emin = ejet[0];
+ pzj = pzjet[0];
+ }
+// aida.cloud1D("ycut for 2 jets").fill(2.*emin*(emin-Math.abs(pzj))/(Etot*Etot));
+ }
+ double ptot = Math.sqrt(jpx*jpx+jpy*jpy+jpz*jpz);
+ double jinv = Math.sqrt(Etot*Etot-ptot*ptot+jm2);
+ aida.cloud1D("Total MC Jet Mass").fill(jinv);
+ aida.cloud1D("Total MC E jets").fill(Etot);
+// System.out.println("Total MC Jet Mass " + jinv);
+ }
+
+ public void setInputJets(String jname)
+ {
+ _jname = jname;
+ }
+
+}