Print

Print


Commit in lcsim/src/org/lcsim/contrib/JanStrube/vtxFitter on MAIN
Fitter.java+10-31.7 -> 1.8
Vertex.java+11.3 -> 1.4
+11-3
2 modified files
updates

lcsim/src/org/lcsim/contrib/JanStrube/vtxFitter
Fitter.java 1.7 -> 1.8
diff -u -r1.7 -r1.8
--- Fitter.java	15 Aug 2006 23:50:01 -0000	1.7
+++ Fitter.java	16 Aug 2006 06:23:44 -0000	1.8
@@ -1,6 +1,6 @@
 package org.lcsim.contrib.JanStrube.vtxFitter;
 /**
- * @version $Id: Fitter.java,v 1.7 2006/08/15 23:50:01 jstrube Exp $
+ * @version $Id: Fitter.java,v 1.8 2006/08/16 06:23:44 jstrube Exp $
  */
 
 import static java.lang.Math.atan2;
@@ -11,6 +11,8 @@
 import static org.lcsim.recon.vertexing.zvtop4.VectorArithmetic.dot;
 import static org.lcsim.contrib.JanStrube.tracking.NewTrack.SpaceMomentum2Parameters;
 
+import java.util.ArrayList;
+
 import org.lcsim.contrib.JanStrube.tracking.HelixSwimmer;
 import org.lcsim.contrib.JanStrube.tracking.Track;
 import org.lcsim.spacegeom.CartesianPoint;
@@ -117,30 +119,35 @@
         Matrix G_kB = G_k.minus((G_k.times(B_k.times(W_k.times(B_k.transpose().times(G_k))))));
 
         // cov(x)
+        System.out.printf("C_k before: %g\t%g\t%g\n", C_prev.get(0, 0), C_prev.get(1, 1), C_prev.get(2, 2));
         Matrix C_k = C_prev.inverse().plus(A_k.transpose().times(G_kB.times(A_k))).inverse();
-        System.out.printf("C_k: %g\t%g\t%g\n", C_k.get(0, 0), C_k.get(1, 1), C_k.get(2, 2));
+        System.out.printf("C_k after: %g\t%g\t%g\n", C_k.get(0, 0), C_k.get(1, 1), C_k.get(2, 2));
         Matrix x_k = C_k.times(C_prev.inverse().times(x_prev).plus(
                  A_k.transpose().times(G_kB).times(m_k.minus(c_k0))));
         Matrix q_k = W_k.times(B_k.transpose().times(G_k.times(m_k.minus(c_k0.plus(A_k.times(x_k))))));
         
         // cov(q)
         Matrix D_k = W_k.plus(W_k.times(B_k.transpose().times(G_k.times(A_k.times(C_k.times(A_k.transpose().times(G_k.times(B_k.times(W_k)))))))));
+//        System.out.printf("D_k: %g\t%g\t%g\n", D_k.get(0, 0), D_k.get(1, 1), D_k.get(2, 2));
         // cov(x, q)
         Matrix E_k = C_k.times(A_k.transpose().times(G_k.times(B_k.times(W_k)))).uminus();
         
         // now the chi2
         Matrix r_k = h.minus(c_k0.plus(A_k.times(x_k).plus(B_k.times(q_k))));
+//        System.out.printf("chi2: %s + %s", r_k.transpose().times(G_k.times(r_k)), x_k.minus(x_prev).transpose().times(C_prev.inverse().times(x_k.minus(x_prev))));
         double chi2_kf = r_k.transpose().times(G_k.times(r_k)).get(0, 0)
             + x_k.minus(x_prev).transpose().times(C_prev.inverse().times(x_k.minus(x_prev))).get(0, 0);
 		
         double chi2 = chi2_prev + chi2_kf;
+		System.out.printf("before: %s", x_prev);
         x_prev = x_k;
+        System.out.printf("after: %s", x_prev);
         C_prev = C_k;
         particle.addTrack(t, chi2_kf);
         particle._origin = new CartesianPoint(x_k.getRowPackedCopy());
         System.out.println(particle._origin);
         chi2_prev = chi2;
-        return chi2;
+        return chi2_kf;
 	}
 	
 	private double smoothe(Track t) {

lcsim/src/org/lcsim/contrib/JanStrube/vtxFitter
Vertex.java 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- Vertex.java	15 Aug 2006 23:50:02 -0000	1.3
+++ Vertex.java	16 Aug 2006 06:23:44 -0000	1.4
@@ -46,6 +46,7 @@
     }
     
     public void setTracks(List<Track> tracks) {
+        _tracks.clear();
         for (Track t : tracks) {
             _tracks.put(t, 0.);
         }
CVSspam 0.2.8