hps-java/src/main/java/org/lcsim/hps/examples
diff -N StarterAnalysisDriver.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ StarterAnalysisDriver.java 8 Mar 2012 23:40:51 -0000 1.1
@@ -0,0 +1,59 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.lcsim.hps.examples;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.LCRelation;
+import org.lcsim.event.RelationalTable;
+import org.lcsim.event.Track;
+import org.lcsim.event.base.BaseRelationalTable;
+import org.lcsim.hps.recon.tracking.TrackAnalysis;
+import org.lcsim.util.Driver;
+
+/**
+ *
+ * @author mgraham
+ */
+public class StarterAnalysisDriver extends Driver{
+ int nevents=0;
+ int naccepted=0;
+
+ public void process(
+ EventHeader event) {
+ nevents++;
+ List<Track> tracklist = event.get(Track.class, "MatchedTracks");
+ if(tracklist.size()<2)
+ return;
+
+ RelationalTable hittomc = new BaseRelationalTable(RelationalTable.Mode.MANY_TO_MANY, RelationalTable.Weighting.UNWEIGHTED);
+ List<LCRelation> mcrelations = event.get(LCRelation.class, "HelicalTrackMCRelations");
+
+ for (LCRelation relation : mcrelations) {
+ if (relation != null && relation.getFrom() != null && relation.getTo() != null) {
+ hittomc.add(relation.getFrom(), relation.getTo());
+ }
+ }
+ int ok=0;
+ for (Track track : tracklist) { //remember, these tracks are in the lcsim tracking frame!
+ TrackAnalysis tkanal = new TrackAnalysis(track, hittomc);
+ if(Math.abs(tkanal.getMCParticle().getPDGID())==611)
+ ok++;
+ //do some stuff to makes sure tracks are great
+ //is there an e+e- from the muonium
+ }
+
+ if(ok==2)
+ naccepted++;
+
+ }
+ public void endOfData() {
+
+ System.out.println("# of muonium events= " + naccepted + "; # of total = " + nevents);
+ }
+}