Commit in lcsim on MAIN
project.xml+11.35 -> 1.36
src/org/lcsim/contrib/JanStrube/standalone/FitterTestDriver.java+50-121.1 -> 1.2
                                          /MainLoop.java+5-41.2 -> 1.3
src/org/lcsim/contrib/JanStrube/vtxFitter/Fitter.java+5-31.9 -> 1.10
                                         /vertexing.lyx+81.7 -> 1.8
+69-19
5 modified files
Adding a driver to test the fitter on real events.
Seems to work fine with the vanilla MC, but not with the MC from my contrib area.
Removing a part of my contrib area from the build.

lcsim
project.xml 1.35 -> 1.36
diff -u -r1.35 -r1.36
--- project.xml	3 Aug 2006 10:35:55 -0000	1.35
+++ project.xml	20 Aug 2006 05:56:55 -0000	1.36
@@ -155,6 +155,7 @@
      <exclude>org/lcsim/contrib/CarstenHensel/**</exclude>
      <exclude>org/lcsim/contrib/LeiXia/**</exclude>
      <exclude>org/lcsim/contrib/JanStrube/*</exclude>
+     <exclude>org/lcsim/contrib/JanStrube/standalone/**</exclude>
      <exclude>org/lcsim/contrib/SteveKuhlmann/**</exclude>
      <exclude>org/lcsim/contrib/compile/**</exclude>
      <exclude>org/lcsim/contrib/proulx/**</exclude>

lcsim/src/org/lcsim/contrib/JanStrube/standalone
FitterTestDriver.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- FitterTestDriver.java	19 Aug 2006 20:03:16 -0000	1.1
+++ FitterTestDriver.java	20 Aug 2006 05:56:56 -0000	1.2
@@ -1,6 +1,8 @@
 import java.util.Random;
 
 import org.lcsim.contrib.JanStrube.tracking.NewFastMCTrackFactory;
+import org.lcsim.contrib.JanStrube.tracking.NewTrack;
+import org.lcsim.contrib.JanStrube.tracking.Track;
 import org.lcsim.contrib.JanStrube.vtxFitter.Fitter;
 import org.lcsim.contrib.JanStrube.vtxFitter.Vertex;
 import org.lcsim.event.EventHeader;
@@ -17,18 +19,23 @@
     private SpacePoint referencePoint;
     private SpacePoint origin;
     private Random rand;
+    private int count=0;
     
     public FitterTestDriver() {
         referencePoint = new CartesianPoint(0, 0, 0);
         origin = new CartesianPoint(0, 0, 0);
-        rand = new Random(74234);
+        rand = new Random(123);
     }
 
     public void process(EventHeader event) {
+    	count++;
+    	if (count % 500 == 0)
+    		System.out.printf("Processing event %d\n", count);
         // beamconstraint when smearing the tracks ?
         NewFastMCTrackFactory tf = new NewFastMCTrackFactory(event, false);
         for (MCParticle part : event.getMCParticles()) {
-            if (abs(part.getPDGID()) != 310)
+        	// K0: 310, J/Psi: 443
+            if (abs(part.getPDGID()) != 443)
                 continue;
           Vertex unsmearedVertex = new Vertex();
           unsmearedVertex.setOrigin(origin);
@@ -36,28 +43,59 @@
           smearedVertex.setOrigin(origin);
           
           for (MCParticle daughter : part.getDaughters()) {
-              unsmearedVertex.addTrack(tf.getTrack(
+        	  Track unsmearedTrack = tf.getTrack(
                       new SpacePoint(daughter.getMomentum()),
                       new SpacePoint(daughter.getOrigin()),
                       referencePoint,
                       (int)daughter.getCharge(),
                       rand,
-                      false), 0);
-                   smearedVertex.addTrack(tf.getTrack(
+                      false);
+        	  SpacePoint unsmearedPosition = NewTrack.Parameters2Position(unsmearedTrack.getParameters());
+        	  SpacePoint unsmearedMomentum = NewTrack.Parameters2Momentum(unsmearedTrack.getParameters());
+              unsmearedVertex.addTrack(unsmearedTrack, 0);
+              aida.cloud1D("unsmeared_pt").fill(unsmearedTrack.getPt());
+              aida.cloud1D("unsmeared_diffx").fill(unsmearedPosition.x() - daughter.getOriginX());
+              aida.cloud1D("unsmeared_diffy").fill(unsmearedPosition.y() - daughter.getOriginY());
+              aida.cloud1D("unsmeared_diffz").fill(unsmearedPosition.z() - daughter.getOriginZ());
+              aida.cloud1D("unsmeared_diffpx").fill(unsmearedMomentum.x() - daughter.getPX());
+              aida.cloud1D("unsmeared_diffpy").fill(unsmearedMomentum.y() - daughter.getPY());
+              aida.cloud1D("unsmeared_diffpz").fill(unsmearedMomentum.z() - daughter.getPZ());
+              
+              Track smearedTrack = tf.getTrack(
                       new SpacePoint(daughter.getMomentum()),
                       new SpacePoint(daughter.getOrigin()),
                       referencePoint,
                       (int)daughter.getCharge(),
                       rand,
-                      true), 0);
-               }
+                      true);
+        	  SpacePoint smearedPosition = NewTrack.Parameters2Position(smearedTrack.getParameters());
+        	  SpacePoint smearedMomentum = NewTrack.Parameters2Momentum(smearedTrack.getParameters());              
+              smearedVertex.addTrack(smearedTrack, 0);
+              aida.cloud1D("smeared_pt").fill(smearedTrack.getPt());
+              aida.cloud1D("smeared_diffx").fill(smearedPosition.x() - daughter.getOriginX());
+              aida.cloud1D("smeared_diffy").fill(smearedPosition.y() - daughter.getOriginY());
+              aida.cloud1D("smeared_diffz").fill(smearedPosition.z() - daughter.getOriginZ());
+              aida.cloud1D("smeared_diffpx").fill(smearedMomentum.x() - daughter.getPX());
+              aida.cloud1D("smeared_diffpy").fill(smearedMomentum.y() - daughter.getPY());
+              aida.cloud1D("smeared_diffpz").fill(smearedMomentum.z() - daughter.getPZ());
+              aida.cloud1D("diff_d0").fill(unsmearedTrack.getParameters().getValues()[0]-smearedTrack.getParameters().getValues()[0]);
+              aida.cloud1D("diff_phi0").fill(unsmearedTrack.getParameters().getValues()[1]-smearedTrack.getParameters().getValues()[1]);
+              aida.cloud1D("diff_omega").fill(unsmearedTrack.getParameters().getValues()[2]-smearedTrack.getParameters().getValues()[2]);
+              aida.cloud1D("diff_z").fill(unsmearedTrack.getParameters().getValues()[3]-smearedTrack.getParameters().getValues()[3]);
+              aida.cloud1D("diff_tanLambda").fill(unsmearedTrack.getParameters().getValues()[4]-smearedTrack.getParameters().getValues()[4]);
+          }
           Fitter fitter = new Fitter(unsmearedVertex, 5.0);
           Vertex newVtx1 = fitter.fit();
-          aida.cloud1D("deltaX").fill(newVtx1.origin().x() - part.getOrigin().x());
-          aida.cloud1D("deltaY").fill(newVtx1.origin().y() - part.getOrigin().y());
-          aida.cloud1D("deltaZ").fill(newVtx1.origin().z() - part.getOrigin().z());
-
+          Fitter fitter2 = new Fitter(smearedVertex, 5.0);
+          Vertex newVtx2 = fitter2.fit();
+          aida.cloud1D("decayLength").fill(new SpacePoint(part.getEndPoint()).magnitude());
+          aida.cloud1D("unsmeared_deltaX").fill(newVtx1.origin().x() - part.getOrigin().x());
+          aida.cloud1D("unsmeared_deltaY").fill(newVtx1.origin().y() - part.getOrigin().y());
+          aida.cloud1D("unsmeared_deltaZ").fill(newVtx1.origin().z() - part.getOrigin().z());
+          aida.cloud1D("smeared_deltaX").fill(newVtx2.origin().x() - part.getOrigin().x());
+          aida.cloud1D("smeared_deltaY").fill(newVtx2.origin().y() - part.getOrigin().y());
+          aida.cloud1D("smeared_deltaZ").fill(newVtx2.origin().z() - part.getOrigin().z());
         }
     }
           
-}
\ No newline at end of file
+}

lcsim/src/org/lcsim/contrib/JanStrube/standalone
MainLoop.java 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- MainLoop.java	19 Aug 2006 20:03:16 -0000	1.2
+++ MainLoop.java	20 Aug 2006 05:56:56 -0000	1.3
@@ -22,14 +22,15 @@
    {
       LCSimLoop loop = new LCSimLoop();
 //      URL location = new URL("ftp://ftp-lcd.slac.stanford.edu/lcd/ILC/ILC500/Zgamma/stdhep/pythia/pythiaZgamma.stdhep");
-      URL location = new URL("ftp://ftp-lcd.slac.stanford.edu/lcd/ILC/singleParticle/stdhep/K0S_pipi_Theta45-135_5-25Gev.stdhep");
-
+//      URL location = new URL("ftp://ftp-lcd.slac.stanford.edu/lcd/ILC/singleParticle/stdhep/K0S_pipi_Theta45-135_5-25Gev.stdhep");
+      URL location = new URL("ftp://ftp-lcd.slac.stanford.edu/lcd/ILC/singleParticle/stdhep/psi_mumu_Theta4-176_5-100GeV.stdhep");
       FileCache cache = new FileCache();
       File trackFile = cache.getCachedFile(location);
       loop.setStdhepRecordSource(trackFile, "sidaug05");
 //      loop.setLCIORecordSource(input);
-//      loop.add(new MCFast(false, false));
-      loop.add(new FitterTestDriver());
+      loop.add(new MCFast(false, false));
+//      loop.add(new FitterTestDriver());
+      loop.add(new FitterTestDriver_ReconTrack());
 //      File output = new File("exampleAnalysisJava.slcio");
 //      loop.add(new LCIODriver(output));
       loop.loop(-1);

lcsim/src/org/lcsim/contrib/JanStrube/vtxFitter
Fitter.java 1.9 -> 1.10
diff -u -r1.9 -r1.10
--- Fitter.java	19 Aug 2006 20:08:03 -0000	1.9
+++ Fitter.java	20 Aug 2006 05:56:56 -0000	1.10
@@ -1,6 +1,6 @@
 package org.lcsim.contrib.JanStrube.vtxFitter;
 /**
- * @version $Id: Fitter.java,v 1.9 2006/08/19 20:08:03 jstrube Exp $
+ * @version $Id: Fitter.java,v 1.10 2006/08/20 05:56:56 jstrube Exp $
  */
 
 import static java.lang.Math.atan2;
