Commit in lcsim/sandbox/RobKutschke/TRFTests/v1 on MAIN
VTUtil.java+21-21.3 -> 1.4
Add charge and energy accessors.

lcsim/sandbox/RobKutschke/TRFTests/v1
VTUtil.java 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- VTUtil.java	11 Oct 2007 14:53:03 -0000	1.3
+++ VTUtil.java	17 Oct 2007 18:18:04 -0000	1.4
@@ -13,15 +13,18 @@
  * Still under construction.
  *
  *@author $Author: kutschke $
- *@version $Id: VTUtil.java,v 1.3 2007/10/11 14:53:03 kutschke Exp $
+ *@version $Id: VTUtil.java,v 1.4 2007/10/17 18:18:04 kutschke Exp $
  *
- * Date $Date: 2007/10/11 14:53:03 $
+ * Date $Date: 2007/10/17 18:18:04 $
  *
  */
 
 
 public class VTUtil {
 
+    // Matches the precision in the TRF eloss code.
+    private double m_pi   = 0.13957;
+
     public VTUtil( VTrack v){
 	this.v    = v;
 	Surface s = v.surface();
@@ -59,6 +62,14 @@
 	return p;
     }
 
+    public double e(){
+	return e(m_pi);
+    }
+
+    public double e(double m){
+	return Math.sqrt( p()*p() +m*m );
+    }
+
     public Hep3Vector asHep3Vector(){
 	double px = pt*Math.cos(phi);
 	double py = pt*Math.sin(phi);
@@ -73,6 +84,9 @@
     public double sinth(){
 	return sinth;
     }
+    public double q(){
+	return q;
+    }
 
     private VTrack v = null;
     private double costh;
@@ -82,6 +96,7 @@
     private double p;
     private double phi;
     private double phi0;
+    private double q;
 
     private void DoCylinder(){
 	    cotth = v.vector(SurfCylinder.ITLM);
@@ -90,6 +105,7 @@
 	    pt    = 1./Math.abs(v.vector(SurfCylinder.IQPT));
 	    p     = pt/sinth;
 	    phi   = v.vector(SurfCylinder.IPHI)+v.vector(SurfCylinder.IALF);
+	    q = Math.signum(v.vector(SurfCylinder.IQPT));
     }
     private void DoNull(){
 	cotth = 0.;
@@ -98,6 +114,7 @@
 	pt    = 0.;
 	p     = 0.;
 	phi   = 0.;
+	q     = 1.;
     }
 
     private void DoZPlane(){
@@ -116,6 +133,8 @@
 	pt    = p*sinth;
 	phi   = Math.atan2( ypr, xpr );
 
+	q = Math.signum(v.vector(SurfZPlane.IQP));
+
     }
 
 
CVSspam 0.2.8