Print

Print


Commit in lcsim/src/org/lcsim/util/swim on MAIN
JansLCIOTrackParameters.java+2-21.1 -> 1.2
JansHelixSwimmer.java+15-151.1 -> 1.2
+17-17
2 modified files
minor edits in preparation of merger

lcsim/src/org/lcsim/util/swim
JansLCIOTrackParameters.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- JansLCIOTrackParameters.java	16 Aug 2007 21:46:45 -0000	1.1
+++ JansLCIOTrackParameters.java	26 Aug 2007 08:24:42 -0000	1.2
@@ -1,5 +1,5 @@
 /**
- * @version $Id: JansLCIOTrackParameters.java,v 1.1 2007/08/16 21:46:45 jstrube Exp $
+ * @version $Id: JansLCIOTrackParameters.java,v 1.2 2007/08/26 08:24:42 jstrube Exp $
  */
 package org.lcsim.util.swim;
 
@@ -45,7 +45,7 @@
      * Computes the point of closest approach on the track to the given reference point.
      * Note that this function does not do any swimming. It merely returns a different representation of the given parameters.
      * This is meaningless without the reference point however.
-     * In order to prevent the user from having to kow the implementation details, the reference point is made an explicit parameter.  
+     * In order to prevent the user from having to know the implementation details, the reference point is made an explicit parameter.  
      * @param parameters The Parameter object
      * @param refPoint The reference point
      * @return The point of closest approach on the track to the reference point

lcsim/src/org/lcsim/util/swim
JansHelixSwimmer.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- JansHelixSwimmer.java	16 Aug 2007 21:46:45 -0000	1.1
+++ JansHelixSwimmer.java	26 Aug 2007 08:24:42 -0000	1.2
@@ -1,10 +1,13 @@
 package org.lcsim.util.swim;
 
+import org.lcsim.event.Track;
 import org.lcsim.recon.vertexing.zvtop4.VectorArithmetic;
 import org.lcsim.spacegeom.CartesianPoint;
+import org.lcsim.spacegeom.CartesianVector;
 import org.lcsim.spacegeom.SpacePoint;
 import org.lcsim.spacegeom.SpaceVector;
 
+import static java.lang.Math.atan;
 import static java.lang.Math.sin;
 import static java.lang.Math.cos;
 import static java.lang.Math.sqrt;
@@ -22,7 +25,7 @@
  * For more info on swimming see <a href="doc-files/transport.pdf">this paper</a> by Paul Avery.
  * 
  * @author jstrube
- * @version $Id: JansHelixSwimmer.java,v 1.1 2007/08/16 21:46:45 jstrube Exp $
+ * @version $Id: JansHelixSwimmer.java,v 1.2 2007/08/26 08:24:42 jstrube Exp $
  */
 public class JansHelixSwimmer {
     private double field;
@@ -60,20 +63,17 @@
         _charge = iq;
     }
 
-//    public void setTrack(Track t) {
-//        double r = 1 / t.getParameter(omega);
-//        double phi = t.getParameter(phi0);
-//        double lambda = Math.atan(t.getParameter(tanLambda));
-//
-//        SpacePoint ref = t.getReferencePoint();
-//        SpacePoint origin = t.getPosition();
-//        _trajectory = new Helix(origin, r, phi, lambda);
-//
-//        _charge = t.getCharge();
-//        double pt = r * _charge * field;
-//        _momentum = t.getMomentum();
-//    }
-
+    
+    public void setTrack(Track t) {
+      double pt = sqrt(t.getPX()*t.getPX() + t.getPY()*t.getPY());
+      JansLCIOTrackParameters parameters = new JansLCIOTrackParameters(t.getTrackParameters(), pt);
+
+      SpacePoint ref = new CartesianPoint(t.getReferencePoint());
+      SpacePoint origin = JansLCIOTrackParameters.Parameters2Position(parameters, ref);
+      _trajectory = new Helix(origin, 1/parameters.get(omega), parameters.get(phi0), atan(parameters.get(tanLambda)));
+      _momentum = JansLCIOTrackParameters.Parameters2Momentum(parameters);
+    }
+    
 
     public SpacePoint getPointAtLength(double alpha) {
         if (_trajectory == null) {
CVSspam 0.2.8