Print

Print


Author: [log in to unmask]
Date: Tue May 26 16:42:40 2015
New Revision: 3027

Log:
Fix B-field sign

Modified:
    java/trunk/tracking/src/main/java/org/hps/recon/tracking/TrackUtils.java

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 26 16:42:40 2015
@@ -465,6 +465,11 @@
         return residuals;
     }
 
+    public static Map<String, Double> calculateLocalTrackHitResiduals(Track track, HelicalTrackHit hth, HelicalTrackStrip strip, double bFieldInZ) {
+        HelicalTrackStripGbl stripGbl = new HelicalTrackStripGbl(strip, true);
+        return calculateLocalTrackHitResiduals(track, hth, stripGbl, bFieldInZ);
+    }
+    
     public static Map<String, Double> calculateLocalTrackHitResiduals(Track track, HelicalTrackHit hth, HelicalTrackStripGbl strip, double bFieldInZ) {
 
         SeedTrack st = (SeedTrack) track;
@@ -476,19 +481,32 @@
         return calculateLocalTrackHitResiduals(_trk, strip, msdrdphi, msdz, bFieldInZ);
     }
 
+    public static Map<String, Double> calculateLocalTrackHitResiduals(HelicalTrackFit _trk, HelicalTrackStrip strip, double bFieldInZ) {
+        HelicalTrackStripGbl stripGbl = new HelicalTrackStripGbl(strip, true);
+        return calculateLocalTrackHitResiduals( _trk, stripGbl, 0.0, 0.0, bFieldInZ);
+    }
+    
+    
+    
     public static Map<String, Double> calculateLocalTrackHitResiduals(HelicalTrackFit _trk, HelicalTrackStripGbl strip, double msdrdphi, double msdz, double bFieldInZ) {
 
         boolean debug = false;
         boolean includeMS = true;
 
+        if (debug) {
+            System.out.printf("calculateLocalTrackHitResiduals: for strip on sensor %s \n", 
+                    ((RawTrackerHit)strip.getStrip().rawhits().get(0)).getDetectorElement().getName());
+        }
+        
         Hep3Vector u = strip.u();
         Hep3Vector corigin = strip.origin();
 
         // Find interception with plane that the strips belongs to
-        Hep3Vector trkpos = TrackUtils.getHelixPlaneIntercept(_trk, strip, bFieldInZ);
+        Hep3Vector trkpos = TrackUtils.getHelixPlaneIntercept(_trk, strip, Math.abs(bFieldInZ));
 
         if (debug) {
-            System.out.printf("calculateLocalTrackHitResiduals: found interception point at %s \n", trkpos.toString());
+            System.out.printf("calculateLocalTrackHitResiduals: strip u %s origin %s \n", u.toString(),corigin.toString());
+            System.out.printf("calculateLocalTrackHitResiduals: found interception point with sensor at %s \n", trkpos.toString());
         }
 
         if (Double.isNaN(trkpos.x()) || Double.isNaN(trkpos.y()) || Double.isNaN(trkpos.z())) {
@@ -523,6 +541,12 @@
         double wmeas = 0;
         double wError = 10.0 / Math.sqrt(12); // 0.001;
 
+        
+        if (debug) {
+            System.out.printf("calculateLocalTrackHitResiduals: vdiffTrk %s vdiff %s umc %f umeas %f du %f\n", 
+                    vdiffTrk.toString(),vdiff.toString(),umc, umeas, umeas-umc);
+        }
+        
         Map<String, Double> res = new HashMap<String, Double>();
         res.put("ures", umeas - umc);
         res.put("ureserr", includeMS ? Math.sqrt(uError * uError + msuError * msuError) : uError);