Commit in hps-java/src/main/java/org/lcsim/hps on MAIN | |||
monitoring/svt/TrackingReconstructionPlots.java | +7 | -7 | 1.15 -> 1.16 |
recon/particle/ReconParticleDriver.java | +4 | -8 | 1.6 -> 1.7 |
recon/tracking/EcalTrackMatch.java | +2 | -16 | 1.5 -> 1.6 |
/SvtTrackExtrapolator.java | +26 | -33 | 1.10 -> 1.11 |
/TrackUtils.java | +70 | -237 | 1.27 -> 1.28 |
recon/tracking/gbl/TruthResiduals.java | +2 | -6 | 1.6 -> 1.7 |
recon/vertexing/TwoTrackVertexer.java | +1 | -2 | 1.5 -> 1.6 |
users/mgraham/ElwinsTrackingRecon.java | +20 | -19 | 1.1 -> 1.2 |
/ExamplePlotter.java | +4 | -2 | 1.2 -> 1.3 |
/TrackExtrapolationAnalysis.java | +12 | -10 | 1.5 -> 1.6 |
/TwoTrackAnalysis.java | +23 | -22 | 1.2 -> 1.3 |
users/omoreno/ReconstructedParticleChecker.java | +2 | -4 | 1.1 -> 1.2 |
/SvtHitEfficiency.java | +6 | -12 | 1.4 -> 1.5 |
/SvtQA.java | +3 | -5 | 1.5 -> 1.6 |
/SvtTrackAnalysis.java | +13 | -16 | 1.3 -> 1.4 |
/TestRunTrackReconEfficiency.java | +2 | -5 | 1.3 -> 1.4 |
users/phansson/ECalGainDriver.java | +4 | -10 | 1.12 -> 1.13 |
/MultScatAnalysis.java | +5 | -11 | 1.8 -> 1.9 |
/TrigRateDriver.java | +4 | -2 | 1.6 -> 1.7 |
/TwoTrackAnlysis.java | +4 | -6 | 1.22 -> 1.23 |
+214 | -433 |
Making extrapolator static and collecting constants to common file.
diff -u -r1.15 -r1.16 --- TrackingReconstructionPlots.java 12 Jul 2013 23:11:19 -0000 1.15 +++ TrackingReconstructionPlots.java 14 Oct 2013 22:03:09 -0000 1.16 @@ -3,14 +3,17 @@
import hep.aida.*; import hep.physics.matrix.SymmetricMatrix; import hep.physics.vec.Hep3Vector;
+
import java.io.IOException; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger;
+
import org.lcsim.detector.tracker.silicon.SiSensor; import org.lcsim.event.*; import org.lcsim.geometry.Detector; import org.lcsim.geometry.IDDecoder;
+import org.lcsim.hps.event.BeamlineConstants;
import org.lcsim.hps.monitoring.AIDAFrame; import org.lcsim.hps.monitoring.Resettable; import org.lcsim.hps.recon.ecal.HPSEcalCluster;
@@ -50,7 +53,6 @@
IDDecoder dec; private int eventCount; private List<SiSensor> sensors;
- private double zAtConverter = -674.062;//mm
private String outputPlots = null; IPlotter plotter; IPlotter plotter2;
@@ -726,12 +728,10 @@
HelixConverter converter = new HelixConverter(0); StraightLineTrack slt = converter.Convert(ht);
- SvtTrackExtrapolator extend = new SvtTrackExtrapolator(); - extend.setTrack(stEle); - Hep3Vector posAtEcal = extend.getTrackPositionAtEcal();
+ Hep3Vector posAtEcal = SvtTrackExtrapolator.getTrackPositionAtEcal(trk);
- aida.histogram1D("X (mm) @ Z=-60cm").fill(slt.getYZAtX(zAtConverter)[0]); //this is y in the tracker frame - aida.histogram1D("Y (mm) @ Z=-60cm").fill(slt.getYZAtX(zAtConverter)[1]); //this is z in the tracker frame
+ aida.histogram1D("X (mm) @ Z=-60cm").fill(slt.getYZAtX(BeamlineConstants.HARP_POSITION)[0]); //this is y in the tracker frame + aida.histogram1D("Y (mm) @ Z=-60cm").fill(slt.getYZAtX(BeamlineConstants.HARP_POSITION)[1]); //this is z in the tracker frame
//double sECAL = HelixUtils.PathToXPlane(ht, zEcal, 3000, 1).get(0); aida.histogram1D("X (mm) @ Z=-150cm").fill(slt.getYZAtX(zAtColl)[0]); aida.histogram1D("Y (mm) @ Z=-150cm").fill(slt.getYZAtX(zAtColl)[1]);
@@ -868,7 +868,7 @@
// if (clust != null) { if (clust != null) {
- posAtEcal = extend.extrapolateTrack(clust.getPosition()[2]);//.positionAtEcal();
+ posAtEcal = SvtTrackExtrapolator.extrapolateTrack(trk,clust.getPosition()[2]);//.positionAtEcal();
aida.histogram2D("Energy Vs Momentum").fill(clust.getEnergy(), trk.getPX() * 1000.0); aida.histogram1D("Energy Over Momentum").fill(clust.getEnergy() / (trk.getPX() * 1000.0));
diff -u -r1.6 -r1.7 --- ReconParticleDriver.java 15 Apr 2013 07:14:32 -0000 1.6 +++ ReconParticleDriver.java 14 Oct 2013 22:03:09 -0000 1.7 @@ -27,12 +27,11 @@
* * @author Mathew Graham <[log in to unmask]> * @author Omar Moreno <[log in to unmask]>
- * @version $Id: ReconParticleDriver.java,v 1.6 2013/04/15 07:14:32 omoreno Exp $
+ * @version $Id: ReconParticleDriver.java,v 1.7 2013/10/14 22:03:09 phansson Exp $
*/ public abstract class ReconParticleDriver extends Driver {
- SvtTrackExtrapolator extrapolator = new SvtTrackExtrapolator(); -
+
// Flags boolean debug = false;
@@ -190,11 +189,9 @@
continue; }
- // Set the track to extrapolate - extrapolator.setTrack(track);
// Extrapolate the track to the Ecal cluster shower max
- Hep3Vector trkPosAtShowerMax = extrapolator.extrapolateTrack(clusterPos.z());
+ Hep3Vector trkPosAtShowerMax = SvtTrackExtrapolator.extrapolateTrack(track,clusterPos.z());
// Check if any of the extrapolated values are invalid. // TODO: There are some track whose extrapolated coordinates // are NaN. The problem seems to be that the y-coordinate
@@ -241,8 +238,7 @@
this.printDebug("Ecal cluster position: " + ecalClusterPos.toString()); // Get the position of the track at the Ecal cluster shower max
- extrapolator.setTrack(matchedTrack); - Hep3Vector trkPosAtShowerMax = extrapolator.extrapolateTrack(ecalClusterPos.z());
+ Hep3Vector trkPosAtShowerMax = SvtTrackExtrapolator.extrapolateTrack(matchedTrack,ecalClusterPos.z());
this.printDebug("Track position at shower max: " + trkPosAtShowerMax.toString()); // Get the distance between the track and the cluster position
diff -u -r1.5 -r1.6 --- EcalTrackMatch.java 8 Sep 2012 00:17:53 -0000 1.5 +++ EcalTrackMatch.java 14 Oct 2013 22:03:09 -0000 1.6 @@ -17,22 +17,16 @@
// private String trackCollectionName = "MatchedTracks"; Cluster cluster; Track matchedTrack;
- SvtTrackExtrapolator extrapolator; - //SvtTrackExtrapolator extrapolator;
private boolean debug = false; public EcalTrackMatch() { cluster = null; matchedTrack = null;
- extrapolator = new SvtTrackExtrapolator(); - //extrapolator = new SvtTrackExtrapolator();
} public EcalTrackMatch(boolean deb) { cluster = null; matchedTrack = null;
- extrapolator = new SvtTrackExtrapolator(); - //extrapolator = new SvtTrackExtrapolator();
debug = deb; }
@@ -58,11 +52,7 @@
} public double dist(Track track, int dir) {
-// SeedTrack trk = (SeedTrack)track; - extrapolator.setTrack(track); - //extend.setTrack(stEle); - //Hep3Vector posAtEcal = extend.positionAtEcal(); - Hep3Vector trk_pos = extrapolator.getTrackPositionAtEcal();
+ Hep3Vector trk_pos = SvtTrackExtrapolator.getTrackPositionAtEcal(track);
double dx; if (dir == 0) { dx = cluster.getPosition()[0] - trk_pos.x();
@@ -76,11 +66,7 @@
} public double dR(Track track) {
-// SeedTrack trk = (SeedTrack)track; - extrapolator.setTrack(track); - //extend.setTrack(stEle); - //Hep3Vector posAtEcal = extend.positionAtEcal(); - Hep3Vector trk_pos = extrapolator.getTrackPositionAtEcal();
+ Hep3Vector trk_pos = SvtTrackExtrapolator.getTrackPositionAtEcal(track);
double dx = dX(track); double dy = dY(track); double dr = Math.sqrt(dx * dx + dy * dy);
diff -u -r1.10 -r1.11 --- SvtTrackExtrapolator.java 11 Oct 2013 23:14:28 -0000 1.10 +++ SvtTrackExtrapolator.java 14 Oct 2013 22:03:09 -0000 1.11 @@ -5,7 +5,9 @@
import hep.physics.vec.Hep3Vector; import org.lcsim.event.Track;
+import org.lcsim.fit.helicaltrack.HelicalTrackFit;
import org.lcsim.hps.event.BeamlineConstants;
+import org.lcsim.recon.tracking.seedtracker.SeedTrack;
public class SvtTrackExtrapolator extends TrackUtils {
@@ -22,63 +24,54 @@
setTrack(pars); }
- /** - * - */ - public void setTrack(Track track){ - setTrack(track); - isTrackSet = true; - } - - /** - * - */ - public void setTrack(double[] pars){ - setTrack(pars); - isTrackSet = true; - } -
/** * */
- public Hep3Vector getTrackPositionAtEcal(){ - return this.extrapolateTrack(BeamlineConstants.ECAL_FACE);
+ public static Hep3Vector getTrackPositionAtEcal(Track track){ + return extrapolateTrack(track, BeamlineConstants.ECAL_FACE);
}
- public Hep3Vector getTrackPositionAtHarp(){ - return this.extrapolateTrack(BeamlineConstants.HARP_POSITION);
+ public static Hep3Vector getTrackPositionAtHarp(Track track){ + return extrapolateTrack(track, BeamlineConstants.HARP_POSITION);
}
- /** - * - */ - public Hep3Vector extrapolateTrack(double z){
+ public static Hep3Vector extrapolateTrack(HelicalTrackFit helix, double z){ + SeedTrack trk = new SeedTrack(); + //bfield = Math.abs((detector.getFieldMap().getField(new BasicHep3Vector(0, 0, 0)).y())); + double bfield = 0.; + // Here we aren't really using anything related to momentum so B-field is not important + trk.setTrackParameters(helix.parameters(), bfield); // Sets first TrackState. + trk.setCovarianceMatrix(helix.covariance()); // Modifies first TrackState. + trk.setChisq(helix.chisqtot()); + trk.setNDF(helix.ndf()[0]+helix.ndf()[1]); + return extrapolateTrack(trk,z); + } + + public static Hep3Vector extrapolateTrack(Track track, double z){
- if(!isTrackSet) throw new RuntimeException("Track has not been set!"); -
Hep3Vector trackPosition = null; double dz = 0; if(z >= BeamlineConstants.DIPOLE_EDGE){
- trackPosition = extrapolateHelixToXPlane(BeamlineConstants.DIPOLE_EDGE);
+ trackPosition = extrapolateHelixToXPlane(track, BeamlineConstants.DIPOLE_EDGE);
dz = z - BeamlineConstants.DIPOLE_EDGE; } else if(z <= BeamlineConstants.DIPOLE_EDGELOW){
- trackPosition = extrapolateHelixToXPlane(BeamlineConstants.DIPOLE_EDGELOW);
+ trackPosition = extrapolateHelixToXPlane(track, BeamlineConstants.DIPOLE_EDGELOW);
dz = z - trackPosition.x(); } else {
- Hep3Vector detVecTracking = extrapolateHelixToXPlane(z);
+ Hep3Vector detVecTracking = extrapolateHelixToXPlane(track,z);
//System.out.printf("detVec %s\n", detVecTracking.toString()); return new BasicHep3Vector(detVecTracking.y(),detVecTracking.z(),detVecTracking.x()); } // Get the track azimuthal angle
- double phi = getPhi(trackPosition);
+ double phi = getPhi(track, trackPosition);
// Find the distance to the point of interest
- double r = dz/(getSinTheta()*Math.cos(phi)); - double dx = r*getSinTheta()*Math.sin(phi); - double dy = r*getCosTheta();
+ double r = dz/(getSinTheta(track)*Math.cos(phi)); + double dx = r*getSinTheta(track)*Math.sin(phi); + double dy = r*getCosTheta(track);
// Find the track position at the point of interest double x = trackPosition.y() + dx;
diff -u -r1.27 -r1.28 --- TrackUtils.java 11 Oct 2013 23:14:28 -0000 1.27 +++ TrackUtils.java 14 Oct 2013 22:03:09 -0000 1.28 @@ -19,11 +19,16 @@
import org.lcsim.detector.tracker.silicon.SiSensor; import org.lcsim.event.MCParticle; import org.lcsim.event.RawTrackerHit;
-
//--- org.lcsim ---// import org.lcsim.event.Track; import org.lcsim.event.TrackerHit;
-import org.lcsim.fit.helicaltrack.*;
+import org.lcsim.fit.helicaltrack.HelicalTrackFit;
+import org.lcsim.fit.helicaltrack.HelicalTrackHit;
+import org.lcsim.fit.helicaltrack.HelicalTrackStrip;
+import org.lcsim.fit.helicaltrack.HelixParamCalculator;
+import org.lcsim.fit.helicaltrack.HelixUtils;
+import org.lcsim.fit.helicaltrack.HitUtils;
+import org.lcsim.fit.helicaltrack.MultipleScatter;
import org.lcsim.hps.event.BeamlineConstants; import org.lcsim.hps.event.HPSTransformations; import org.lcsim.hps.users.phansson.WTrack;
@@ -33,7 +38,7 @@
/** * * @author Omar Moreno <[log in to unmask]>
- * @version $Id: TrackUtils.java,v 1.27 2013/10/11 23:14:28 phansson Exp $
+ * @version $Id: TrackUtils.java,v 1.28 2013/10/14 22:03:09 phansson Exp $
* TODO: Switch to JLab coordinates */
@@ -41,8 +46,8 @@
protected boolean _debug = false; protected boolean isTrackSet = false;
- protected double[] trackParameters; -
+ protected double[] trackParameters = null; +
/** *
@@ -62,215 +67,63 @@
* */ public void setTrack(double[] pars){
- trackParameters = new double[9]; - this.setTrackParameters(pars);
+ trackParameters = pars;
isTrackSet = true; }
- /** - * - */ - public double getDoca(){ - return trackParameters[0]; - } - - /** - * - */ - public double getPhi0(){ - return trackParameters[1]; - } - - /** - * - */ - public double getR(){ - return trackParameters[2];
+ /** + * + */ + public void setTrack(Track track){ + this.setTrack(track.getTrackParameters());
}
- /** - * - */ - public double getX0(){ - return trackParameters[3]; - }
- /** - * - */ - public double getY0(){ - return trackParameters[4]; - } - /** - * - */ - public double getZ0(){ - return trackParameters[5]; - } - - /** - * - */ - public double getTanLambda(){ - return trackParameters[6];
+ + + public static Hep3Vector extrapolateHelixToXPlane(Track track, double x){ + return extrapolateHelixToXPlane(getHTF(track),x);
}
- - /** - * - */ - public double getXC(){ - return trackParameters[7];
+ public static Hep3Vector extrapolateHelixToXPlane(HelicalTrackFit htf, double x){ + double s = HelixUtils.PathToXPlane(htf, x, 0., 0).get(0); + return HelixUtils.PointOnHelix(htf, s); + } + public static double getPhi(Track 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 double getYC(){ - return trackParameters[8];
+ public static double getX0(Track track) { + return -1*getDoca(track)*Math.sin(getPhi0(track));
}
- - /** - * - */ - public double getXOnHelixProjection(double y){ - - // Check if a track has been set - if(!isTrackSet) throw new RuntimeException("Track has not been set!"); - - // Find the x position - return this.getXC() - + Math.signum(this.getR())*Math.sqrt(this.getR()*this.getR() - Math.pow(y-this.getYC(), 2));
+ public static double getR(Track track) { + return 1.0/track.getTrackStates().get(0).getOmega();
}
- - /** - * - */ - public double getYOnHelixProjection(double x){ - - // Check if a track has been set - if(!isTrackSet) throw new RuntimeException("Track has not been set!"); - if(_debug) System.out.println(this.getClass().getSimpleName() + ": getYOnHelixProjection for x=" + x + " R=" + this.getR() + " YC=" + this.getYC() + " XC=" + this.getXC()); - // Find the y position - if(_debug) { - System.out.println(this.getClass().getSimpleName() + ": => y = " + Math.sqrt(this.getR()*this.getR() - Math.pow(x-this.getXC(), 2))); - System.out.println(this.getClass().getSimpleName() + ": => y = " + (this.getYC() + Math.signum(this.getR())*Math.sqrt(this.getR()*this.getR() - Math.pow(x-this.getXC(), 2)))); - } - - return this.getYC() + Math.signum(this.getR())*Math.sqrt(this.getR()*this.getR() - Math.pow(x-this.getXC(), 2));
+ public static double getY0(Track track) { + return getDoca(track)*Math.cos(getPhi0(track));
}
- - /** - * - */ - public double arcLength(double x, double y){ - - double phi0 = Math.atan2(this.getY0() - this.getYC(), this.getX0() - this.getXC()); - double phi = Math.atan2(y - this.getYC(), x - this.getXC()); - double dphi = phi - phi0; - - if (dphi > Math.PI) dphi -= 2. * Math.PI; - if (dphi < -Math.PI) dphi += 2. * Math.PI; - - return -this.getR()*dphi;
+ public static double getDoca(Track track) { + return track.getTrackStates().get(0).getD0();
}
- - /** - * - */ - public void printTrackParameters(){ - System.out.println(this.getClass().getSimpleName() + ": DOCA: " + this.getDoca() + - " phi0: " + this.getPhi0() + - " R: " + this.getR() + - " x0: " + this.getX0() + - " y0: " + this.getY0() + - " z0: " + this.getZ0() + - " tan(Lambda): " + this.getTanLambda() + - " xc: " + this.getXC() + - " yc: " + this.getYC() ); - } - - - /** - * - */ - private void setTrackParameters(Track track){ - - // All track parameters are in LCSim coordinates system - trackParameters[0] = track.getTrackParameter(0); // DOCA - trackParameters[1] = track.getTrackParameter(1); // phi0 - trackParameters[2] = 1/track.getTrackParameter(2); // R - trackParameters[3] = -this.getDoca()*Math.sin(this.getPhi0()); // x0 - trackParameters[4] = this.getDoca()*Math.cos(this.getPhi0()); // y0 - trackParameters[5] = track.getTrackParameter(3); // z0 - trackParameters[6] = track.getTrackParameter(4); // tan(Lambda) - trackParameters[7] = (this.getR() - this.getDoca())*Math.sin(this.getPhi0()); // xc - trackParameters[8] = -(this.getR() - this.getDoca())*Math.cos(this.getPhi0()); // yc - if(_debug) this.printTrackParameters();
+ public static double getPhi0(Track track) { + return track.getTrackStates().get(0).getPhi();
}
- - /** - * - */ - public void setTrack(Track track){ - trackParameters = new double[9]; - // All track parameters are in LCSim coordinates system - trackParameters[0] = track.getTrackParameter(0); // DOCA - trackParameters[1] = track.getTrackParameter(1); // phi0 - trackParameters[2] = 1/track.getTrackParameter(2); // R - trackParameters[3] = -this.getDoca()*Math.sin(this.getPhi0()); // x0 - trackParameters[4] = this.getDoca()*Math.cos(this.getPhi0()); // y0 - trackParameters[5] = track.getTrackParameter(3); // z0 - trackParameters[6] = track.getTrackParameter(4); // tan(Lambda) - trackParameters[7] = (this.getR() - this.getDoca())*Math.sin(this.getPhi0()); // xc - trackParameters[8] = -(this.getR() - this.getDoca())*Math.cos(this.getPhi0()); // yc - if(_debug) this.printTrackParameters(); - isTrackSet = true;
+ public static double getZ0(Track track) { + return track.getTrackStates().get(0).getZ0();
}
- - /** - * - */ - private void setTrackParameters(double[] pars){ - - // All track parameters are in LCSim coordinates system - trackParameters[0] = pars[0]; // DOCA - trackParameters[1] = pars[1]; // phi0 - trackParameters[2] = 1/pars[2]; // R - trackParameters[3] = -this.getDoca()*Math.sin(this.getPhi0()); // x0 - trackParameters[4] = this.getDoca()*Math.cos(this.getPhi0()); // y0 - trackParameters[5] = pars[3]; // z0 - trackParameters[6] = pars[4]; // tan(Lambda) - trackParameters[7] = (this.getR() - this.getDoca())*Math.sin(this.getPhi0()); // xc - trackParameters[8] = -(this.getR() - this.getDoca())*Math.cos(this.getPhi0()); // yc - if(_debug) this.printTrackParameters(); -
+ public static double getTanLambda(Track track) { + return track.getTrackStates().get(0).getTanLambda();
}
- - /** - * - */ - public Hep3Vector extrapolateHelixToXPlane(double x){ - if(_debug) System.out.println(this.getClass().getSimpleName() + ":extrapolateHelixToXPlane for x= " + x ); - double y = this.getYOnHelixProjection(x); - double s = this.arcLength(x, y); - double z = this.getZ0() + s*this.getTanLambda(); - if(_debug) System.out.println(this.getClass().getSimpleName() + ": y " + y + " s " + s + " z " + z); - return new BasicHep3Vector(x, y, z);
+ public static double getSinTheta(Track track){ + return 1/Math.sqrt(1 + Math.pow(getTanLambda(track), 2));
}
- - /** - * - */ - public Hep3Vector extrapolateHelixToYPlane(double y){ - double x = this.getXOnHelixProjection(y); - double s = this.arcLength(x, y); - double z = this.getZ0() + s*this.getTanLambda(); - - return new BasicHep3Vector(x, y, z);
+ public static double getCosTheta(Track track){ + return getTanLambda(track)/Math.sqrt(1 + Math.pow(getTanLambda(track), 2));
}
- - - public static Hep3Vector getHelixPlaneIntercept(HelicalTrackFit helfit, Hep3Vector unit_vec_normal_to_plane,Hep3Vector point_on_plane, double bfield) {
+ + + + public static Hep3Vector getHelixPlaneIntercept(HelicalTrackFit helfit, Hep3Vector unit_vec_normal_to_plane,Hep3Vector point_on_plane, double bfield) {
/* * Use code in WTrack to find the iterative solution to the interception */
@@ -379,32 +232,7 @@
return pos; }
- - public double getPhi(Hep3Vector position){ - - // Check if a track has been set - if(!isTrackSet) throw new RuntimeException("Track has not been set!"); - - double x = Math.sin(this.getPhi0() - (1/this.getR())*(position.x() - this.getX0())); - double y = Math.cos(this.getPhi0() + (1/this.getR())*(position.y() - this.getY0())); - - return Math.atan2(x, y); - } - - /** - * - */ - public double getSinTheta(){ - return 1/Math.sqrt(1 + Math.pow(this.getTanLambda(), 2)); - } - - /** - * - */ - public double getCosTheta(){ - return this.getTanLambda()/Math.sqrt(1 + Math.pow(this.getTanLambda(), 2)); - } -
+
/** *
@@ -482,17 +310,7 @@
return false; }
- public HelicalTrackFit makeHelicalTrackFit(double[] helix_parameters) { - - SymmetricMatrix cov = new SymmetricMatrix(5); - double[] chisq = new double[2]; - int[] ndf = new int[2]; - Map<HelicalTrackHit, Double> smap = new HashMap<HelicalTrackHit, Double>(); - Map<HelicalTrackHit, MultipleScatter> msmap = new HashMap<HelicalTrackHit, MultipleScatter>(); - HelicalTrackFit fit = new HelicalTrackFit(helix_parameters, cov, chisq, ndf,smap,msmap); - return fit; - } -
+
public static Map<String,Double> calculateTrackHitResidual(HelicalTrackHit hth,HelicalTrackFit track, boolean includeMS ) { boolean debug = false;
@@ -792,13 +610,28 @@
par[HelicalTrackFit.phi0Index] = helixParamCalculator.getPhi0(); par[HelicalTrackFit.curvatureIndex] = 1.0/helixParamCalculator.getRadius(); par[HelicalTrackFit.z0Index] = helixParamCalculator.getZ0();
- SymmetricMatrix cov = new SymmetricMatrix(5);
+ HelicalTrackFit htf = getHTF(par); + //System.out.printf("d0 %f z0 %f R %f phi %f lambda %s\n", htf.dca(),htf.z0(),htf.R(),htf.phi0(),htf.slope() ); + return htf; + } + + public static HelicalTrackFit getHTF(Track track) { + if( track.getClass().isInstance(SeedTrack.class) ) { + return ((SeedTrack) track).getSeedCandidate().getHelix(); + } else { + return getHTF(track.getTrackParameters()); + } + } + + public static HelicalTrackFit getHTF(double par[]) { + // need to have matrix that makes sense? Really? + SymmetricMatrix cov = new SymmetricMatrix(5);
for(int i=0;i<cov.getNRows();++i) cov.setElement(i, i, 1.); HelicalTrackFit htf = new HelicalTrackFit(par, cov, new double[2], new int[2], null, null);
- //System.out.printf("d0 %f z0 %f R %f phi %f lambda %s\n", htf.dca(),htf.z0(),htf.R(),htf.phi0(),htf.slope() );
return htf; }
-
}
+ +
diff -u -r1.6 -r1.7 --- TruthResiduals.java 11 Oct 2013 22:18:52 -0000 1.6 +++ TruthResiduals.java 14 Oct 2013 22:03:09 -0000 1.7 @@ -46,7 +46,6 @@
private IHistogram2D h_mcp_org; private IHistogram2D trkpos_y_vs_x; private boolean firstWeirdTrack = true;
- private SvtTrackExtrapolator extrapol = new SvtTrackExtrapolator();
@@ -138,10 +137,7 @@
//HelicalTrackFit htfTruth = TrackUtils.getHTF(mcp, -1*this._B.z()); HelicalTrackFit htfTruth = TrackUtils.getHTF(mcp, -1*this._B.z());
- - extrapol.setTrack(htfTruth.parameters()); - - Hep3Vector trkposExtraPolator = extrapol.extrapolateTrack(simHitPosTracking.x());
+ Hep3Vector trkposExtraPolator = SvtTrackExtrapolator.extrapolateTrack(htfTruth,simHitPosTracking.x());
//System.out.printf("trkposextrapol (det) %s\n",trkposExtraPolator.toString()); trkposExtraPolator = this._hpstrans.transformVectorToTracking(trkposExtraPolator);
@@ -180,7 +176,7 @@
double xpos = mcp.getOriginZ(); while(xpos< 100.) { xpos += dx;
- trkposExtraPolator = this._hpstrans.transformVectorToTracking(extrapol.extrapolateTrack(xpos));
+ trkposExtraPolator = this._hpstrans.transformVectorToTracking(SvtTrackExtrapolator.extrapolateTrack(htfTruth,xpos));
double ypos = trkposExtraPolator.y(); trkpos_y_vs_x.fill(xpos,ypos); }
diff -u -r1.5 -r1.6 --- TwoTrackVertexer.java 11 Oct 2013 23:14:28 -0000 1.5 +++ TwoTrackVertexer.java 14 Oct 2013 22:03:09 -0000 1.6 @@ -58,8 +58,7 @@
} private Hep3Vector getPosition(Track trk, double zposition) {
- trackExtraPolator.setTrack(trk); - return trackExtraPolator.extrapolateTrack(zposition);
+ return SvtTrackExtrapolator.extrapolateTrack(trk, zposition);
} @Override
diff -u -r1.1 -r1.2 --- ElwinsTrackingRecon.java 19 Nov 2012 17:12:29 -0000 1.1 +++ ElwinsTrackingRecon.java 14 Oct 2013 22:03:09 -0000 1.2 @@ -4,11 +4,13 @@
import hep.aida.*; import hep.physics.matrix.SymmetricMatrix; import hep.physics.vec.Hep3Vector;
+
import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger;
+
import org.lcsim.detector.tracker.silicon.SiSensor; import org.lcsim.event.*; import org.lcsim.fit.helicaltrack.HelicalTrackCross;
@@ -16,6 +18,7 @@
import org.lcsim.fit.helicaltrack.HelicalTrackHit; import org.lcsim.geometry.Detector; import org.lcsim.geometry.IDDecoder;
+import org.lcsim.hps.event.BeamlineConstants;
import org.lcsim.hps.monitoring.AIDAFrame; import org.lcsim.hps.monitoring.Resettable; import org.lcsim.hps.recon.ecal.HPSEcalCluster;
@@ -53,7 +56,6 @@
IDDecoder dec; private int eventCount; private List<SiSensor> sensors;
- private double zAtConverter = -674.062;//mm
private String outputPlots = null; IPlotter plotter; IPlotter plotter2;
@@ -631,9 +633,9 @@
StraightLineTrack slt2 = converter2.Convert(ht2); HPSTrack hpstrack1 = new HPSTrack(ht1);
- Hep3Vector[] trkatconver1 = hpstrack1.getPositionAtZMap(100, zAtConverter, 1);
+ Hep3Vector[] trkatconver1 = hpstrack1.getPositionAtZMap(100, BeamlineConstants.HARP_POSITION, 1);
HPSTrack hpstrack2 = new HPSTrack(ht2);
- Hep3Vector[] trkatconver2 = hpstrack2.getPositionAtZMap(100, zAtConverter, 1);
+ Hep3Vector[] trkatconver2 = hpstrack2.getPositionAtZMap(100, BeamlineConstants.HARP_POSITION, 1);
@@ -722,9 +724,8 @@
- //-674.062;//mm - double X1 = slt1.getYZAtX(zAtConverter)[0]; - double Y1 = slt1.getYZAtX(zAtConverter)[1];
+ double X1 = slt1.getYZAtX(BeamlineConstants.HARP_POSITION)[0]; + double Y1 = slt1.getYZAtX(BeamlineConstants.HARP_POSITION)[1];
// boolean Y1top = false; // boolean X1plus = false;
@@ -752,8 +753,8 @@
// if (11 < X1 && X1 < 29) { // 24 < X1 && X1 < 36 +-6 // X1plus = true; // }
- double X2 = slt2.getYZAtX(zAtConverter)[0]; - double Y2 = slt2.getYZAtX(zAtConverter)[1];
+ double X2 = slt2.getYZAtX(BeamlineConstants.HARP_POSITION)[0]; + double Y2 = slt2.getYZAtX(BeamlineConstants.HARP_POSITION)[1];
// boolean Y2top = false; //for data // boolean X2plus = false;
@@ -893,7 +894,7 @@
// System.out.println("y'1 = " + my1); // System.out.println("y'2 = " + my2); double zi = (b2 - b1) / (m1 - m2);
- double zr = Math.abs(zi - zAtConverter);
+ double zr = Math.abs(zi - BeamlineConstants.HARP_POSITION);
double zs = 2 * zr / 100; // System.out.println("Closest Possible Z to Tracker"); // System.out.println(zi);
@@ -901,7 +902,7 @@
List<double[]> Trk1 = new ArrayList<double[]>(); for (int i = 0; i < 100; i++) {
- double z = zAtConverter - zr + (zs * i);
+ double z = BeamlineConstants.HARP_POSITION - zr + (zs * i);
double[] posvec = new double[3]; Hep3Vector[] trk1atz = hpstrack1.getPositionAtZMap(100, z, 1); posvec[0] = trk1atz[0].x();
@@ -979,7 +980,7 @@
List<double[]> Trk2 = new ArrayList<double[]>(); for (int i = 0; i < 100; i++) {
- double z = zAtConverter - zr + (zs * i);
+ double z = BeamlineConstants.HARP_POSITION - zr + (zs * i);
double[] posvec2 = new double[3]; Hep3Vector[] trk2atz = hpstrack2.getPositionAtZMap(100, z, 1); posvec2[0] = trk2atz[0].x();
@@ -1122,8 +1123,8 @@
// double distancex = Math.sqrt(Math.pow(postrk2[0] - postrk1[0], 2)); // double distancey = Math.sqrt(Math.pow(postrk2[1] - postrk1[1], 2)); aida.histogram1D("Distance btwn Trks @ Solution").fill(distance);
- double tt1 = (zAtConverter - zbar) / dd[2]; //target - double tt2 = (zAtConverter - zbar2) / d22[2]; //target
+ double tt1 = (BeamlineConstants.HARP_POSITION - zbar) / dd[2]; //target + double tt2 = (BeamlineConstants.HARP_POSITION - zbar2) / d22[2]; //target
double postrk1att[]; postrk1att = new double[3]; //target postrk1att[0] = xbar + (tt1) * dd[0];
@@ -1388,11 +1389,11 @@
HPSTrack hpstrack1 = new HPSTrack(ht1);
- Hep3Vector[] trkatconver1 = hpstrack1.getPositionAtZMap(100, zAtConverter, 1);
+ Hep3Vector[] trkatconver1 = hpstrack1.getPositionAtZMap(100, BeamlineConstants.HARP_POSITION, 1);
HPSTrack hpstrack2 = new HPSTrack(ht2);
- Hep3Vector[] trkatconver2 = hpstrack2.getPositionAtZMap(100, zAtConverter, 1);
+ Hep3Vector[] trkatconver2 = hpstrack2.getPositionAtZMap(100, BeamlineConstants.HARP_POSITION, 1);
HPSTrack hpstrack3 = new HPSTrack(ht3);
- Hep3Vector[] trkatconver3 = hpstrack3.getPositionAtZMap(100, zAtConverter, 1);
+ Hep3Vector[] trkatconver3 = hpstrack3.getPositionAtZMap(100, BeamlineConstants.HARP_POSITION, 1);
double Etrk1sq = (Math.pow(trkatconver1[1].x(), 2) + Math.pow(trkatconver1[1].y(), 2) + Math.pow(trkatconver1[1].z(), 2)); double Etrk2sq = (Math.pow(trkatconver2[1].x(), 2) + Math.pow(trkatconver2[1].y(), 2) + Math.pow(trkatconver2[1].z(), 2));
@@ -1427,7 +1428,7 @@
StraightLineTrack slt = converter.Convert(ht); HPSTrack hpstrack = new HPSTrack(ht);
- Hep3Vector[] trkatconver = hpstrack.getPositionAtZMap(100, zAtConverter, 1);
+ Hep3Vector[] trkatconver = hpstrack.getPositionAtZMap(100, BeamlineConstants.HARP_POSITION, 1);
aida.histogram1D("X (mm) @ Converter").fill(trkatconver[0].x()); // y tracker frame? aida.histogram1D("Y (mm) @ Converter").fill(trkatconver[0].y()); // z tracker frame?
@@ -1435,8 +1436,8 @@
// ExtendTrack extend = new ExtendTrack(); // extend.setTrack(stEle);
- aida.histogram1D("X (mm) @ Z=-60cm").fill(slt.getYZAtX(zAtConverter)[0]); //this is y in the tracker frame - aida.histogram1D("Y (mm) @ Z=-60cm").fill(slt.getYZAtX(zAtConverter)[1]); //this is z in the tracker frame
+ aida.histogram1D("X (mm) @ Z=-60cm").fill(slt.getYZAtX(BeamlineConstants.HARP_POSITION)[0]); //this is y in the tracker frame + aida.histogram1D("Y (mm) @ Z=-60cm").fill(slt.getYZAtX(BeamlineConstants.HARP_POSITION)[1]); //this is z in the tracker frame
aida.histogram1D("X (mm) @ Z=-150cm").fill(slt.getYZAtX(zAtColl)[0]); aida.histogram1D("Y (mm) @ Z=-150cm").fill(slt.getYZAtX(zAtColl)[1]);
diff -u -r1.2 -r1.3 --- ExamplePlotter.java 12 Mar 2013 19:40:11 -0000 1.2 +++ ExamplePlotter.java 14 Oct 2013 22:03:09 -0000 1.3 @@ -5,14 +5,17 @@
import hep.aida.IPlotter; import hep.aida.IPlotterStyle; import hep.physics.vec.Hep3Vector;
+
import java.io.IOException; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger;
+
import org.lcsim.event.EventHeader; import org.lcsim.event.Track; import org.lcsim.fit.helicaltrack.HelicalTrackFit; import org.lcsim.geometry.Detector;
+import org.lcsim.hps.event.BeamlineConstants;
import org.lcsim.hps.monitoring.AIDAFrame; import org.lcsim.hps.monitoring.Resettable; import org.lcsim.hps.recon.tracking.HPSTrack;
@@ -34,7 +37,6 @@
IPlotter plotter; IAnalysisFactory fac = aida.analysisFactory(); private String trackCollectionName = "MatchedTracks";
- private double zAtConverter = -674.062;//mm
private String outputPlots = null; protected void detectorChanged(Detector detector) {
@@ -82,7 +84,7 @@
HelixConverter converter = new HelixConverter(0); StraightLineTrack slt = converter.Convert(ht); HPSTrack hpstrack = new HPSTrack(ht);
- Hep3Vector[] trkatconver = hpstrack.getPositionAtZMap(100, zAtConverter, 1);
+ Hep3Vector[] trkatconver = hpstrack.getPositionAtZMap(100, BeamlineConstants.HARP_POSITION, 1);
aida.histogram1D("X (mm) @ Converter").fill(trkatconver[0].x()); // y tracker frame? aida.histogram1D("Y (mm) @ Converter").fill(trkatconver[0].y()); // z tracker frame?
diff -u -r1.5 -r1.6 --- TrackExtrapolationAnalysis.java 19 Sep 2012 22:56:46 -0000 1.5 +++ TrackExtrapolationAnalysis.java 14 Oct 2013 22:03:09 -0000 1.6 @@ -2,17 +2,20 @@
import hep.aida.*; import hep.physics.vec.Hep3Vector;
+
import java.io.FileNotFoundException; import java.io.IOException; import java.util.List; import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger;
+
import org.lcsim.event.EventHeader; import org.lcsim.event.Track; import org.lcsim.fit.helicaltrack.HelicalTrackFit; import org.lcsim.fit.helicaltrack.HelixUtils; import org.lcsim.geometry.Detector;
+import org.lcsim.hps.event.BeamlineConstants;
import org.lcsim.hps.monitoring.AIDAFrame; import org.lcsim.hps.recon.ecal.HPSEcalCluster; import org.lcsim.hps.recon.tracking.HPSTrack;
@@ -42,7 +45,6 @@
String ecalSubdetectorName = "Ecal"; String ecalCollectionName = "EcalClusters"; private Detector detector = null;
- private double zAtConverter = -674.062;//mm
IPlotter extrap0; IPlotter extrap1; IPlotter extrap2;
@@ -91,8 +93,8 @@
SvtTrackExtrapolator extend = new SvtTrackExtrapolator(); extend.setTrack(stEle); //Hep3Vector posAtEcal = extend.positionAtEcal();
- Hep3Vector posAtEcal = extend.getTrackPositionAtEcal(); - Hep3Vector extendAtConverter = extend.extrapolateTrack(zAtConverter);
+ Hep3Vector posAtEcal = SvtTrackExtrapolator.getTrackPositionAtEcal(trk); + Hep3Vector extendAtConverter = SvtTrackExtrapolator.extrapolateTrack(trk,BeamlineConstants.HARP_POSITION);
int isTop = -1;
@@ -106,7 +108,7 @@
HPSTrack hpstrk=null; hpstrk = new HPSTrack(ht); // Hep3Vector posAtConv = hpstrk.getPositionAtZ(zAtConverter, -101, -100, 0.1);
- Hep3Vector posAtConv = hpstrk.getPositionAtZMap(100,zAtConverter , 5.0)[0];
+ Hep3Vector posAtConv = hpstrk.getPositionAtZMap(100,BeamlineConstants.HARP_POSITION , 5.0)[0];
double useThisx=posAtConv.x(); double useThisy=posAtConv.y();
@@ -127,15 +129,15 @@
aida.histogram1D("Negative Y (mm) @ Converter").fill(useThisy); } // Hep3Vector posAtConvShort = hpstrk.getPositionAtZ(zAtConverter, -0.1, 0, 0.01);
- Hep3Vector posAtConvShort = hpstrk.getPositionAtZMap(0,zAtConverter, 5.0)[0];
+ Hep3Vector posAtConvShort = hpstrk.getPositionAtZMap(0,BeamlineConstants.HARP_POSITION, 5.0)[0];
aida.histogram2D("Extrapolated X: short vs long fringe").fill(posAtConvShort.x(), posAtConv.x()); aida.histogram2D("Extrapolated Y: short vs long fringe").fill(posAtConvShort.y(), posAtConv.y());
- aida.histogram2D("Extrapolated X: HPS vs SLT").fill(posAtConv.x(), slt.getYZAtX(zAtConverter)[0]); - aida.histogram2D("Extrapolated Y: HPS vs SLT").fill(posAtConv.y(), slt.getYZAtX(zAtConverter)[1]);
+ aida.histogram2D("Extrapolated X: HPS vs SLT").fill(posAtConv.x(), slt.getYZAtX(BeamlineConstants.HARP_POSITION)[0]); + aida.histogram2D("Extrapolated Y: HPS vs SLT").fill(posAtConv.y(), slt.getYZAtX(BeamlineConstants.HARP_POSITION)[1]);
- aida.histogram2D("Extrapolated X: Extend vs SLT").fill(extendAtConverter.y(), slt.getYZAtX(zAtConverter)[0]); - aida.histogram2D("Extrapolated Y: Extend vs SLT").fill(extendAtConverter.z(), slt.getYZAtX(zAtConverter)[1]);
+ aida.histogram2D("Extrapolated X: Extend vs SLT").fill(extendAtConverter.y(), slt.getYZAtX(BeamlineConstants.HARP_POSITION)[0]); + aida.histogram2D("Extrapolated Y: Extend vs SLT").fill(extendAtConverter.z(), slt.getYZAtX(BeamlineConstants.HARP_POSITION)[1]);
List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, ecalCollectionName); HPSEcalCluster clust = findClosestCluster(posAtEcal, clusters);
@@ -149,7 +151,7 @@
double zCluster=clust.getPosition()[2]; // double zCluster=1450.0; Hep3Vector posAtEcalHPS = hpstrk.getPositionAtZMap(750,zCluster, 5.0)[0];
- Hep3Vector posAtEcalExtend= extend.extrapolateTrack(zCluster);
+ Hep3Vector posAtEcalExtend= SvtTrackExtrapolator.extrapolateTrack(trk,zCluster);
aida.histogram2D("ECal Extrapolation X : HPS vs Extend").fill( posAtEcalExtend.y(),posAtEcalHPS.x()-posAtEcalExtend.y()); aida.histogram2D("ECal Extrapolation Y : HPS vs Extend").fill( posAtEcalExtend.z(),posAtEcalHPS.y()-posAtEcalExtend.z()); double dX = posAtEcalHPS.x() - clust.getPosition()[0];
diff -u -r1.2 -r1.3 --- TwoTrackAnalysis.java 20 Dec 2012 22:14:48 -0000 1.2 +++ TwoTrackAnalysis.java 14 Oct 2013 22:03:09 -0000 1.3 @@ -10,6 +10,7 @@
import hep.physics.matrix.SymmetricMatrix; import hep.physics.vec.BasicHep3Vector; import hep.physics.vec.Hep3Vector;
+
import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter;
@@ -17,12 +18,14 @@
import java.util.List; import java.util.logging.Level; import java.util.logging.Logger;
+
import org.lcsim.event.EventHeader; import org.lcsim.event.Track; import org.lcsim.event.TrackerHit; import org.lcsim.fit.helicaltrack.HelicalTrackFit; import org.lcsim.fit.helicaltrack.HelicalTrackHit; import org.lcsim.geometry.Detector;
+import org.lcsim.hps.event.BeamlineConstants;
import org.lcsim.hps.monitoring.AIDAFrame; import org.lcsim.hps.monitoring.Resettable; import org.lcsim.hps.recon.tracking.HPSTrack;
@@ -54,7 +57,6 @@
IPlotter plotter8; IAnalysisFactory fac = aida.analysisFactory(); private String trackCollectionName = "MatchedTracks";
- private double zAtConverter = -674.062;//mm
private String outputPlots = null; private boolean isMC = true; private boolean showPlots = false;
@@ -273,12 +275,12 @@
HelixConverter converter = new HelixConverter(0); StraightLineTrack slt = converter.Convert(ht); HPSTrack hpstrack = new HPSTrack(ht);
- Hep3Vector[] trkatconver = hpstrack.getPositionAtZMap(100, zAtConverter, 1);
+ Hep3Vector[] trkatconver = hpstrack.getPositionAtZMap(100, BeamlineConstants.HARP_POSITION, 1);
aida.histogram1D("X (mm) @ Converter using Map").fill(trkatconver[0].x()); // y tracker frame? aida.histogram1D("Y (mm) @ Converter using Map").fill(trkatconver[0].y()); // z tracker frame? if (slt != null) {
- aida.histogram1D("X (mm) @ Converter using SLT").fill(slt.getYZAtX(zAtConverter)[0]); // y tracker frame? - aida.histogram1D("Y (mm) @ Converter using SLT").fill(slt.getYZAtX(zAtConverter)[1]); // z tracker frame?
+ aida.histogram1D("X (mm) @ Converter using SLT").fill(slt.getYZAtX(BeamlineConstants.HARP_POSITION)[0]); // y tracker frame? + aida.histogram1D("Y (mm) @ Converter using SLT").fill(slt.getYZAtX(BeamlineConstants.HARP_POSITION)[1]); // z tracker frame?
} }
@@ -315,22 +317,22 @@
StraightLineTrack slt2 = converter2.Convert(ht2); // HPSTrack hpstrack1 = new HPSTrack(ht1);
-// Hep3Vector[] trkatconver1 = hpstrack1.getPositionAtZMap(100, zAtConverter, 1);
+// Hep3Vector[] trkatconver1 = hpstrack1.getPositionAtZMap(100, BeamlineConstants.HARP_POSITION, 1);
// HPSTrack hpstrack2 = new HPSTrack(ht2);
-// Hep3Vector[] trkatconver2 = hpstrack2.getPositionAtZMap(100, zAtConverter, 1);
+// Hep3Vector[] trkatconver2 = hpstrack2.getPositionAtZMap(100, BeamlineConstants.HARP_POSITION, 1);
HPSTrack hpstrack1 = new HPSTrack(ht1); Hep3Vector[] trkatconver1 = {new BasicHep3Vector(), new BasicHep3Vector(0, 0, 0)}; HPSTrack hpstrack2 = new HPSTrack(ht2); Hep3Vector[] trkatconver2 = {new BasicHep3Vector(), new BasicHep3Vector(0, 0, 0)};; if (isMC) {
- double[] t1 = slt1.getYZAtX(zAtConverter); - double[] t2 = slt2.getYZAtX(zAtConverter); - trkatconver1[0] = new BasicHep3Vector(t1[0], t1[1], zAtConverter); - trkatconver2[0] = new BasicHep3Vector(t2[0], t2[1], zAtConverter);
+ double[] t1 = slt1.getYZAtX(BeamlineConstants.HARP_POSITION); + double[] t2 = slt2.getYZAtX(BeamlineConstants.HARP_POSITION); + trkatconver1[0] = new BasicHep3Vector(t1[0], t1[1], BeamlineConstants.HARP_POSITION); + trkatconver2[0] = new BasicHep3Vector(t2[0], t2[1], BeamlineConstants.HARP_POSITION);
} else {
- trkatconver1 = hpstrack1.getPositionAtZMap(100, zAtConverter, 1); - trkatconver2 = hpstrack2.getPositionAtZMap(100, zAtConverter, 1);
+ trkatconver1 = hpstrack1.getPositionAtZMap(100, BeamlineConstants.HARP_POSITION, 1); + trkatconver2 = hpstrack2.getPositionAtZMap(100, BeamlineConstants.HARP_POSITION, 1);
} List<TrackerHit> hitsOnTrack1 = trk1.getTrackerHits(); int layer1;
@@ -417,10 +419,9 @@
double X1 = -99, Y1 = -99;
- //-674.062;//mm
if (slt1 != null) {
- X1 = slt1.getYZAtX(zAtConverter)[0]; - Y1 = slt1.getYZAtX(zAtConverter)[1];
+ X1 = slt1.getYZAtX(BeamlineConstants.HARP_POSITION)[0]; + Y1 = slt1.getYZAtX(BeamlineConstants.HARP_POSITION)[1];
} boolean X1cent = false;
@@ -435,8 +436,8 @@
double X2 = 99, Y2 = 99; if (slt2 != null) {
- X2 = slt2.getYZAtX(zAtConverter)[0]; - Y2 = slt2.getYZAtX(zAtConverter)[1];
+ X2 = slt2.getYZAtX(BeamlineConstants.HARP_POSITION)[0]; + Y2 = slt2.getYZAtX(BeamlineConstants.HARP_POSITION)[1];
} boolean X2cent = false;
@@ -493,7 +494,7 @@
} double zi = (b2 - b1) / (m1 - m2);
- double zr = Math.abs(zi - zAtConverter);
+ double zr = Math.abs(zi - BeamlineConstants.HARP_POSITION);
double zs = 2 * zr / 100; // System.out.println("Closest Possible Z to Tracker"); // System.out.println(zi);
@@ -501,7 +502,7 @@
List<double[]> Trk1 = new ArrayList<double[]>(); for (int i = 0; i < 100; i++) {
- double z = zAtConverter - zr + (zs * i);
+ double z = BeamlineConstants.HARP_POSITION - zr + (zs * i);
double[] posvec = new double[3]; if (isMC) { posvec[0] = slt1.getYZAtX(z)[0];
@@ -584,7 +585,7 @@
List<double[]> Trk2 = new ArrayList<double[]>(); for (int i = 0; i < 100; i++) {
- double z = zAtConverter - zr + (zs * i);
+ double z = BeamlineConstants.HARP_POSITION - zr + (zs * i);
double[] posvec2 = new double[3]; if (isMC) {
@@ -772,8 +773,8 @@
aida.histogram1D("ZVertex with y cut").fill(C.get(2, 0)); aida.histogram1D("Distance btwn Trks with y cut").fill(distance); }
- double tt1 = (zAtConverter - zbar) / dd[2]; //target - double tt2 = (zAtConverter - zbar2) / d22[2]; //target
+ double tt1 = (BeamlineConstants.HARP_POSITION - zbar) / dd[2]; //target + double tt2 = (BeamlineConstants.HARP_POSITION - zbar2) / d22[2]; //target
double postrk1att[]; postrk1att = new double[3]; //target postrk1att[0] = xbar + (tt1) * dd[0];
diff -u -r1.1 -r1.2 --- ReconstructedParticleChecker.java 11 Apr 2013 02:38:20 -0000 1.1 +++ ReconstructedParticleChecker.java 14 Oct 2013 22:03:10 -0000 1.2 @@ -26,12 +26,11 @@
/** * * @author Omar Moreno <[log in to unmask]>
- * @version $Id: ReconstructedParticleChecker.java,v 1.1 2013/04/11 02:38:20 omoreno Exp $
+ * @version $Id: ReconstructedParticleChecker.java,v 1.2 2013/10/14 22:03:10 phansson Exp $
* */ public class ReconstructedParticleChecker extends Driver {
- SvtTrackExtrapolator extrapolator = new SvtTrackExtrapolator();
private AIDA aida; private List<IPlotter> plotters = new ArrayList<IPlotter>();
@@ -104,10 +103,9 @@
this.printDebug("List of tracks is empty ... skipping"); continue; }
- extrapolator.setTrack(tracks.get(0));
Hep3Vector ecalPosition = new BasicHep3Vector(ecalClusters.get(0).getPosition());
- Hep3Vector trackPositionAtEcal = extrapolator.extrapolateTrack(ecalPosition.z());
+ Hep3Vector trackPositionAtEcal = SvtTrackExtrapolator.extrapolateTrack(tracks.get(0),ecalPosition.z());
xPositionResidual.fill(trackPositionAtEcal.x() - ecalPosition.x()); yPositionResidual.fill(trackPositionAtEcal.y() - ecalPosition.y()); zPositionResidual.fill(trackPositionAtEcal.z() - ecalPosition.z());
diff -u -r1.4 -r1.5 --- SvtHitEfficiency.java 17 Jan 2013 16:41:52 -0000 1.4 +++ SvtHitEfficiency.java 14 Oct 2013 22:03:10 -0000 1.5 @@ -49,8 +49,6 @@
private List<IHistogram2D> histos2D = new ArrayList<IHistogram2D>(); private List<IPlotter> plotters = new ArrayList<IPlotter>(); private Map<SiSensor, Map<Integer, Hep3Vector>> stripPositions = new HashMap<SiSensor, Map<Integer, Hep3Vector>>();
- TrackUtils trkUtil = new TrackUtils(); - SvtTrackExtrapolator extrapolator = new SvtTrackExtrapolator();
TrackerHitUtils trackerHitUtils = new TrackerHitUtils(); boolean debug = false;
@@ -262,7 +260,6 @@
for(Track track : tracks){
- trkUtil.setTrack(track);
ecalClusterTrackMatch = false; // Check if there is an Ecal cluster in the same detector volume as the track
@@ -308,7 +305,7 @@
// Find if the track is within the acceptance of the layer not being used in // the fit if(!isWithinAcceptance(track, layer)) continue;
- if(trkUtil.getZ0() > 0){
+ if(TrackUtils.getZ0(track) > 0){
numberOfTopTracks++; topTracksPerMissingLayer[arrayPosition]++; } else {
@@ -326,7 +323,7 @@
for(HelicalTrackHit stereoHit : stereoHits){ if(layer == stereoHit.Layer()){ if(debug) System.out.println(this.getClass().getSimpleName() + ": Track has five layers hit");
- if(trkUtil.getZ0() > 0){
+ if(TrackUtils.getZ0(track) > 0){
numberOfTopTracksWithHitOnMissingLayer++; topTracksWithHitOnMissingLayer[arrayPosition]++; } else {
@@ -354,7 +351,7 @@
} List<SiSensor> sensors = new ArrayList<SiSensor>();
- if(trkUtil.getZ0() > 0){
+ if(TrackUtils.getZ0(track) > 0){
sensors.add(SvtUtils.getInstance().getTopSensor(layer, 0)); sensors.add(SvtUtils.getInstance().getTopSensor(layer+1, 0)); } else {
@@ -386,13 +383,10 @@
private boolean isWithinAcceptance(Track track, int layer){
- SiSensor frontSensor = null; - SiSensor rearSensor = null;
- extrapolator.setTrack(track);
List<SiSensor> sensors = new ArrayList<SiSensor>();
- if(trkUtil.getZ0() > 0){
+ if(TrackUtils.getZ0(track) > 0){
sensors.add(SvtUtils.getInstance().getTopSensor(layer, 0)); sensors.add(SvtUtils.getInstance().getTopSensor(layer + 1, 0)); } else {
@@ -403,8 +397,8 @@
Hep3Vector frontSensorPos = sensors.get(0).getGeometry().getPosition(); Hep3Vector rearSensorPos = sensors.get(1).getGeometry().getPosition();
- this.frontTrackPos = extrapolator.extrapolateTrack(frontSensorPos.z()); - this.rearTrackPos = extrapolator.extrapolateTrack(rearSensorPos.z());
+ this.frontTrackPos = SvtTrackExtrapolator.extrapolateTrack(track,frontSensorPos.z()); + this.rearTrackPos = SvtTrackExtrapolator.extrapolateTrack(track,rearSensorPos.z());
if(this.sensorContainsTrack(frontTrackPos, sensors.get(0)) && this.sensorContainsTrack(rearTrackPos, sensors.get(1))){ // if(this.sensorContainsTrack(trackPos, sensor))
diff -u -r1.5 -r1.6 --- SvtQA.java 8 Jan 2013 08:11:32 -0000 1.5 +++ SvtQA.java 14 Oct 2013 22:03:10 -0000 1.6 @@ -49,13 +49,12 @@
* SVT Quality Assurance Driver * * @author Omar Moreno <[log in to unmask]>
- * @version $Id: SvtQA.java,v 1.5 2013/01/08 08:11:32 omoreno Exp $
+ * @version $Id: SvtQA.java,v 1.6 2013/10/14 22:03:10 phansson Exp $
*/ public class SvtQA extends Driver { private AIDA aida; private HPSShaperAnalyticFitAlgorithm shaperFitter = new HPSShaperAnalyticFitAlgorithm();
- TrackUtils trkUtils = new TrackUtils();
private List<AIDAFrame> frames = new ArrayList<AIDAFrame>(); private List<IHistogram1D> histos1D = new ArrayList<IHistogram1D>(); private List<IHistogram2D> histos2D = new ArrayList<IHistogram2D>();
@@ -661,7 +660,6 @@
// Loop over all tracks in the event for(Track track : tracks){
- trkUtils.setTrack(track);
double totalT0 = 0; double totalHits = 0;
@@ -687,9 +685,9 @@
for(HelicalTrackStrip hts : htc.getStrips()){ //SiSensor sensor = null;
- if(trkUtils.getZ0() > 0){
+ if(TrackUtils.getZ0(track) > 0){
sensor = SvtUtils.getInstance().getSensor(0, hts.layer() - 1);
- } else if(trkUtils.getZ0() < 0){
+ } else if(TrackUtils.getZ0(track) < 0){
sensor = SvtUtils.getInstance().getSensor(1, hts.layer() - 1); }
diff -u -r1.3 -r1.4 --- SvtTrackAnalysis.java 24 May 2012 17:08:18 -0000 1.3 +++ SvtTrackAnalysis.java 14 Oct 2013 22:03:10 -0000 1.4 @@ -6,6 +6,7 @@
import java.util.List; import java.util.Map;
+
//--- org.lcsim ---// import org.lcsim.event.EventHeader; import org.lcsim.event.RawTrackerHit;
@@ -16,10 +17,12 @@
import org.lcsim.util.Driver; import org.lcsim.util.aida.AIDA;
+
//--- hep ---// import hep.aida.IPlotter; import hep.physics.vec.Hep3Vector;
+
//--- hps-java ---// import org.lcsim.hps.monitoring.AIDAFrame; import org.lcsim.hps.monitoring.Resettable;
@@ -31,7 +34,7 @@
/** * * @author Omar Moreno
- * @version $Id: SvtTrackAnalysis.java,v 1.3 2012/05/24 17:08:18 omoreno Exp $
+ * @version $Id: SvtTrackAnalysis.java,v 1.4 2013/10/14 22:03:10 phansson Exp $
* */
@@ -43,7 +46,6 @@
private List<AIDAFrame> frames = new ArrayList<AIDAFrame>(); private List<IPlotter> plotters = new ArrayList<IPlotter>();
- private static final double HARP_POSITION = -674.062;
int npositive = 0; int nnegative = 0;
@@ -53,10 +55,8 @@
double nTwoTracks = 0; double nevents = 0;
- SvtTrackExtrapolator extrapolator;
public SvtTrackAnalysis(){
- extrapolator = new SvtTrackExtrapolator();
} protected void detectorChanged(Detector detector){
@@ -308,7 +308,6 @@
if(!event.hasCollection(Track.class, trackCollectionName)) return; List<SeedTrack> tracks = event.get(SeedTrack.class, trackCollectionName);
- TrackUtils trackUtil = new TrackUtils();
Map<Hep3Vector,SeedTrack> trackToEcalPosition = new HashMap<Hep3Vector, SeedTrack>(); Map<SeedTrack, HPSEcalCluster> trackToCluster = new HashMap<SeedTrack, HPSEcalCluster>();
@@ -316,11 +315,9 @@
for(SeedTrack track : tracks){ ntracks++;
- extrapolator.setTrack(track); - trackUtil.setTrack(track); - Hep3Vector positionEcal = extrapolator.getTrackPositionAtEcal();
+ Hep3Vector positionEcal = SvtTrackExtrapolator.getTrackPositionAtEcal(track);
System.out.println("Position at Ecal: " + positionEcal);
- Hep3Vector positionConverter = extrapolator.extrapolateTrack(-700);
+ Hep3Vector positionConverter = SvtTrackExtrapolator.extrapolateTrack(track,-700);
aida.histogram2D("Track Position at Ecal").fill(positionEcal.y(), positionEcal.z()); aida.histogram2D("Track Position at Harp").fill(positionConverter.y(), positionConverter.z());
@@ -329,25 +326,25 @@
else if(positionEcal.z() < 0) ntracksBottom++;
- aida.histogram1D("DOCA").fill(trackUtil.getDoca()); - aida.histogram1D("Z0").fill(trackUtil.getZ0()); - aida.histogram1D("phi0").fill(trackUtil.getPhi0()); - aida.histogram1D("R").fill((1/trackUtil.getR())*1000); - aida.histogram1D("Tan(Lambda)").fill(trackUtil.getTanLambda());
+ aida.histogram1D("DOCA").fill(TrackUtils.getDoca(track)); + aida.histogram1D("Z0").fill(TrackUtils.getZ0(track)); + aida.histogram1D("phi0").fill(TrackUtils.getPhi0(track)); + aida.histogram1D("R").fill((1/TrackUtils.getR(track))*1000); + aida.histogram1D("Tan(Lambda)").fill(TrackUtils.getTanLambda(track));
aida.histogram1D("Px").fill(track.getPX()); aida.histogram1D("Py").fill(track.getPY()); aida.histogram1D("Pz").fill(track.getPZ()); aida.histogram1D("ChiSquared").fill(track.getChi2());
- if(Math.signum(trackUtil.getR()) < 0){
+ if(Math.signum(TrackUtils.getR(track)) < 0){
aida.histogram2D("Track Position at Ecal: Curvature < 0").fill(positionEcal.y(), positionEcal.z()); aida.histogram2D("Track Position at Harp: Curvature < 0").fill(positionConverter.y(), positionConverter.z()); aida.histogram1D("Px: C < 0").fill(track.getPX()); aida.histogram1D("Py: C < 0").fill(track.getPY()); aida.histogram1D("Pz: C < 0").fill(track.getPZ()); nnegative++;
- } else if(Math.signum(trackUtil.getR()) > 0){
+ } else if(Math.signum(TrackUtils.getR(track)) > 0){
aida.histogram2D("Track Position at Ecal: Curvature > 0").fill(positionEcal.y(), positionEcal.z()); aida.histogram2D("Track Position at Harp: Curvature > 0").fill(positionConverter.y(), positionConverter.z()); aida.histogram1D("Px: C > 0").fill(track.getPX());
diff -u -r1.3 -r1.4 --- TestRunTrackReconEfficiency.java 1 May 2013 04:39:34 -0000 1.3 +++ TestRunTrackReconEfficiency.java 14 Oct 2013 22:03:10 -0000 1.4 @@ -29,17 +29,15 @@
* method. * * @author Omar Moreno <[log in to unmask]>
- * @version $Id: TestRunTrackReconEfficiency.java,v 1.3 2013/05/01 04:39:34 omoreno Exp $
+ * @version $Id: TestRunTrackReconEfficiency.java,v 1.4 2013/10/14 22:03:10 phansson Exp $
*/ public class TestRunTrackReconEfficiency extends Driver { private AIDA aida; private List<IPlotter> plotters = new ArrayList<IPlotter>(); private List<IHistogram1D> histo1D = new ArrayList<IHistogram1D>();
- TrackUtils trkUtil = new TrackUtils();
List<Track> topTracks; List<Track> botTracks;
- SvtTrackExtrapolator extrapolator = new SvtTrackExtrapolator();
int plotterIndex = 0;
@@ -341,9 +339,8 @@
double rMax = Double.MAX_VALUE; Track matchedTrack = null; for(Track track : tracks){
- extrapolator.setTrack(track);
- Hep3Vector trkPosAtShowerMax = extrapolator.extrapolateTrack(clusterPos.z());
+ Hep3Vector trkPosAtShowerMax = SvtTrackExtrapolator.extrapolateTrack(track,clusterPos.z());
if(Double.isNaN(trkPosAtShowerMax.x()) || Double.isNaN(trkPosAtShowerMax.y())){ this.printDebug("Invalid track position"); return false;
diff -u -r1.12 -r1.13 --- ECalGainDriver.java 25 Feb 2013 22:39:26 -0000 1.12 +++ ECalGainDriver.java 14 Oct 2013 22:03:10 -0000 1.13 @@ -272,9 +272,7 @@
BaseTrack trk = (BaseTrack) track; trk.setTrackParameters(trk.getTrackStates().get(0).getParameters(), -0.491); if (debug) {
- SvtTrackExtrapolator extender = new SvtTrackExtrapolator(); - extender.setTrack(trk); - if (extender.getTrackPositionAtEcal().y() > 0) {
+ if (SvtTrackExtrapolator.getTrackPositionAtEcal(trk).y() > 0) {
trTop++; } else { trBot++;
@@ -297,9 +295,7 @@
System.out.println(tracks.size() + " tracks in this event"); for (Track track : tracks) {
- SvtTrackExtrapolator extender = new SvtTrackExtrapolator(); - extender.setTrack(track); - System.out.println(extender.getTrackPositionAtEcal());
+ System.out.println(SvtTrackExtrapolator.getTrackPositionAtEcal(track));
} }
@@ -333,9 +329,7 @@
if (debug) { int[] pos = getCrystalPair(bestCl); System.out.format("Matched cluster: [%f\t%f\t%f], ix = %d, iy = %d\n", bestCl.getPosition()[2], bestCl.getPosition()[0], bestCl.getPosition()[1], pos[0], pos[1]);
- SvtTrackExtrapolator extender = new SvtTrackExtrapolator(); - extender.setTrack(bestTrk); - System.out.println("Matched track: " + extender.getTrackPositionAtEcal());
+ System.out.println("Matched track: " + SvtTrackExtrapolator.getTrackPositionAtEcal(bestTrk));
System.out.println("Distance: " + minDist); } processMatchedPair(event, bestCl, bestTrk);
@@ -376,7 +370,7 @@
matchBot++; }
- double P = bestTrk.getPX() * 1000;
+ double P = bestTrk.getTrackStates().get(0).getMomentum()[0] * 1000;
double E = bestCl.getEnergy(); double Eoverp = E / P; double PoverE = P / E;
diff -u -r1.8 -r1.9 --- MultScatAnalysis.java 25 Feb 2013 22:39:26 -0000 1.8 +++ MultScatAnalysis.java 14 Oct 2013 22:03:10 -0000 1.9 @@ -1453,10 +1453,7 @@
if(side==0) aida.histogram1D("Top track Chi2").fill(trk.getChi2()); else aida.histogram1D("Bottom track Chi2").fill(trk.getChi2());
- SvtTrackExtrapolator ext = new SvtTrackExtrapolator(); - SeedTrack st = (SeedTrack) trk; - ext.setTrack(st); - Hep3Vector posAtEcal = ext.getTrackPositionAtEcal();
+ Hep3Vector posAtEcal = SvtTrackExtrapolator.getTrackPositionAtEcal(trk);
aida.histogram2D("Track Pz vs X").fill(posAtEcal.y(),trk.getPX()*1000);
@@ -1475,7 +1472,7 @@
}
- Hep3Vector posAtTarget = ext.extrapolateTrack(-670.);
+ Hep3Vector posAtTarget = SvtTrackExtrapolator.extrapolateTrack(trk,-670.);
for(int imom=0;imom!=2;++imom) {
@@ -1486,10 +1483,10 @@
aida.histogram1D("Track " + str + "X @ -67cm").fill(posAtTarget.y()); aida.histogram1D("Track " + str + "Y @ -67cm").fill(posAtTarget.z());
- Hep3Vector extPosEntr = ext.extrapolateTrack(-0.0001);
+ Hep3Vector extPosEntr = SvtTrackExtrapolator.extrapolateTrack(trk,-0.0001);
aida.histogram1D("Track " + str + "X @ 0cm").fill(extPosEntr.y()); aida.histogram1D("Track " + str + "Y @ 0cm").fill(extPosEntr.z());
- Hep3Vector extPosColl = ext.extrapolateTrack(-1500.0);
+ Hep3Vector extPosColl = SvtTrackExtrapolator.extrapolateTrack(trk,-1500.0);
aida.histogram1D("Track " + str + "X @ -150cm").fill(extPosColl.y()); aida.histogram1D("Track " + str + "Y @ -150cm").fill(extPosColl.z()); //
@@ -1922,10 +1919,7 @@
- SvtTrackExtrapolator exttrk = new SvtTrackExtrapolator(); - SeedTrack st = (SeedTrack) trkMatchTool.getMatchedTrack(); - exttrk.setTrack(st); - Hep3Vector posAtTarget = exttrk.extrapolateTrack(-670);
+ Hep3Vector posAtTarget = SvtTrackExtrapolator.extrapolateTrack(trkMatchTool.getMatchedTrack(),-670);
diff -u -r1.6 -r1.7 --- TrigRateDriver.java 25 Feb 2013 22:39:26 -0000 1.6 +++ TrigRateDriver.java 14 Oct 2013 22:03:10 -0000 1.7 @@ -6,11 +6,13 @@
import hep.aida.*; import hep.aida.ref.plotter.PlotterRegion;
+
import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger;
+
import org.lcsim.detector.identifier.ExpandedIdentifier; import org.lcsim.detector.identifier.IExpandedIdentifier; import org.lcsim.detector.identifier.IIdentifier;
@@ -21,6 +23,7 @@
import org.lcsim.geometry.Detector; import org.lcsim.geometry.IDDecoder; import org.lcsim.geometry.Subdetector;
+import org.lcsim.hps.event.BeamlineConstants;
import org.lcsim.hps.monitoring.AIDAFrame; import org.lcsim.hps.recon.ecal.HPSEcalCluster; import org.lcsim.hps.recon.ecal.EcalConditions;
@@ -40,7 +43,6 @@
protected Subdetector ecal; private String ecalName = "Ecal";
- private double targetZPosition = -674; //mm
private boolean hideFrame = true; private boolean simTrigger = false;
@@ -319,7 +321,7 @@
int iside = clusterPosIdx[1]>0 ? 0 : 1; int hitY = clusterPosIdx[1]>0 ? clusterPosIdx[1] : (-1*clusterPosIdx[1]);
- double hitTheta = Math.atan(clusterPosY/(clusterPosZ-targetZPosition));
+ double hitTheta = Math.atan(clusterPosY/(clusterPosZ-BeamlineConstants.HARP_POSITION));
//x-check if(hitTheta<0) { if(!"bottom".equals(side)) {
diff -u -r1.22 -r1.23 --- TwoTrackAnlysis.java 11 Oct 2013 23:14:28 -0000 1.22 +++ TwoTrackAnlysis.java 14 Oct 2013 22:03:10 -0000 1.23 @@ -547,8 +547,7 @@
} //Track at converter
- this.vertexer.extrapolator().setTrack(trk1); - Hep3Vector posAtConverter = this.vertexer.extrapolator().extrapolateTrack(BeamlineConstants.HARP_POSITION);
+ Hep3Vector posAtConverter = SvtTrackExtrapolator.extrapolateTrack(trk1,BeamlineConstants.HARP_POSITION);
if(posAtConverter!=null) printWriter.format("%5.5f %5.5f ", posAtConverter.x(),posAtConverter.y()); //note rotation from JLab->tracking else printWriter.format("%5.5f %5.5f ", -9999999.9,-9999999.9); HPSTrack hpstrk1 = new HPSTrack(helix1);
@@ -556,14 +555,14 @@
if (posAtConverterFringe1!=null) printWriter.format("%5.5f %5.5f %5.5f ", posAtConverterFringe1.z(),posAtConverterFringe1.x(),posAtConverterFringe1.y()); //note rotation from JLab->tracking else printWriter.format("%5.5f %5.5f %5.5f ", -9999999.9,-9999999.9,-9999999.9);
- Hep3Vector posAtNomTarget1 = this.vertexer.extrapolator().extrapolateTrack(0);
+ Hep3Vector posAtNomTarget1 = SvtTrackExtrapolator.extrapolateTrack(trk1,0);
if(posAtNomTarget1!=null) printWriter.format("%5.5f %5.5f ", posAtNomTarget1.x(),posAtNomTarget1.y()); //note rotation from JLab->tracking else printWriter.format("%5.5f %5.5f ", -9999999.9,-9999999.9); Hep3Vector posAtNomTargetFringe1 = hpstrk1.getPositionAtZMap(100., 0.0, 5.0)[0]; if (posAtNomTargetFringe1!=null) printWriter.format("%5.5f %5.5f %5.5f ", posAtNomTargetFringe1.z(),posAtNomTargetFringe1.x(),posAtNomTargetFringe1.y()); //note rotation from JLab->tracking else printWriter.format("%5.5f %5.5f %5.5f ", -9999999.9,-9999999.9,-9999999.9);
- Hep3Vector posAtECal = this.vertexer.extrapolator().extrapolateTrack(BeamlineConstants.ECAL_FACE);
+ Hep3Vector posAtECal = SvtTrackExtrapolator.extrapolateTrack(trk1,BeamlineConstants.ECAL_FACE);
if(posAtECal!=null && !Double.isNaN(posAtECal.x()) && !Double.isNaN(posAtECal.y())) { printWriter.format("%5.5f %5.5f ",posAtECal.x(),posAtECal.y()); //note rotation from JLab->tracking }
@@ -1012,8 +1011,7 @@
if(useFringe) { pos1 = hpstrk1.getPositionAtZMap(100.0, zVal, 5.0)[0]; } else {
- this.vertexer.extrapolator().setTrack(trk1); - pos1 = this.vertexer.extrapolator().extrapolateTrack(zVal);
+ pos1 = SvtTrackExtrapolator.extrapolateTrack(trk1,zVal);
} //System.out.printf("%s: Position1 at edge of fringe %s\n",this.getClass().getSimpleName(),pos1.toString()); Helix traj = (Helix)hpstrk1.getTrajectory();
Use REPLY-ALL to reply to list
To unsubscribe from the LCD-CVS list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=LCD-CVS&A=1