lcsim-contrib/src/main/java/org/lcsim/contrib/Partridge/TauTest
diff -N TauTest.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ TauTest.java 21 May 2009 21:50:42 -0000 1.1
@@ -0,0 +1,71 @@
+/*
+ * ResolutionAnalysis.java
+ *
+ * Created on November 7, 2008, 5:37 PM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+package org.lcsim.contrib.Partridge.TauTest;
+
+import hep.physics.particle.properties.ParticleType;
+import org.lcsim.contrib.Partridge.TrackingTest.*;
+import hep.physics.vec.BasicHep3Vector;
+import hep.physics.vec.Hep3Vector;
+import java.util.List;
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.LCRelation;
+import org.lcsim.event.MCParticle;
+import org.lcsim.event.RelationalTable;
+import org.lcsim.event.Track;
+import org.lcsim.event.base.BaseRelationalTable;
+import org.lcsim.fit.helicaltrack.HelicalTrackFit;
+import org.lcsim.fit.helicaltrack.HelixParamCalculator;
+import org.lcsim.util.Driver;
+import org.lcsim.util.aida.AIDA;
+
+/**
+ *
+ * @author richp
+ */
+public class TauTest extends Driver {
+
+ private AIDA aida = AIDA.defaultInstance();
+
+ /** Creates a new instance of ResolutionAnalysis */
+ public TauTest() {
+ }
+
+ @Override
+ public void process(EventHeader event) {
+
+ // Find the magnetic field
+ Hep3Vector IP = new BasicHep3Vector(0., 0., 0.);
+ double bfield = event.getDetector().getFieldMap().getField(IP).z();
+ List<MCParticle> mclist = event.getMCParticles();
+ for (MCParticle mcp : mclist) {
+ if (mcp.getGeneratorStatus() != MCParticle.FINAL_STATE) continue;
+ List<MCParticle> parents = mcp.getParents();
+ if (parents.size() != 1) continue;
+ MCParticle parent = parents.get(0);
+ if (parent.getDaughters().size() != 2) continue;
+ ParticleType ptype = parent.getType();
+ if (Math.abs(ptype.getPDGID()) != 15) continue;
+ if (Math.abs(mcp.getType().getPDGID()) != 211) continue;
+ HelixParamCalculator helix = new HelixParamCalculator(mcp, bfield);
+// System.out.println("DCA: "+helix.getDCA());
+ aida.cloud1D("Parent production time"+parent.getProductionTime());
+ double time = mcp.getProductionTime();
+ Hep3Vector origin = mcp.getOrigin();
+ double speed = origin.magnitude() / time;
+ if (speed < 200. || speed > 400.) continue;
+ double gamma = parent.getEnergy() / parent.getMass();
+ double proper = time / gamma;
+// System.out.println("Lab decay time; "+time+" Proper time: "+proper+" origin: "+origin+" speed: "+speed);
+ aida.cloud1D("d0 pi+- in tau decay").fill(helix.getDCA());
+ aida.cloud1D("Production time").fill(time);
+ aida.histogram1D("Proper time",50,0.,2.e-5).fill(proper);
+
+ }
+ }
+}
\ No newline at end of file