hps-java/src/main/java/org/lcsim/hps/recon/tracking
diff -u -r1.1 -r1.2
--- SvtTrackExtrapolator.java 12 May 2012 22:21:20 -0000 1.1
+++ SvtTrackExtrapolator.java 29 May 2012 17:44:29 -0000 1.2
@@ -11,7 +11,7 @@
SeedTrack track;
TrackUtils trackUtils;
- public static final double ECAL_FACE = 1450; // mm
+ public static final double ECAL_FACE = 1600; // mm
public static final double DIPOLE_EDGE = 914; // mm
/**
@@ -45,8 +45,8 @@
if(track == null) throw new RuntimeException("Track has not been set!");
- if(x > DIPOLE_EDGE){
- double yDipole = trackUtils.getYOnHelixProjection(x);
+ if(x >= DIPOLE_EDGE){
+ double yDipole = trackUtils.getYOnHelixProjection(DIPOLE_EDGE);
double s = trackUtils.arcLength(DIPOLE_EDGE, yDipole);
double zDipole = trackUtils.getZ0() + s*trackUtils.getTanLambda();
double phi = trackUtils.getPhi0() - s/trackUtils.getR();
@@ -61,7 +61,14 @@
return new BasicHep3Vector(x, y, z);
- } else if(x < 0){
+ } else if( x > 0 && x < DIPOLE_EDGE){
+
+ double y = trackUtils.getYOnHelixProjection(x);
+ double s = trackUtils.arcLength(x, y);
+ double z = trackUtils.getZ0() + s*trackUtils.getTanLambda();
+ return new BasicHep3Vector(x, y, z);
+ } else if(x <= 0){
+
double dx = x - trackUtils.getX0();
double r = dx/(Math.cos(trackUtils.getPhi0())*(1/Math.sqrt(1 + Math.pow(trackUtils.getTanLambda(), 2))));
double dy = r*Math.sin(trackUtils.getPhi0())*(1/Math.sqrt(1 + Math.pow(trackUtils.getTanLambda(), 2)));