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;
|