Print

Print


Commit in lcsim/src/org/lcsim/contrib/JanStrube on MAIN
ZvTopDriver.java+68added 1.1
Added ZvTopDriver. Puts a list of found vertices into the event.

lcsim/src/org/lcsim/contrib/JanStrube
ZvTopDriver.java added at 1.1
diff -N ZvTopDriver.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ZvTopDriver.java	25 Oct 2005 17:53:38 -0000	1.1
@@ -0,0 +1,68 @@
+import hep.physics.jet.AbstractJetFinder;
+import hep.physics.jet.FixNumberOfJetsFinder;
+import hep.physics.jet.JadeEJetFinder;
+import hep.physics.vec.BasicHep3Vector;
+import hep.physics.vec.Hep3Vector;
+
+import java.util.ArrayList;
+import java.util.Formatter;
+import java.util.List;
+
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.MCParticle;
+import org.lcsim.event.Track;
+import org.lcsim.geometry.Detector;
+import org.lcsim.mc.fast.MCFast;
+import org.lcsim.recon.vertexing.zvtop4.ZvFitter;
+import org.lcsim.recon.vertexing.zvtop4.ZvTop;
+import org.lcsim.recon.vertexing.zvtop4.ZvTrack;
+import org.lcsim.recon.vertexing.zvtop4.ZvVertex;
+import org.lcsim.util.Driver;
+import org.lcsim.util.aida.AIDA;
+import org.lcsim.util.swim.HelixSwimmer;
+
+public class ZvTopDriver extends Driver {
+    private HelixSwimmer swimmer;
+    private ZvFitter fitter;
+    private ZvTop topper;
+    AbstractJetFinder jetFind;
+    List<ZvVertex> vertices;
+    public ZvTopDriver() {
+        swimmer = new HelixSwimmer(5.0);
+        jetFind = new JadeEJetFinder(0.32);
+        add(new MCFast());
+    }
+
+
+    public void process(EventHeader event) {
+        super.process(event);
+        // Get the list of MCParticles from the event
+        List<Track> tracks = event.getTracks();
+        // Histogram the number of particles per event
+        // Loop over the particles
+        Detector thisDetector = event.getDetector();
+        fitter = new ZvFitter(thisDetector);
+        FixNumberOfJetsFinder jetFind = new FixNumberOfJetsFinder(1);
+        List<Hep3Vector> eventVectorList = new ArrayList<Hep3Vector>();
+        for (Track iTrack : tracks) {
+            eventVectorList.add(new BasicHep3Vector(iTrack.getMomentum()));
+        }
+        jetFind.setEvent(eventVectorList);
+        topper = new ZvTop(jetFind.jet(0).v3(), fitter);
+        // should be proportional to jet momentum
+        topper.setAngularWeight(2);
+        topper.setIpWeight(1);
+        topper.setMaxDistFromIP(25);
+        vertices = topper.findVertices(tracks);
+        System.out.printf("found %d vertices\n", vertices.size());
+        for (ZvVertex iVtx : vertices) {
+            System.out.println("Vertex at pos: " + iVtx.getPosition());
+        }
+        List<ZvTrack> zvTracks = new ArrayList<ZvTrack>();
+        for (Track t : tracks) {
+            zvTracks.add(new ZvTrack(t));
+        }
+        event.put("ZvTracks", zvTracks, ZvTrack.class, 0);
+        event.put("VtxList", vertices, ZvVertex.class, 0);
+    }
+}
CVSspam 0.2.8