lcsim/src/org/lcsim/recon/pfa/identifier
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;