Print

Print


Author: [log in to unmask]
Date: Fri Sep 11 17:14:31 2015
New Revision: 3594

Log:
use TrackState for helper function.

Modified:
    java/trunk/tracking/src/main/java/org/hps/recon/tracking/TrackUtils.java

Modified: java/trunk/tracking/src/main/java/org/hps/recon/tracking/TrackUtils.java
 =============================================================================
--- java/trunk/tracking/src/main/java/org/hps/recon/tracking/TrackUtils.java	(original)
+++ java/trunk/tracking/src/main/java/org/hps/recon/tracking/TrackUtils.java	Fri Sep 11 17:14:31 2015
@@ -100,45 +100,88 @@
 
     // ==========================================================================
     // Helper functions for track parameters and commonly used derived variables
+    
+    // first set are there for backwards comp.
+    
     public static double getPhi(Track track, Hep3Vector position) {
+        return getPhi(track.getTrackStates().get(0), position);
+    }
+
+    public static double getX0(Track track) {
+        return getX0(track.getTrackStates().get(0));
+    }
+
+    public static double getR(Track track) {
+        return getR(track.getTrackStates().get(0));
+    }
+
+    public static double getY0(Track track) {
+        return getY0(track.getTrackStates().get(0));
+    }
+
+    public static double getDoca(Track track) {
+        return getDoca(track.getTrackStates().get(0));
+    }
+
+    public static double getPhi0(Track track) {
+        return getPhi0(track.getTrackStates().get(0));
+    }
+
+    public static double getZ0(Track track) {
+        return getZ0(track.getTrackStates().get(0));
+    }
+
+    public static double getTanLambda(Track track) {
+        return getTanLambda(track.getTrackStates().get(0));
+    }
+
+    public static double getSinTheta(Track track) {
+        return 1 / Math.sqrt(1 + Math.pow(getTanLambda(track), 2));
+    }
+
+    public static double getCosTheta(Track track) {
+        return getTanLambda(track) / Math.sqrt(1 + Math.pow(getTanLambda(track), 2));
+    }
+    
+    public static double getPhi(TrackState track, Hep3Vector position) {
         double x = Math.sin(getPhi0(track)) - (1 / getR(track)) * (position.x() - getX0(track));
         double y = Math.cos(getPhi0(track)) + (1 / getR(track)) * (position.y() - getY0(track));
         return Math.atan2(x, y);
     }
-
-    public static double getX0(Track track) {
+    
+    public static double getX0(TrackState track) {
         return -1 * getDoca(track) * Math.sin(getPhi0(track));
     }
 
-    public static double getR(Track track) {
-        return 1.0 / track.getTrackStates().get(0).getOmega();
-    }
-
-    public static double getY0(Track track) {
+    public static double getR(TrackState track) {
+        return 1.0 / track.getOmega();
+    }
+
+    public static double getY0(TrackState track) {
         return getDoca(track) * Math.cos(getPhi0(track));
     }
 
-    public static double getDoca(Track track) {
-        return track.getTrackStates().get(0).getD0();
-    }
-
-    public static double getPhi0(Track track) {
-        return track.getTrackStates().get(0).getPhi();
-    }
-
-    public static double getZ0(Track track) {
-        return track.getTrackStates().get(0).getZ0();
-    }
-
-    public static double getTanLambda(Track track) {
-        return track.getTrackStates().get(0).getTanLambda();
-    }
-
-    public static double getSinTheta(Track track) {
+    public static double getDoca(TrackState track) {
+        return track.getD0();
+    }
+
+    public static double getPhi0(TrackState track) {
+        return track.getPhi();
+    }
+
+    public static double getZ0(TrackState track) {
+        return track.getZ0();
+    }
+
+    public static double getTanLambda(TrackState track) {
+        return track.getTanLambda();
+    }
+
+    public static double getSinTheta(TrackState track) {
         return 1 / Math.sqrt(1 + Math.pow(getTanLambda(track), 2));
     }
 
-    public static double getCosTheta(Track track) {
+    public static double getCosTheta(TrackState track) {
         return getTanLambda(track) / Math.sqrt(1 + Math.pow(getTanLambda(track), 2));
     }
 
@@ -235,16 +278,24 @@
     }
 
     /**
+     * Extrapolate track to given position. For backwards compatibility.
+     *
+     * @param track - to be extrapolated
+     * @param z
+     * @return
+     */
+    public static Hep3Vector extrapolateTrack(Track track, double z) {
+        return extrapolateTrack(track.getTrackStates().get(0),z);
+    }
+    
+    /**
      * Extrapolate track to given position.
      *
-     * @param helix - to be extrapolated
+     * @param track - to be extrapolated
      * @param z
-     * @param useMap
-     * @param track - position along the x-axis of the helix in lcsim
-     * coordiantes
      * @return
      */
-    public static Hep3Vector extrapolateTrack(Track track, double z) {
+    public static Hep3Vector extrapolateTrack(TrackState track, double z) {
 
         Hep3Vector trackPosition;
         double dz;