Print

Print


Commit in lcsim/src/org/lcsim/contrib/JanStrube on MAIN
VertexFitterDriver.java+43-51.2 -> 1.3
adding more track information to the example Driver

lcsim/src/org/lcsim/contrib/JanStrube
VertexFitterDriver.java 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- VertexFitterDriver.java	27 Mar 2006 06:38:08 -0000	1.2
+++ VertexFitterDriver.java	28 Mar 2006 08:00:17 -0000	1.3
@@ -3,7 +3,7 @@
  *
  * Created on March 25, 2006, 3:15 PM
  *
- *@version $Id: VertexFitterDriver.java,v 1.2 2006/03/27 06:38:08 jstrube Exp $
+ *@version $Id: VertexFitterDriver.java,v 1.3 2006/03/28 08:00:17 jstrube Exp $
  */
 
 import hep.aida.IAnalysisFactory;
@@ -13,6 +13,7 @@
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.MCParticle;
 import org.lcsim.event.Track;
+import org.lcsim.mc.fast.tracking.ReconTrack;
 import org.lcsim.recon.vertexing.zvtop4.fitter.BilloirFitter;
 import org.lcsim.recon.vertexing.zvtop4.fitter.Vertex;
 import org.lcsim.recon.vertexing.zvtop4.fitter.VertexFitter;
@@ -34,9 +35,20 @@
     private int primaryParticle = 23; // 443;
     private SpacePoint primaryVertex;
     public VertexFitterDriver() {
-        String[] names = new String[]{"chi2", "fittedX", "fittedY", "fittedZ", "xError", "yError", "zError", "primaryX", "primaryY", "primaryZ"};
-        Class[] classes = new Class[]{Float.TYPE, Float.TYPE, Float.TYPE, Float.TYPE, Float.TYPE, Float.TYPE, Float.TYPE, Float.TYPE, Float.TYPE, Float.TYPE};
-        tuple = tf.create("vertexFitterResults", "", names, classes);
+        String names = new String(
+            "float chi2; float fittedX; float fittedY; float fittedZ; float xError; float yError; float zError" +
+                "; float primaryX; float primaryY; float primaryZ" +
+                "; ITuple trackTuple={float chi2" +
+                      ", float unsmeared_theta" +
+                      ", float unsmeared_phi" +
+                      ", float unsmeared_omega" +
+                      ", float smeared_theta, float smeared_theta_error" +
+                      ", float smeared_phi, float smeared phi_error" +
+                      ", float smeared_omega, float smeared_omega_error" +
+                      ", float fitted_theta, float fitted_theta_error" +
+                      ", float fitted_phi, float fitted_phi_error" +
+                      ", float fitted_omega, float fitted_omega_error}");
+        tuple = tf.create("vertexFitterResults", "properties of Vertex", names, "");
         fitter = new BilloirFitter(5);
     }
     
@@ -57,11 +69,37 @@
         tuple.fill(2, (float)vertex._xyzf[1]);
         tuple.fill(3, (float)vertex._xyzf[2]);
         tuple.fill(4, (float)vertex._vcov[0]);
-        tuple.fill(5, (float)vertex._vcov[3]);
+        tuple.fill(5, (float)vertex._vcov[2]);
         tuple.fill(6, (float)vertex._vcov[5]);
         tuple.fill(7, (float)primaryVertex.x());
         tuple.fill(8, (float)primaryVertex.y());
         tuple.fill(9, (float)primaryVertex.z());
+        
+        ITuple trackTuple = tuple.getTuple(10);
+        for (int i=0; i<2; ++i) {
+            ReconTrack rTrack = (ReconTrack) tracks.get(i);
+            Track iTrack = tracks.get(i);
+            trackTuple.fill(0, (float) vertex._chi2tr[i]);
+//            trackTuple.fill(1, (float) Math.atan(90-rTrack.getNotSmearedTrack().getTanL()));
+//            trackTuple.fill(2, (float) rTrack.getNotSmearedTrack().getPhi0());
+//            trackTuple.fill(3, (float) rTrack.getNotSmearedTrack().getOmega());
+            double tanLambda = iTrack.getTrackParameter(4);
+            double theta = Math.PI/2-Math.atan(tanLambda);
+            trackTuple.fill(4, (float) theta);
+            double thetaError = (1+tanLambda*tanLambda)*(1+tanLambda*tanLambda)*iTrack.getErrorMatrixElement(4,4);
+            trackTuple.fill(5, (float) thetaError);
+            trackTuple.fill(6, (float) iTrack.getTrackParameter(1));
+            trackTuple.fill(7, (float) iTrack.getErrorMatrixElement(1,1));
+            trackTuple.fill(8, (float) iTrack.getTrackParameter(2));
+            trackTuple.fill(9, (float) iTrack.getErrorMatrixElement(2, 2));
+            trackTuple.fill(10, (float) vertex._parf[0][i]);
+            trackTuple.fill(11, (float) vertex._tcov[0][i]);
+            trackTuple.fill(12, (float) vertex._parf[1][i]);
+            trackTuple.fill(13, (float) vertex._tcov[2][i]);
+            trackTuple.fill(14, (float) vertex._parf[2][i]);
+            trackTuple.fill(15, (float) vertex._tcov[5][i]);
+            trackTuple.addRow();
+        }
 	tuple.addRow();
     }
 }
CVSspam 0.2.8