20 modified files
hps-java/src/main/java/org/lcsim/hps/monitoring/svt
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));
hps-java/src/main/java/org/lcsim/hps/recon/particle
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
hps-java/src/main/java/org/lcsim/hps/recon/tracking
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);
hps-java/src/main/java/org/lcsim/hps/recon/tracking
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;
hps-java/src/main/java/org/lcsim/hps/recon/tracking
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;
}
-
}
+
+
hps-java/src/main/java/org/lcsim/hps/recon/tracking/gbl
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);
}
hps-java/src/main/java/org/lcsim/hps/recon/vertexing
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
hps-java/src/main/java/org/lcsim/hps/users/mgraham
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]);
hps-java/src/main/java/org/lcsim/hps/users/mgraham
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?
hps-java/src/main/java/org/lcsim/hps/users/mgraham
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];
hps-java/src/main/java/org/lcsim/hps/users/mgraham
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];
hps-java/src/main/java/org/lcsim/hps/users/omoreno
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());
hps-java/src/main/java/org/lcsim/hps/users/omoreno
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))
hps-java/src/main/java/org/lcsim/hps/users/omoreno
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);
}
hps-java/src/main/java/org/lcsim/hps/users/omoreno
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());
hps-java/src/main/java/org/lcsim/hps/users/omoreno
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;
hps-java/src/main/java/org/lcsim/hps/users/phansson
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;
hps-java/src/main/java/org/lcsim/hps/users/phansson
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);
hps-java/src/main/java/org/lcsim/hps/users/phansson
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)) {
hps-java/src/main/java/org/lcsim/hps/users/phansson
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();
CVSspam 0.2.12