Print

Print


Commit in lcsim-contrib/src/main/java/org/lcsim/contrib/Partridge/TauTest on MAIN
TauTest.java+71added 1.1
Test tau decay time distribution

lcsim-contrib/src/main/java/org/lcsim/contrib/Partridge/TauTest
TauTest.java added at 1.1
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
CVSspam 0.2.8