2 removed + 11 modified, total 13 files
lcsim/src/org/lcsim/recon/vertexing/zvtop4
diff -u -r1.20 -r1.20.2.1
--- ZvFitter.java 23 Oct 2006 19:42:27 -0000 1.20
+++ ZvFitter.java 5 Sep 2007 17:50:33 -0000 1.20.2.1
@@ -14,6 +14,12 @@
import java.util.Set;
import org.lcsim.event.Track;
+import static org.lcsim.event.Track.ParameterName.d0;
+import static org.lcsim.event.Track.ParameterName.omega;
+import static org.lcsim.event.Track.ParameterName.tanLambda;
+import static org.lcsim.event.Track.ParameterName.z0;
+import static org.lcsim.event.Track.ParameterName.phi0;
+
import org.lcsim.geometry.Detector;
import org.lcsim.spacegeom.CartesianPoint;
import org.lcsim.spacegeom.SpacePoint;
@@ -25,7 +31,7 @@
* Fitter class based on a least squares method
*
* @author W.Walkowiak, 09/18/00
- * @version $Id: ZvFitter.java,v 1.20 2006/10/23 19:42:27 tonyj Exp $
+ * @version $Id: ZvFitter.java,v 1.20.2.1 2007/09/05 17:50:33 jstrube Exp $
*/
/* TODO static members only
@@ -213,10 +219,10 @@
// TODO trackParameters !
// TODO What the heck are those deleted for ???
// --> see later: Error Matrix
- trackParameters[i] = new Track.Parameters(track.getTrackParameters());
- trackParameters[i].phi0 = 0.;
- trackParameters[i].omega = 0.;
- trackParameters[i].s = 0.;
+ trackParameters[i] = new Track.Parameters(track.getTrackParameters(), Math.sqrt(track.getPX()*track.getPX()+track.getPY()*track.getPY()));
+ trackParameters[i].set(phi0,0.);
+ trackParameters[i].set(omega, 0.);
+ trackParameters[i].set(tanLambda, 0);
// FIXME SpacePoint cast
tDee[i] = new CartesianPoint(track.getReferencePoint());
@@ -256,7 +262,7 @@
tA0[i][0] = trackParameters[i].get(Track.ParameterName.phi0);
// FIXME this used to be kappa...
tA0[i][1] = trackParameters[i].get(Track.ParameterName.omega);
- tA0[i][2] = trackParameters[i].get(Track.ParameterName.s);
+ tA0[i][2] = trackParameters[i].get(Track.ParameterName.tanLambda);
tA0[i][3] = dot(vDel, tKsi[i]);
tA0[i][4] = dot(vDel, tEta[i]);
}
lcsim/src/org/lcsim/recon/vertexing/zvtop4
diff -u -r1.17 -r1.17.2.1
--- ZvUtil.java 28 Jun 2006 01:54:49 -0000 1.17
+++ ZvUtil.java 5 Sep 2007 17:50:33 -0000 1.17.2.1
@@ -26,7 +26,7 @@
/**
* Repository of utility functions
* @author jstrube
- * @version $Id: ZvUtil.java,v 1.17 2006/06/28 01:54:49 jstrube Exp $
+ * @version $Id: ZvUtil.java,v 1.17.2.1 2007/09/05 17:50:33 jstrube Exp $
*/
final class ZvUtil {
@@ -148,7 +148,7 @@
*/
public static Hep3Vector getUnitTangent(double[] hlxPar)
{
- int tanLambda = Track.ParameterName.s.ordinal();
+ int tanLambda = Track.ParameterName.tanLambda.ordinal();
int phi = Track.ParameterName.phi0.ordinal();
double norm = Math.sqrt(1.+hlxPar[tanLambda]*hlxPar[tanLambda]);
double x = Math.cos(hlxPar[phi])/norm;
@@ -157,8 +157,4 @@
return new BasicHep3Vector(x, y, z);
}
- public static Track.Parameters convert2TrackParameters (ZvParameters params) {
- Track.Parameters result = new Track.Parameters();
- return result;
- }
}
lcsim/src/org/lcsim/recon/vertexing/zvtop4
diff -u -r1.6 -r1.6.2.1
--- ZvParameters.java 31 Jan 2006 23:34:34 -0000 1.6
+++ ZvParameters.java 5 Sep 2007 17:50:34 -0000 1.6.2.1
@@ -1,11 +1,9 @@
package org.lcsim.recon.vertexing.zvtop4;
-import org.lcsim.event.Track.Parameters;
-
/**
* Parameters names differ slightly from TrackParameters
* @author jstrube
- * @version $Id: ZvParameters.java,v 1.6 2006/01/31 23:34:34 jstrube Exp $
+ * @version $Id: ZvParameters.java,v 1.6.2.1 2007/09/05 17:50:34 jstrube Exp $
*/
class ZvParameters {
public double phi;
lcsim/src/org/lcsim/util/swim
diff -u -r1.18 -r1.18.2.1
--- HelixSwimmer.java 31 Jul 2006 18:37:50 -0000 1.18
+++ HelixSwimmer.java 5 Sep 2007 17:50:35 -0000 1.18.2.1
@@ -1,137 +1,207 @@
package org.lcsim.util.swim;
-import hep.physics.vec.BasicHep3Vector;
import hep.physics.vec.Hep3Vector;
-import org.lcsim.constants.Constants;
+
import org.lcsim.event.Track;
+import org.lcsim.event.Track.Parameters;
+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.abs;
-import static java.lang.Math.signum;
+import static java.lang.Math.atan;
+import static java.lang.Math.sin;
+import static java.lang.Math.cos;
+import static java.lang.Math.sqrt;
+import static org.lcsim.constants.Constants.fieldConversion;
+import static org.lcsim.event.Track.ParameterName.d0;
+import static org.lcsim.event.Track.ParameterName.phi0;
+import static org.lcsim.event.Track.ParameterName.omega;
+import static org.lcsim.event.Track.ParameterName.z0;
+import static org.lcsim.event.Track.ParameterName.tanLambda;
/**
- * A simple helix smimmer for use in org.lcsim. Uses standard lcsim units
- * Tesla, mm, GeV. This swimmer works for charged and neutral tracks.
- * <p>
+ * A simple helix swimmer for use in org.lcsim. Uses standard lcsim units Tesla,
+ * mm, GeV. This swimmer works for charged and neutral tracks.
+ * <p>
* For more info on swimming see <a href="doc-files/transport.pdf">this paper</a>
* by Paul Avery.
- * @author tonyj
- * @version $Id: HelixSwimmer.java,v 1.18 2006/07/31 18:37:50 sinev Exp $
+ *
+ * @author jstrube
+ * @version $Id: HelixSwimmer.java,v 1.18.2.1 2007/09/05 17:50:35 jstrube Exp $
*/
-public class HelixSwimmer
-{
- public class SpatialParameters
- {
- public double px;
- public double py;
- public double pz;
- public int charge;
- public boolean isInvalid = true;
- }
- private double field;
- private Trajectory trajectory;
- private SpatialParameters spatialParms;
- private Track track;
- /** Creates a new instance of HelixSwimmer
- * @param B field strength in Tesla; uniform, solenoidal, directed along z-axis
- */
- public HelixSwimmer(double B)
- {
- field = B*Constants.fieldConversion;
- spatialParms = new SpatialParameters();
- }
- /**
- * Sets parameters for helix swimmmer.
- *
- * @param p 3-momentum (px,py,pz)
- * @param r0 initial position(x0,y0,z0)
- * @param iq charge iq = q/|e| = +1/0/-1
- */
- public void setTrack(Hep3Vector p, Hep3Vector r0, int iq)
- {
- double temp = p.x()*p.x()+p.y()*p.y();
- double pmom = Math.sqrt(temp + p.z()*p.z());
- double sin_lambda = p.z()/pmom;
- double phi = Math.atan2(p.y(),p.x());
- double lambda = Math.asin(sin_lambda);
-
- if (iq != 0 && field != 0)
- {
- double pt = Math.sqrt(temp);
- double radius = pt/(iq*field);
- trajectory = new Helix(r0,radius,phi,lambda);
- }
- else
- {
- trajectory = new Line(r0, phi, lambda);
- }
- spatialParms.isInvalid = true;
- }
-
- public void setTrack(Track t)
- {
- double omega = t.getTrackParameter(2);
- double z0 = t.getTrackParameter(3);
- double phi0 = t.getTrackParameter(1);
- double lambda = Math.atan(t.getTrackParameter(4));
- double d0 = t.getTrackParameter(0);
- double[] ref = t.getReferencePoint();
- // origin of the circle that is the x-y projection of the helix
- Hep3Vector origin = new BasicHep3Vector( ref[0] -d0 * Math.sin(phi0), ref[1] + d0 * Math.cos(phi0), ref[2] + z0);
- trajectory = new Helix(origin,1/omega,phi0,lambda);
- spatialParms.isInvalid = true;
- track=t;
- }
- public SpacePoint getPointAtDistance(double alpha)
- {
- if (trajectory == null) throw new RuntimeException("Trajectory not set");
- return trajectory.getPointAtDistance(alpha);
- }
- public double getDistanceToRadius(double r)
- {
- if (trajectory == null) throw new RuntimeException("Trajectory not set");
- return trajectory.getDistanceToInfiniteCylinder(r);
- }
- public double getDistanceToZ(double z)
- {
- if (trajectory == null) throw new RuntimeException("Trajectory not set");
- double result = trajectory.getDistanceToZPlane(z);
- if (result<0) result = trajectory.getDistanceToZPlane(-z);
- return result;
- }
- public double getDistanceToCylinder(double r,double z)
- {
- double x1 = getDistanceToRadius(r);
- double x2 = getDistanceToZ(z);
- return Double.isNaN(x1) ? x2 : Math.min(x1,x2);
- }
-
- /**
- * Returns the distance along the trajectory to get to the point of closest approach
- * @param point The point to swim as close as possible to
- * @return the length parameter by how much the trajectory has to be swum
- */
- public double getDistanceToPoint(Hep3Vector point) {
- return trajectory.getDistanceToPoint(point);
- }
-
- /**
- * Calculates px, py, pz, iq from the Track Parameters and the B field.
- * @return a Parameter object with the new parameters
- */
- // This unfortunately has to go here, because the Track parameters can't be used to get the momentum.
- // The B field is needed in addition.
- public SpatialParameters getSpatialParameters() {
- if (spatialParms.isInvalid) {
- double omega = track.getTrackParameter(2);
- double Pt = abs((1./omega) * field);
- spatialParms.px = Pt * Math.cos(track.getTrackParameter(1));
- spatialParms.py = Pt * Math.sin(track.getTrackParameter(1));
- spatialParms.pz = Pt * track.getTrackParameter(4);
- spatialParms.charge = (int) signum(omega);
- }
- return spatialParms;
- }
+public class HelixSwimmer {
+ private double field;
+ private Trajectory _trajectory;
+ private SpaceVector _momentum;
+ private double _charge;
+
+ /**
+ * Creates a new instance of HelixSwimmer
+ *
+ * @param B
+ * field strength in Tesla; uniform, solenoidal, directed
+ * along z-axis
+ */
+ public HelixSwimmer(double B) {
+ field = B * fieldConversion;
+ }
+
+ /**
+ * Sets parameters for helix swimmmer.
+ *
+ * @param p
+ * 3-momentum (px,py,pz)
+ * @param r0
+ * initial position(x0,y0,z0)
+ * @param iq
+ * charge iq = q/|e| = +1/0/-1
+ */
+ public void setTrack(SpaceVector p, SpacePoint r0, int iq) {
+ double phi = Math.atan2(p.y(), p.x());
+ double lambda = Math.atan2(p.z(), p.rxy());
+
+ if (iq != 0 && field != 0) {
+ double radius = p.rxy() / (iq * field);
+ _trajectory = new Helix(r0, radius, phi, lambda);
+ } else {
+ _trajectory = new Line(r0, phi, lambda);
+ }
+ _momentum = p;
+ _charge = iq;
+ }
+
+ /**
+ * Sets parameters for helix swimmmer.
+ *
+ * @param p
+ * 3-momentum (px,py,pz)
+ * @param r0
+ * initial position(x0,y0,z0)
+ * @param iq
+ * charge iq = q/|e| = +1/0/-1
+ * @deprecated in favor of
+ * {@link setTrack(SpaceVector p, SpacePoint r0, int iq)}
+ * because this method has an ambiguous signature
+ */
+ @Deprecated
+ public void setTrack(Hep3Vector p, Hep3Vector r0, int iq) {
+ double pt = sqrt(p.x() * p.x() + p.y() * p.y());
+ double phi = Math.atan2(p.y(), p.x());
+ double lambda = Math.atan2(p.z(), pt);
+
+ if (iq != 0 && field != 0) {
+ double radius = pt / (iq * field);
+ _trajectory = new Helix(r0, radius, phi, lambda);
+ } else {
+ _trajectory = new Line(r0, phi, lambda);
+ }
+ _momentum = new CartesianVector(p.v());
+ _charge = iq;
+ }
+
+ /**
+ * Sets the parameters for the helix swimmer. Uses the LCIOParameters class
+ * for conversion between track parameters and space and momentum
+ * representation
+ *
+ * @param t
+ * The track to approximate with a helix
+ */
+ public void setTrack(Track t) {
+ double pt = sqrt(t.getPX() * t.getPX() + t.getPY() * t.getPY());
+ Parameters parameters = new Parameters(t.getTrackParameters(), pt);
+
+ SpacePoint ref = new CartesianPoint(t.getReferencePoint());
+ SpacePoint origin = Parameters.Parameters2Position(parameters, ref);
+ _trajectory = new Helix(origin, 1 / parameters.get(omega), parameters
+ .get(phi0), atan(parameters.get(tanLambda)));
+ _momentum = Parameters.Parameters2Momentum(parameters);
+ }
+
+ /**
+ *
+ * @param alpha
+ * @return a {@link SpacePoint} at the length alpha from the origin along
+ * the track
+ * @deprecated in favor of {@link getPointAtLength}
+ */
+ @Deprecated
+ public SpacePoint getPointAtDistance(double alpha) {
+ return getPointAtLength(alpha);
+ }
+
+ /**
+ * Returns a SpacePoint at the length alpha from the origin along the track
+ *
+ * @param alpha
+ * @return a {@link SpacePoint} at the length alpha from the origin along
+ * the track
+ */
+ public SpacePoint getPointAtLength(double alpha) {
+ if (_trajectory == null) {
+ throw new RuntimeException("Trajectory not set");
+ }
+ return _trajectory.getPointAtDistance(alpha);
+ }
+
+ public double getDistanceToRadius(double r) {
+ if (_trajectory == null) {
+ throw new RuntimeException("Trajectory not set");
+ }
+ return _trajectory.getDistanceToInfiniteCylinder(r);
+ }
+
+ public double getDistanceToZ(double z) {
+ if (_trajectory == null) {
+ throw new RuntimeException("Trajectory not set");
+ }
+ double result = _trajectory.getDistanceToZPlane(z);
+ if (result < 0) {
+ result = _trajectory.getDistanceToZPlane(-z);
+ }
+ return result;
+ }
+
+ public double getDistanceToCylinder(double r, double z) {
+ double x1 = getDistanceToRadius(r);
+ double x2 = getDistanceToZ(z);
+ return Double.isNaN(x1) ? x2 : Math.min(x1, x2);
+ }
+
+ /**
+ * Returns the distance along the trajectory to get to the point of closest
+ * approach
+ *
+ * @param point
+ * The point to swim as close as possible to
+ * @return the length parameter by how much the trajectory has to be swum
+ */
+ public double getTrackLengthToPoint(Hep3Vector point) {
+ return _trajectory.getDistanceToPoint(point);
+ }
+
+ public double getDistanceToPoint(Hep3Vector point) {
+ return getTrackLengthToPoint(point);
+ }
+ /**
+ * Returns the momentum on a point on the track at a distance from the
+ * origin
+ *
+ * @param alpha
+ * The 2D distance from the origin along the track
+ * @return The components of the momentum in a SpacePoint
+ */
+ public SpaceVector getMomentumAtLength(double alpha) {
+ // the trajectory can only return the unit direction of the momentum
+ SpaceVector unitDirection = _trajectory.getUnitTangentAtLength(alpha);
+ double magnitude = _momentum.rxy();
+ // System.out.println("HelixSwimmer: momentum.magnitude= "+magnitude);
+ return VectorArithmetic.multiply(unitDirection, magnitude);
+ }
- public Trajectory getTrajectory() { return trajectory; }
+ public Trajectory getTrajectory() {
+ return _trajectory;
+ }
}
lcsim/src/org/lcsim/util/swim
diff -N JansLCIOTrackParameters.java
--- JansLCIOTrackParameters.java 26 Aug 2007 08:24:42 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,140 +0,0 @@
-/**
- * @version $Id: JansLCIOTrackParameters.java,v 1.2 2007/08/26 08:24:42 jstrube Exp $
- */
-package org.lcsim.util.swim;
-
-import static java.lang.Math.atan2;
-import static java.lang.Math.cos;
-import static java.lang.Math.sin;
-import static java.lang.Math.sqrt;
-import static org.lcsim.constants.Constants.fieldConversion;
-
-import org.lcsim.spacegeom.CartesianPoint;
-import org.lcsim.spacegeom.CartesianVector;
-import org.lcsim.spacegeom.SpacePoint;
-import org.lcsim.spacegeom.SpaceVector;
-
-import static org.lcsim.util.swim.JansLCIOTrackParameters.ParameterName.d0;
-import static org.lcsim.util.swim.JansLCIOTrackParameters.ParameterName.phi0;
-import static org.lcsim.util.swim.JansLCIOTrackParameters.ParameterName.omega;
-import static org.lcsim.util.swim.JansLCIOTrackParameters.ParameterName.z0;
-import static org.lcsim.util.swim.JansLCIOTrackParameters.ParameterName.tanLambda;
-
-
-public class JansLCIOTrackParameters {
-
- public enum ParameterName {
- d0, phi0, omega, z0, tanLambda
- }
-
- /**
- * Computes the momentum vector from a given parameter set
- * @param parameters The Parameter object
- * @return The momentum vector corresponding to the given parameters
- */
- public static SpaceVector Parameters2Momentum(JansLCIOTrackParameters parameters) {
- double pt = parameters.pt;
-
- return new CartesianVector(
- pt * cos(parameters.get(phi0))
- , pt * sin(parameters.get(phi0))
- , pt * parameters.get(tanLambda)
- );
- }
- /**
- * 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 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
- */
- public static SpacePoint Parameters2Position(JansLCIOTrackParameters parameters, SpacePoint refPoint) {
- double d_0 = parameters.get(d0);
- double z_0 = parameters.get(z0);
- double phi_0 = parameters.get(phi0);
-
- double x = refPoint.x() - d_0*sin(phi_0);
- double y = refPoint.y() + d_0*cos(phi_0);
- double z = refPoint.z() + z_0;
-
- return new CartesianPoint(x, y, z);
- }
- /**
- * Calculates the parameters of the Track under the assumption that the
- * space-momentum representation is given at the POCA to the reference point.
- * @param pos The point of closest approach on the track to the reference point
- * @param mom The momentum vector at @see pos
- * @param ref The reference point
- * @param charge The charge of the particle
- * @param Bz The z component of the magnetic field. Assuming a homogeneous field parallel to z
- * @return The Parameter object corresponding to the arguments
- */
- public static JansLCIOTrackParameters SpaceMomentum2Parameters(SpacePoint pos, SpaceVector mom, SpacePoint ref, int charge, double field_z) {
- JansLCIOTrackParameters result = new JansLCIOTrackParameters();
- double aqBz = charge*field_z*fieldConversion;
- double x = pos.x() - ref.x();
- double y = pos.y() - ref.y();
- double z_0 = pos.z() - ref.z();
- double phi_0 = mom.phi();
- double pt = mom.rxy();
-
- result.set(d0, -x*sin(phi_0)+ y*cos(phi_0));
- result.set(phi0, phi_0);
- result.set(omega, aqBz/pt);
- result.set(z0, z_0);
- result.set(tanLambda, mom.z()/pt);
- result.setPt(pt);
- return result;
- }
-
- double[] values;
- double pt;
-
- public JansLCIOTrackParameters(JansLCIOTrackParameters parameters) {
- values = parameters.values.clone();
- pt = parameters.pt;
- }
-
- JansLCIOTrackParameters() {
- values = new double[5];
- pt = 0;
- }
-
- public JansLCIOTrackParameters(double[] vals, double p_t) {
- values = vals;
- pt = p_t;
- }
-
- double get(ParameterName name) {
- return values[name.ordinal()];
- }
-
- public double getPt() {
- return pt;
- }
-
- public double[] getValues() {
- return values;
- }
-
- void set(ParameterName name, double val) {
- values[name.ordinal()] = val;
- }
-
-
- void setPt(double p_t) {
- pt = p_t;
- }
-
- public String toString() {
- StringBuilder sb = new StringBuilder();
- sb.append(String.format("Parameters:\n"));
- for (ParameterName p : ParameterName.values()) {
- sb.append(String.format("%10s: %g\n", p.name(), values[p.ordinal()]));
- }
- sb.append(String.format("%10s: %g\n", "pt", pt));
- return sb.toString();
- }
-}
lcsim/src/org/lcsim/util/swim
diff -N JansHelixSwimmer.java
--- JansHelixSwimmer.java 26 Aug 2007 08:24:42 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,137 +0,0 @@
-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;
-import static org.lcsim.constants.Constants.fieldConversion;
-import static org.lcsim.util.swim.JansLCIOTrackParameters.ParameterName.d0;
-import static org.lcsim.util.swim.JansLCIOTrackParameters.ParameterName.phi0;
-import static org.lcsim.util.swim.JansLCIOTrackParameters.ParameterName.omega;
-import static org.lcsim.util.swim.JansLCIOTrackParameters.ParameterName.z0;
-import static org.lcsim.util.swim.JansLCIOTrackParameters.ParameterName.tanLambda;
-
-/**
- * A simple helix swimmer for use in org.lcsim. Uses standard lcsim units Tesla, mm, GeV. This swimmer works for charged
- * and neutral tracks.
- * <p>
- * 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.2 2007/08/26 08:24:42 jstrube Exp $
- */
-public class JansHelixSwimmer {
- private double field;
- private Trajectory _trajectory;
- private SpaceVector _momentum;
- private double _charge;
-
- /**
- * Creates a new instance of HelixSwimmer
- *
- * @param B field strength in Tesla; uniform, solenoidal, directed along z-axis
- */
- public JansHelixSwimmer(double B) {
- field = B * fieldConversion;
- }
-
- /**
- * Sets parameters for helix swimmmer.
- *
- * @param p 3-momentum (px,py,pz)
- * @param r0 initial position(x0,y0,z0)
- * @param iq charge iq = q/|e| = +1/0/-1
- */
- public void setTrack(SpaceVector p, SpacePoint r0, int iq) {
- double phi = Math.atan2(p.y(), p.x());
- double lambda = Math.atan2(p.z(), p.rxy());
-
- if (iq != 0 && field != 0) {
- double radius = p.rxy() / (iq * field);
- _trajectory = new Helix(r0, radius, phi, lambda);
- } else {
- _trajectory = new Line(r0, phi, lambda);
- }
- _momentum = p;
- _charge = iq;
- }
-
-
- 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) {
- throw new RuntimeException("Trajectory not set");
- }
- return _trajectory.getPointAtDistance(alpha);
- }
-
- public double getDistanceToRadius(double r) {
- if (_trajectory == null) {
- throw new RuntimeException("Trajectory not set");
- }
- return _trajectory.getDistanceToInfiniteCylinder(r);
- }
-
- public double getDistanceToZ(double z) {
- if (_trajectory == null) {
- throw new RuntimeException("Trajectory not set");
- }
- double result = _trajectory.getDistanceToZPlane(z);
- if (result < 0) {
- result = _trajectory.getDistanceToZPlane( -z);
- }
- return result;
- }
-
- public double getDistanceToCylinder(double r, double z) {
- double x1 = getDistanceToRadius(r);
- double x2 = getDistanceToZ(z);
- return Double.isNaN(x1) ? x2 : Math.min(x1, x2);
- }
-
- /**
- * Returns the distance along the trajectory to get to the point of closest approach
- *
- * @param point The point to swim as close as possible to
- * @return the length parameter by how much the trajectory has to be swum
- */
- public double getTrackLengthToPoint(SpacePoint point) {
- return _trajectory.getDistanceToPoint(point);
- }
-
-
- /**
- * Returns the momentum on a point on the track at a distance from the origin
- *
- * @param alpha The 2D distance from the origin along the track
- * @return The components of the momentum in a SpacePoint
- */
- public SpaceVector getMomentumAtLength(double alpha) {
- // the trajectory can only return the unit direction of the momentum
- SpaceVector unitDirection = _trajectory.getUnitTangentAtLength(alpha);
- double magnitude = _momentum.rxy();
- // System.out.println("HelixSwimmer: momentum.magnitude= "+magnitude);
- return VectorArithmetic.multiply(unitDirection, magnitude);
- }
-
- public Trajectory getTrajectory() {
- return _trajectory;
- }
-}
lcsim/src/org/lcsim/event
diff -u -r1.9 -r1.9.2.1
--- Track.java 16 Aug 2007 23:22:00 -0000 1.9
+++ Track.java 5 Sep 2007 17:50:35 -0000 1.9.2.1
@@ -1,132 +1,279 @@
package org.lcsim.event;
+import static java.lang.Math.cos;
+import static java.lang.Math.sin;
+import static org.lcsim.constants.Constants.fieldConversion;
+import static org.lcsim.event.Track.ParameterName.d0;
+import static org.lcsim.event.Track.ParameterName.omega;
+import static org.lcsim.event.Track.ParameterName.phi0;
+import static org.lcsim.event.Track.ParameterName.tanLambda;
+import static org.lcsim.event.Track.ParameterName.z0;
import hep.physics.matrix.SymmetricMatrix;
import java.util.List;
+import org.lcsim.spacegeom.CartesianPoint;
+import org.lcsim.spacegeom.CartesianVector;
+import org.lcsim.spacegeom.SpacePoint;
+import org.lcsim.spacegeom.SpaceVector;
+
/**
* Represents a found (reconstructed) track
+ *
* @author tonyj
- * @version $Id: Track.java,v 1.9 2007/08/16 23:22:00 jeremy Exp $
+ * @version $Id: Track.java,v 1.9.2.1 2007/09/05 17:50:35 jstrube Exp $
*/
-public interface Track
-{
- enum ParameterName {
- d0, phi0, omega, z0, s
+public interface Track {
+ public enum ParameterName {
+ d0, phi0, omega, z0, tanLambda
}
- class Parameters {
- public double d0;
- public double phi0;
- public double omega;
- public double z0;
- public double s;
- public Parameters() {
- d0 = phi0 = omega = z0 = s = 0;
- }
-
- public Parameters(double[] p) {
- d0 = p[0];
- phi0 = p[1];
- omega = p[2];
- z0 = p[3];
- s = p[4];
- }
-
- // the logical way to do this is EnumMap
- // but that needs Double
+
+
+ public class Parameters {
+ /**
+ * Computes the momentum vector from a given parameter set
+ *
+ * @param parameters
+ * The Parameter object
+ * @return The momentum vector corresponding to the given parameters
+ */
+ public static SpaceVector Parameters2Momentum(Parameters parameters) {
+ double pt = parameters.pt;
+
+ return new CartesianVector(pt * cos(parameters.get(phi0)), pt
+ * sin(parameters.get(phi0)), pt * parameters.get(tanLambda));
+ }
+
+ /**
+ * 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 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
+ */
+ public static SpacePoint Parameters2Position(Parameters parameters,
+ SpacePoint refPoint) {
+ double d_0 = parameters.get(d0);
+ double z_0 = parameters.get(z0);
+ double phi_0 = parameters.get(phi0);
+
+ double x = refPoint.x() - d_0 * sin(phi_0);
+ double y = refPoint.y() + d_0 * cos(phi_0);
+ double z = refPoint.z() + z_0;
+
+ return new CartesianPoint(x, y, z);
+ }
+
+ /**
+ * Calculates the parameters of the Track under the assumption that the
+ * space-momentum representation is given at the POCA to the reference
+ * point.
+ *
+ * @param pos
+ * The point of closest approach on the track to the
+ * reference point
+ * @param mom
+ * The momentum vector at
+ * @see pos
+ * @param ref
+ * The reference point
+ * @param charge
+ * The charge of the particle
+ * @param Bz
+ * The z component of the magnetic field. Assuming a
+ * homogeneous field parallel to z
+ * @return The Parameter object corresponding to the arguments
+ */
+ public static Parameters SpaceMomentum2Parameters(SpacePoint pos,
+ SpaceVector mom, SpacePoint ref, int charge, double field_z) {
+ Parameters result = new Parameters();
+ double aqBz = charge * field_z * fieldConversion;
+ double x = pos.x() - ref.x();
+ double y = pos.y() - ref.y();
+ double z_0 = pos.z() - ref.z();
+ double phi_0 = mom.phi();
+ double pt = mom.rxy();
+
+ result.set(d0, -x * sin(phi_0) + y * cos(phi_0));
+ result.set(phi0, phi_0);
+ result.set(omega, aqBz / pt);
+ result.set(z0, z_0);
+ result.set(tanLambda, mom.z() / pt);
+ result.setPt(pt);
+ return result;
+ }
+
+ double[] values;
+ double pt;
+
+ public Parameters(Parameters parameters) {
+ values = parameters.values.clone();
+ pt = parameters.pt;
+ }
+
+ Parameters() {
+ values = new double[5];
+ pt = 0;
+ }
+
+ public Parameters(double[] vals, double p_t) {
+ values = vals;
+ pt = p_t;
+ }
+
public double get(ParameterName name) {
- switch (name) {
- case d0: return d0;
- case phi0: return phi0;
- case omega: return omega;
- case z0: return z0;
- case s: return s;
- }
- return 0;
+ return values[name.ordinal()];
+ }
+
+ public double getPt() {
+ return pt;
+ }
+
+ public double[] getValues() {
+ return values;
+ }
+
+ public void set(ParameterName name, double val) {
+ values[name.ordinal()] = val;
+ }
+
+ void setPt(double p_t) {
+ pt = p_t;
}
-
- @Deprecated public double get(int i) {
- switch (i) {
- case 0: return d0;
- case 1: return phi0;
- case 2: return omega;
- case 3: return z0;
- case 4: return s;
+
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append(String.format("Parameters:\n"));
+ for (ParameterName p : ParameterName.values()) {
+ sb.append(String.format("%10s: %g\n", p.name(), values[p
+ .ordinal()]));
}
- return 0;
+ sb.append(String.format("%10s: %g\n", "pt", pt));
+ return sb.toString();
}
}
-
- int getCharge();
- double[] getReferencePoint();
- double getReferencePointX();
- double getReferencePointY();
- double getReferencePointZ();
- boolean isReferencePointPCA();
- double[] getMomentum();
- //Hep3Vector momentum();
- //SpacePoint referencePoint();
- double getPX();
- double getPY();
- double getPZ();
- //MCParticle getMCParticle();
-
- /**
- * Returns true if the track has been successfully fitted
- */
-
- boolean fitSuccess();
-
- /**
- * Get an individual track parameter
- *
- * The track parameters for LCD are defined as follows
- * <table>
- * <tr><th>Index</th><th>Meaning</th></tr>
- * <tr><td> 0 </td><td> d0 = XY impact parameter </td><tr>
- * <tr><td> 1 </td><td> phi0 </td><tr> </td><tr>
- * <tr><td> 2 </td><td> omega = 1/curv.radius (negative for negative tracks) </td><tr>
- * <tr><td> 3 </td><td> z0 = z of track origin (z impact parameter) </td><tr>
- * <tr><td> 4 </td><td> s = tan lambda </td><tr>
- * </table>
- * Parameters according to <a href="../util/swim/doc-files/L3_helix.pdf">the L3 conventions</a><br />
- * @param i The index of the track parameter
- * @return The track parameter with the specified index
- */
- double getTrackParameter(int i);
- /**
- * Get the track parameters as an array
- * @see #getTrackParameter
- */
- double[] getTrackParameters();
- /**
- * Get the error matrix
- * @see #getTrackParameter
- */
- SymmetricMatrix getErrorMatrix();
- /**
- * Get the Chi Squared for the track fit
- * @see #getNDF
- * @return Chi Squared
- */
- double getChi2();
- /**
- * Get the numbers of degrees of freedom for the fit
- * @see #getChi2
- * @return The number of degrees of freedom
- */
- int getNDF();
-
- double getdEdx();
- double getdEdxError();
- double getRadiusOfInnermostHit();
- int[] getSubdetectorHitNumbers();
- List<Track> getTracks();
- List<TrackerHit> getTrackerHits();
- int getType();
-
- //double parameter(ParameterName n);
- // similar name is not a problem, because of different signature
- //Parameters parameters();
+
+ int getCharge();
+
+ double[] getReferencePoint();
+
+ double getReferencePointX();
+
+ double getReferencePointY();
+
+ double getReferencePointZ();
+
+ boolean isReferencePointPCA();
+
+ double[] getMomentum();
+
+ // Hep3Vector momentum();
+ // SpacePoint referencePoint();
+ double getPX();
+
+ double getPY();
+
+ double getPZ();
+
+ // MCParticle getMCParticle();
+
+ /**
+ * Returns true if the track has been successfully fitted
+ */
+
+ boolean fitSuccess();
+
+ /**
+ * Get an individual track parameter
+ *
+ * The track parameters for LCD are defined as follows <table>
+ * <tr>
+ * <th>Index</th>
+ * <th>Meaning</th>
+ * </tr>
+ * <tr>
+ * <td> 0 </td>
+ * <td> d0 = XY impact parameter </td>
+ * <tr>
+ * <tr>
+ * <td> 1 </td>
+ * <td> phi0 </td>
+ * <tr> </td>
+ * <tr>
+ * <tr>
+ * <td> 2 </td>
+ * <td> omega = 1/curv.radius (negative for negative tracks) </td>
+ * <tr>
+ * <tr>
+ * <td> 3 </td>
+ * <td> z0 = z of track origin (z impact parameter) </td>
+ * <tr>
+ * <tr>
+ * <td> 4 </td>
+ * <td> s = tan lambda </td>
+ * <tr> </table> Parameters according to <a
+ * href="../util/swim/doc-files/L3_helix.pdf">the L3 conventions</a><br />
+ *
+ * @param i
+ * The index of the track parameter
+ * @return The track parameter with the specified index
+ */
+ double getTrackParameter(int i);
+
+ /**
+ * Get the track parameters as an array
+ *
+ * @see #getTrackParameter
+ */
+ double[] getTrackParameters();
+
+ /**
+ * Get the error matrix
+ *
+ * @see #getTrackParameter
+ */
+ SymmetricMatrix getErrorMatrix();
+
+ /**
+ * Get the Chi Squared for the track fit
+ *
+ * @see #getNDF
+ * @return Chi Squared
+ */
+ double getChi2();
+
+ /**
+ * Get the numbers of degrees of freedom for the fit
+ *
+ * @see #getChi2
+ * @return The number of degrees of freedom
+ */
+ int getNDF();
+
+ double getdEdx();
+
+ double getdEdxError();
+
+ double getRadiusOfInnermostHit();
+
+ int[] getSubdetectorHitNumbers();
+
+ List<Track> getTracks();
+
+ List<TrackerHit> getTrackerHits();
+
+ int getType();
+
+ // double parameter(ParameterName n);
+ // similar name is not a problem, because of different signature
+ // Parameters parameters();
}
lcsim/src/org/lcsim/event/base
diff -u -r1.9 -r1.9.2.1
--- BaseTrack.java 9 Feb 2007 17:34:10 -0000 1.9
+++ BaseTrack.java 5 Sep 2007 17:50:36 -0000 1.9.2.1
@@ -3,7 +3,7 @@
*
* Created on March 24, 2006, 9:18 PM
*
- * $Id: BaseTrack.java,v 1.9 2007/02/09 17:34:10 cassell Exp $
+ * $Id: BaseTrack.java,v 1.9.2.1 2007/09/05 17:50:36 jstrube Exp $
*/
package org.lcsim.event.base;
@@ -43,7 +43,7 @@
protected static final int D0 = Track.ParameterName.d0.ordinal();
protected static final int PHI = Track.ParameterName.phi0.ordinal();
protected static final int OMEGA = Track.ParameterName.omega.ordinal();
- protected static final int TANLAMBDA = Track.ParameterName.s.ordinal();
+ protected static final int TANLAMBDA = Track.ParameterName.tanLambda.ordinal();
protected static final int Z0 = Track.ParameterName.z0.ordinal();
/** Creates a new instance of BaseTrack */
lcsim/test/org/lcsim/util/swim
diff -u -r1.1 -r1.1.2.1
--- JansLCIOParameterTest.java 16 Aug 2007 21:46:46 -0000 1.1
+++ JansLCIOParameterTest.java 5 Sep 2007 17:50:36 -0000 1.1.2.1
@@ -4,8 +4,8 @@
import org.lcsim.spacegeom.CartesianVector;
import org.lcsim.spacegeom.SpacePoint;
import org.lcsim.spacegeom.SpaceVector;
-import static org.lcsim.util.swim.JansLCIOTrackParameters.ParameterName;
-
+import static org.lcsim.event.Track.ParameterName;
+import org.lcsim.event.Track.Parameters;
import junit.framework.TestCase;
public class JansLCIOParameterTest extends TestCase {
@@ -25,9 +25,9 @@
SpacePoint ref2 = new CartesianPoint(-1, -2, -30);
for (int charge=-2; charge<3; charge++) {
for (double field=-5; field<5.1; field += 0.5) {
- JansLCIOTrackParameters parms = JansLCIOTrackParameters.SpaceMomentum2Parameters(pos, mom, pos, charge, field);
- assertEquals(pos, JansLCIOTrackParameters.Parameters2Position(parms, pos));
- assertEquals(mom, JansLCIOTrackParameters.Parameters2Momentum(parms));
+ Parameters parms = Parameters.SpaceMomentum2Parameters(pos, mom, pos, charge, field);
+ assertEquals(pos, Parameters.Parameters2Position(parms, pos));
+ assertEquals(mom, Parameters.Parameters2Momentum(parms));
}
}
}
@@ -38,22 +38,22 @@
SpacePoint location = new CartesianPoint(1, 0, 0);
SpaceVector mom = new CartesianVector(0, -1, 1);
SpacePoint zero = new SpacePoint();
- JansLCIOTrackParameters params = JansLCIOTrackParameters.SpaceMomentum2Parameters(location, mom, zero, 1, field);
- assertEquals(params.pt, 1.0);
+ Parameters params = Parameters.SpaceMomentum2Parameters(location, mom, zero, 1, field);
+ assertEquals(params.getPt(), 1.0);
assertEquals(params.get(ParameterName.z0), 0.0);
assertEquals(params.get(ParameterName.d0), 1.0);
- assertEquals(mom, JansLCIOTrackParameters.Parameters2Momentum(params));
- assertEquals(location, JansLCIOTrackParameters.Parameters2Position(params, zero));
+ assertEquals(mom, Parameters.Parameters2Momentum(params));
+ assertEquals(location, Parameters.Parameters2Position(params, zero));
// The reference point has to be on the y axis
SpacePoint refPoint = new CartesianPoint(-20, 0, -60);
- JansLCIOTrackParameters params2 = JansLCIOTrackParameters.SpaceMomentum2Parameters(location, mom, refPoint, -1, -field);
+ Parameters params2 = Parameters.SpaceMomentum2Parameters(location, mom, refPoint, -1, -field);
- assertEquals(params2.pt, 1.0);
+ assertEquals(params2.getPt(), 1.0);
assertEquals(params2.get(ParameterName.z0), 60.0);
assertEquals(params2.get(ParameterName.d0), -(refPoint.x()-1.0));
- assertEquals(mom, JansLCIOTrackParameters.Parameters2Momentum(params2));
- assertEquals(location, JansLCIOTrackParameters.Parameters2Position(params2, refPoint));
+ assertEquals(mom, Parameters.Parameters2Momentum(params2));
+ assertEquals(location, Parameters.Parameters2Position(params2, refPoint));
}
// test a bit more complicated Geometry
@@ -64,11 +64,11 @@
SpaceVector mom = new CartesianVector(1, 0, 2);
// make sure it's the same y as the location
SpacePoint refPoint = new CartesianPoint(3.6, 9.2, -11.7);
- JansLCIOTrackParameters params = JansLCIOTrackParameters.SpaceMomentum2Parameters(location, mom, refPoint, charge, field);
+ Parameters params = Parameters.SpaceMomentum2Parameters(location, mom, refPoint, charge, field);
assertEquals(params.get(ParameterName.phi0), 0, 1e-15);
assertEquals(params.get(ParameterName.d0), -4.5, 1e-10);
- SpaceVector newMom = JansLCIOTrackParameters.Parameters2Momentum(params);
- SpacePoint newPos = JansLCIOTrackParameters.Parameters2Position(params, refPoint);
+ SpaceVector newMom = Parameters.Parameters2Momentum(params);
+ SpacePoint newPos = Parameters.Parameters2Position(params, refPoint);
assertEquals(newMom, mom);
assertEquals(newPos, location);
}
lcsim/src/org/lcsim/recon/cat/util
diff -u -r1.2 -r1.2.2.1
--- BasicTrack.java 22 Aug 2007 19:56:27 -0000 1.2
+++ BasicTrack.java 5 Sep 2007 17:50:36 -0000 1.2.2.1
@@ -11,15 +11,14 @@
import org.lcsim.conditions.ConditionsManager;
import org.lcsim.conditions.ConditionsManager.ConditionsSetNotFoundException;
import org.lcsim.geometry.Detector;
-import org.lcsim.util.swim.JansHelixSwimmer;
-import org.lcsim.util.swim.JansLCIOTrackParameters;
+import org.lcsim.util.swim.HelixSwimmer;
/**
* Basic implementation of {@link org.lcsim.event.Track} interface.
* Includes method for initializing track parameters from momentum at a given point.
*
* @author D. Onoprienko
- * @version $Id: BasicTrack.java,v 1.2 2007/08/22 19:56:27 onoprien Exp $
+ * @version $Id: BasicTrack.java,v 1.2.2.1 2007/09/05 17:50:36 jstrube Exp $
*/
public class BasicTrack implements Track {
@@ -31,7 +30,7 @@
*/
static public void initialize(Detector detector) {
_bField = detector.getFieldMap().getField(new double[]{0.,0.,0.})[2];
- _swimmer = new JansHelixSwimmer(_bField);
+ _swimmer = new HelixSwimmer(_bField);
}
/** Default constructor. */
@@ -145,7 +144,7 @@
double alpha = _swimmer.getTrackLengthToPoint(refPoint);
SpacePoint poca = _swimmer.getPointAtLength(alpha);
SpaceVector momentumAtPoca = _swimmer.getMomentumAtLength(alpha);
- JansLCIOTrackParameters parameters = JansLCIOTrackParameters.SpaceMomentum2Parameters(poca, momentumAtPoca, refPoint, charge, _bField);
+ Parameters parameters = Parameters.SpaceMomentum2Parameters(poca, momentumAtPoca, refPoint, charge, _bField);
_parameters = parameters.getValues();
_momentum = momentumAtPoca.v();
_charge = charge;
@@ -171,7 +170,7 @@
protected int _type;
protected static double _bField;
- protected static JansHelixSwimmer _swimmer;
+ protected static HelixSwimmer _swimmer;
protected static ConditionsListener _conListener = new ConditionsListener() {
public void conditionsChanged(ConditionsEvent event) {
lcsim/src/org/lcsim/contrib/LeiXia
diff -u -r1.4 -r1.4.2.1
--- rpc_PFA_np_hmx_ilc090_g2.java 17 Aug 2007 16:20:33 -0000 1.4
+++ rpc_PFA_np_hmx_ilc090_g2.java 5 Sep 2007 17:50:37 -0000 1.4.2.1
@@ -17,6 +17,7 @@
import org.lcsim.recon.emid.hmatrix.HMatrixBuilder;
import org.lcsim.recon.emid.hmatrix.HMatrixConditionsConverter;
import org.lcsim.spacegeom.CartesianPoint;
+import org.lcsim.spacegeom.CartesianVector;
import org.lcsim.math.chisq.ChisqProb;
/*
@@ -1859,7 +1860,7 @@
else trackq = 0; // hope this never happens!
HelixSwimmer swimmer = new HelixSwimmer(5);
- swimmer.setTrack(new CartesianPoint(trackp), new CartesianPoint(tracko), trackq); // swimmer in 5T B field along Z+
+ swimmer.setTrack(new CartesianVector(trackp), new CartesianPoint(tracko), trackq); // swimmer in 5T B field along Z+
List<double[]> TrackPoint = new ArrayList<double[]>();
double length = 10.; // this value should be as small as possible!
lcsim/src/org/lcsim/contrib/LeiXia
diff -u -r1.3 -r1.3.2.1
--- rpc_PFA_np.java 17 Aug 2007 16:20:33 -0000 1.3
+++ rpc_PFA_np.java 5 Sep 2007 17:50:37 -0000 1.3.2.1
@@ -6,6 +6,7 @@
import org.lcsim.event.MCParticle;
import org.lcsim.event.SimCalorimeterHit;
import org.lcsim.spacegeom.CartesianPoint;
+import org.lcsim.spacegeom.CartesianVector;
import org.lcsim.util.Driver;
import org.lcsim.util.aida.AIDA;
import org.lcsim.util.swim.Helix;
@@ -16,7 +17,7 @@
/**
* Reconstruction: SiD study (rpc active medium) - non projective
* @author Lei Xia <[log in to unmask]>
- * @version $Id: rpc_PFA_np.java,v 1.3 2007/08/17 16:20:33 jstrube Exp $
+ * @version $Id: rpc_PFA_np.java,v 1.3.2.1 2007/09/05 17:50:37 jstrube Exp $
*/
public class rpc_PFA_np extends Driver
@@ -1615,7 +1616,7 @@
else trackq = 0; // hope this never happens!
HelixSwimmer swimmer = new HelixSwimmer(5.); // swimmer in 5T B field along Z+
- swimmer.setTrack(new CartesianPoint(trackp), new CartesianPoint(tracko), trackq);
+ swimmer.setTrack(new CartesianVector(trackp), new CartesianPoint(tracko), trackq);
// , , ,
List<double[]> TrackPoint = new ArrayList<double[]>();
lcsim/src/org/lcsim/contrib/JanStrube/tracking
diff -u -r1.1 -r1.1.2.1
--- TrackTester.java 10 Sep 2006 11:47:34 -0000 1.1
+++ TrackTester.java 5 Sep 2007 17:50:38 -0000 1.1.2.1
@@ -1,5 +1,5 @@
/**
- * @version $Id: TrackTester.java,v 1.1 2006/09/10 11:47:34 jstrube Exp $
+ * @version $Id: TrackTester.java,v 1.1.2.1 2007/09/05 17:50:38 jstrube Exp $
*/
package org.lcsim.contrib.JanStrube.tracking;
@@ -17,7 +17,6 @@
for (Track t : trackList) {
HelixSwimmer swimmer = new HelixSwimmer(5);
swimmer.setTrack(t);
- swimmer.getSpatialParameters();
t.getMomentum();
}
}
CVSspam 0.2.8