Print

Print


Commit in lcsim/src/org/lcsim/recon/pfa/identifier on MAIN
LocalHelixExtrapolator.java+5-31.12 -> 1.13
MJC: Fix mistake in previous commit

lcsim/src/org/lcsim/recon/pfa/identifier
LocalHelixExtrapolator.java 1.12 -> 1.13
diff -u -r1.12 -r1.13
--- LocalHelixExtrapolator.java	15 Aug 2008 16:55:30 -0000	1.12
+++ LocalHelixExtrapolator.java	15 Aug 2008 17:12:54 -0000	1.13
@@ -70,6 +70,7 @@
     double m_track_phi1 = 0.0;
     boolean m_track_dphi_negative = false;
     EventHeader m_event = null;
+    int m_trackCharge = 0;
 
     boolean _debug = false;
     boolean m_debugChargeFlip = false;
@@ -325,6 +326,7 @@
 	m_track_phi0 = phi0;
 	m_track_phi1 = phi1;
 	m_track_z0 = z0;
+	m_trackCharge = tr.getCharge();
 	if (m_endcapValid) {
 	    m_trackPoint_z = found_endcap_z;
 	    m_trackPoint_phi = found_endcap_phi;
@@ -409,7 +411,7 @@
     /** Assumes extrapolation has already been done. */
     public Hep3Vector getTangent() {
 	double dphi = 0.01;
-	if (tr.getCharge() > 0) { dphi = -0.01; }
+	if (m_trackCharge > 0) { dphi = -0.01; }
 	double dx = m_trackParam_radius * ( Math.cos(m_trackPoint_phi+dphi) - Math.cos(m_trackPoint_phi) );
 	double dy = m_trackParam_radius * ( Math.sin(m_trackPoint_phi+dphi) - Math.sin(m_trackPoint_phi) );
 	double dz = m_trackParam_dz_by_dphi * dphi;
@@ -437,7 +439,7 @@
             System.out.println("R from p/0.3B=  " + r + " magnetic field= " + zField);
         }
 
-        if(m_track_dphi_negative && tr.getCharge() < 0) {
+        if(m_track_dphi_negative && m_trackCharge < 0) {
 	    if (m_debugChargeFlip || _debug) {
 		System.out.println("Error: rotational direction is wrong");
 		System.out.println("Charge is negative but it is determined to turn clockwise");
@@ -445,7 +447,7 @@
 	}
                                                                                                                               
         double dphi = 0.01;
-	if (tr.getCharge() > 0) { dphi = -0.01; }
+	if (m_trackCharge > 0) { dphi = -0.01; }
         double dx = m_trackParam_radius * ( Math.cos(phi0+dphi) - Math.cos(phi0) );
         double dy = m_trackParam_radius * ( Math.sin(phi0+dphi) - Math.sin(phi0) );
         double dz = m_trackParam_dz_by_dphi * dphi;
CVSspam 0.2.8