@@ -77,10 +77,12 @@
 	    	particle._tracks.clear();
 	    	chi2_prev = 0;
 	    	for (Track t : unfittedParticle.getTracks()) {
-//	    		System.out.printf("filtering: chi2=%f\n", filter(t));
+	    		double chi2_track = filter(t);
+//	    		System.out.printf("filtering: chi2=%f\n", chi2_track);
 	    	}
 	    	for (Track t : particle.getTracks()) {
-//	    		System.out.printf("smoothing: %f\n", smoothe(t));
+	    		double chi2_track = smoothe(t);
+//	    		System.out.printf("smoothing: %f\n", chi2_track);
 	    	}
 	    }
 	    return particle;

lcsim/src/org/lcsim/contrib/JanStrube/vtxFitter
vertexing.lyx 1.7 -> 1.8
diff -u -r1.7 -r1.8
--- vertexing.lyx	15 Aug 2006 23:50:01 -0000	1.7
+++ vertexing.lyx	20 Aug 2006 05:56:56 -0000	1.8
@@ -650,5 +650,13 @@
  given above.
 \end_layout
 
+\begin_layout Section
+Kalman vertexing
+\end_layout
+
+\begin_layout Standard
+
+\end_layout
+
 \end_body
 \end_document
CVSspam 0.2.8