Commit in lcsim/src/org/lcsim/recon/tracking/seedtracker on MAIN
SeedTrackerTrackStateDriver.java+7-51.2 -> 1.3
commit Rich's fix for momentum at end and ecal states.

lcsim/src/org/lcsim/recon/tracking/seedtracker
SeedTrackerTrackStateDriver.java 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- SeedTrackerTrackStateDriver.java	18 May 2010 20:37:49 -0000	1.2
+++ SeedTrackerTrackStateDriver.java	26 May 2010 15:10:25 -0000	1.3
@@ -1,8 +1,10 @@
-// $Id: SeedTrackerTrackStateDriver.java,v 1.2 2010/05/18 20:37:49 jeremy Exp $
+// $Id: SeedTrackerTrackStateDriver.java,v 1.3 2010/05/26 15:10:25 ngraf Exp $
 package org.lcsim.recon.tracking.seedtracker;
 
+import hep.physics.vec.BasicHep3Vector;
 import hep.physics.vec.Hep3Vector;
 
+import hep.physics.vec.VecOp;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -44,6 +46,7 @@
             SeedTrack strk = (SeedTrack) track;
             SeedCandidate scand = strk.getSeedCandidate();
             HelicalTrackFit helix = scand.getHelix();
+            Hep3Vector ptrk = new BasicHep3Vector(strk.getMomentum());
             double smax = -9999.;
             HelicalTrackHit last = null;
             for (HelicalTrackHit hit : scand.getHits())
@@ -71,16 +74,15 @@
             }
             
             // Set both the End and ECal TrackStates from the outermost hit on the track.
-            double[] xpos = pos.v();            
-            double[] xmomentum = dir.v();            
+            double[] xpos = pos.v();
+            double[] xmomentum = VecOp.mult(ptrk.magnitude(), dir).v();
             TrackState ecalState = new TrackState(xpos[0], xpos[1], xpos[2], xmomentum[0], xmomentum[1], xmomentum[2]);
             ecalObjs.add(ecalState);            
             TrackState endState = new TrackState(xpos[0], xpos[1], xpos[2], xmomentum[0], xmomentum[1], xmomentum[2]);
             endObjs.add(endState);
             
             // Calculate the Start state and add to list.
-            TrackDirection startDir = HelixUtils.CalculateTrackDirection(helix, 0.);
-            double[] smom = startDir.Direction().v();
+            double[] smom = ptrk.v();
             double[] spos = HelixUtils.PointOnHelix(helix, 0.).v();
             TrackState startState = new TrackState(spos[0], spos[1], spos[2], smom[0], smom[1], smom[2]);
             startObjs.add(startState);             
CVSspam 0.2.8