Author: [log in to unmask]
Date: Tue May 24 17:45:30 2016
New Revision: 4375
Log:
add methods for using track states
Modified:
java/trunk/recon/src/main/java/org/hps/recon/vertexing/BilliorTrack.java
java/trunk/tracking/src/main/java/org/hps/recon/tracking/TrackUtils.java
Modified: java/trunk/recon/src/main/java/org/hps/recon/vertexing/BilliorTrack.java
=============================================================================
--- java/trunk/recon/src/main/java/org/hps/recon/vertexing/BilliorTrack.java (original)
+++ java/trunk/recon/src/main/java/org/hps/recon/vertexing/BilliorTrack.java Tue May 24 17:45:30 2016
@@ -5,7 +5,6 @@
*
* $Id: BilliorTrack.java,v 1.1 2011/06/01 17:10:13 jeremy Exp $
*/
-
import hep.physics.matrix.BasicMatrix;
import hep.physics.matrix.Matrix;
@@ -21,8 +20,9 @@
import org.lcsim.fit.helicaltrack.MultipleScatter;
/**
- * Converts from HelicalTrackFit formalism to formalism in Billior paper
- * See (e.g.) Billior, Qian NIM A311, 1992
+ * Converts from HelicalTrackFit formalism to formalism in Billior paper See
+ * (e.g.) Billior, Qian NIM A311, 1992
+ *
* @author Matt Graham
* @version 1.0
*/
@@ -53,8 +53,8 @@
private double[] _chisq = new double[2];
private double _nhchisq;
private int[] _ndf = new int[2];
- private double[] _parameters;
- private Matrix _covmatrix;
+ private final double[] _parameters;
+ private final Matrix _covmatrix;
private Map<HelicalTrackHit, Double> _smap;
private Map<HelicalTrackHit, MultipleScatter> _msmap;
/**
@@ -83,19 +83,31 @@
_msmap = helix.ScatterMap();
}
- public BilliorTrack(Track track) {
- TrackState ts=track.getTrackStates().get(0);
+ public BilliorTrack(Track track) {
+ TrackState ts = track.getTrackStates().get(0);
double[] helixparameters = ts.getParameters();
_parameters = convertParsToBillior(helixparameters);
- SymmetricMatrix helixcovmatrix = new SymmetricMatrix(5,ts.getCovMatrix(),true);
+ SymmetricMatrix helixcovmatrix = new SymmetricMatrix(5, ts.getCovMatrix(), true);
_covmatrix = convertCovarianceToBillior(helixcovmatrix, helixparameters);
- _chisq[0]= track.getChi2();
+ _chisq[0] = track.getChi2();
_nhchisq = 0.;
_ndf[0] = track.getNDF();
// _smap = helix.PathMap();
// _msmap = helix.ScatterMap();
}
-
+
+ public BilliorTrack(TrackState ts, double chisq, int ndf) {
+ double[] helixparameters = ts.getParameters();
+ _parameters = convertParsToBillior(helixparameters);
+ SymmetricMatrix helixcovmatrix = new SymmetricMatrix(5, ts.getCovMatrix(), true);
+ _covmatrix = convertCovarianceToBillior(helixcovmatrix, helixparameters);
+ _chisq[0] = chisq;
+ _nhchisq = 0.;
+ _ndf[0] = ndf;
+// _smap = helix.PathMap();
+// _msmap = helix.ScatterMap();
+ }
+
private double[] convertParsToBillior(double[] helixpars) {
double[] billior = {0, 0, 0, 0, 0};
billior[0] = -helixpars[0];
@@ -124,6 +136,7 @@
/**
* Return the helix parameters as an array.
+ *
* @return helix parameters
*/
public double[] parameters() {
@@ -132,6 +145,7 @@
/**
* Return the signed helix DCA.
+ *
* @return DCA
*/
public double eps() {
@@ -140,6 +154,7 @@
/**
* Return the azimuthal direction at the DCA
+ *
* @return azimuthal direction
*/
public double phi0() {
@@ -148,6 +163,7 @@
/**
* Return the signed helix curvature.
+ *
* @return helix curvature
*/
public double curvature() {
@@ -156,6 +172,7 @@
/**
* Return the z coordinate for the DCA.
+ *
* @return z coordinate
*/
public double z0() {
@@ -164,6 +181,7 @@
/**
* Return the helix slope tan(lambda).
+ *
* @return slope
*/
public double theta() {
@@ -172,6 +190,7 @@
/**
* Return the helix covariance matrix.
+ *
* @return covariance matrix
*/
public Matrix covariance() {
@@ -179,8 +198,9 @@
}
/**
- * Return the helix fit chisqs. chisq[0] is for the circle fit, chisq[1] is
+ * Return the helix fit chisqs. chisq[0] is for the circle fit, chisq[1] is
* for the s-z fit.
+ *
* @return chisq array
*/
public double[] chisq() {
@@ -189,15 +209,16 @@
/**
* Set the chisq for non-holonomic constraints (e.g., pT > xx).
+ *
* @param nhchisq non-holonomic constraint chisq
*/
public void setnhchisq(double nhchisq) {
_nhchisq = nhchisq;
- return;
}
/**
* Return the non-holenomic constraint chisq.
+ *
* @return non-holenomic constraint chisq
*/
public double nhchisq() {
@@ -206,6 +227,7 @@
/**
* Return the total chisq: chisq[0] + chisq[1] + nhchisq.
+ *
* @return total chisq
*/
public double chisqtot() {
@@ -213,8 +235,9 @@
}
/**
- * Return the degrees of freedom for the fits. ndf[0] is for the circle fit
+ * Return the degrees of freedom for the fits. ndf[0] is for the circle fit
* and ndf[1] is for the s-z fit.
+ *
* @return dof array
*/
public int[] ndf() {
@@ -223,6 +246,7 @@
/**
* Return cos(theta).
+ *
* @return cos(theta)
*/
public double cth() {
@@ -231,6 +255,7 @@
/**
* Return sin(theta).
+ *
* @return sin(theta)
*/
public double sth() {
@@ -239,6 +264,7 @@
/**
* Return transverse momentum pT for the helix.
+ *
* @param bfield magnetic field
* @return pT
*/
@@ -248,6 +274,7 @@
/**
* Return the momentum.
+ *
* @param bfield magnetic field
* @return momentum
*/
@@ -257,6 +284,7 @@
/**
* Return the radius of curvature for the helix.
+ *
* @return radius of curvature
*/
public double R() {
@@ -265,6 +293,7 @@
/**
* Return the x coordinate of the helix center/axis.
+ *
* @return x coordinate of the helix axis
*/
public double xc() {
@@ -273,6 +302,7 @@
/**
* Return the y coordinate of the helix center/axis.
+ *
* @return y coordinate of the helix axis
*/
public double yc() {
@@ -289,6 +319,7 @@
/**
* Return a map of x-y path lengths for the hits used in the helix fit.
+ *
* @return path length map
*/
public Map<HelicalTrackHit, Double> PathMap() {
@@ -297,6 +328,7 @@
/**
* Return a map of the MultipleScatter objects supplied for the fit.
+ *
* @return map of multiple scattering uncertainties
*/
public Map<HelicalTrackHit, MultipleScatter> ScatterMap() {
@@ -305,6 +337,7 @@
/**
* Return the error for curvature, omega
+ *
* @return a double curveerror
*/
public double getCurveError() {
@@ -314,6 +347,7 @@
/**
* Return the error for slope dz/ds, tan(lambda)
+ *
* @return double a slopeerror
*/
public double getThetaError() {
@@ -323,6 +357,7 @@
/**
* Return the error for distance of closest approach, dca
+ *
* @return a double dcaerror
*/
public double getEpsError() {
@@ -331,7 +366,9 @@
}
/**
- * Return the error for phi0, azimuthal angle of the momentum at the DCA ref. point
+ * Return the error for phi0, azimuthal angle of the momentum at the DCA
+ * ref. point
+ *
* @return a double phi0error
*/
public double getPhi0Error() {
@@ -341,6 +378,7 @@
/**
* Return the error for z0, the z position of the particle at the DCA
+ *
* @return a double z0error
*/
public double getZ0Error() {
@@ -348,9 +386,9 @@
return z0error;
}
- /**
- * Returns the transpose of the matrix (inexplicably not handled by
- * the matrix package for non-square matrices).
+ /**
+ * Returns the transpose of the matrix (inexplicably not handled by the
+ * matrix package for non-square matrices).
*
* @param m matrix to be transposed
* @return transposed matrix
@@ -367,6 +405,7 @@
/**
* Create a string with the helix parameters.
+ *
* @return string containing the helix parameters
*/
public String toString() {
@@ -378,4 +417,4 @@
sb.append("theta= " + theta() + "\n");
return sb.toString();
}
-}
+}
Modified: java/trunk/tracking/src/main/java/org/hps/recon/tracking/TrackUtils.java
=============================================================================
--- java/trunk/tracking/src/main/java/org/hps/recon/tracking/TrackUtils.java (original)
+++ java/trunk/tracking/src/main/java/org/hps/recon/tracking/TrackUtils.java Tue May 24 17:45:30 2016
@@ -338,6 +338,10 @@
* @return position at ECAL
*/
public static Hep3Vector getTrackPositionAtEcal(Track track) {
+ return extrapolateTrack(track, BeamlineConstants.ECAL_FACE);
+ }
+
+ public static Hep3Vector getTrackPositionAtEcal(TrackState track) {
return extrapolateTrack(track, BeamlineConstants.ECAL_FACE);
}
|