lcsim/sandbox/RobKutschke/TRFTests/v1
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));
+
}