Print

Print


Author: [log in to unmask]
Date: Fri Jul 24 18:16:57 2015
New Revision: 3281

Log:
uncomment

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

Modified: java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/GBLOutput.java
 =============================================================================
--- java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/GBLOutput.java	(original)
+++ java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/GBLOutput.java	Fri Jul 24 18:16:57 2015
@@ -1,7 +1,3 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
 package org.hps.recon.tracking.gbl;
 import hep.physics.matrix.BasicMatrix;
 import hep.physics.matrix.Matrix;
@@ -12,12 +8,10 @@
 import hep.physics.vec.Hep3Matrix;
 import hep.physics.vec.Hep3Vector;
 import hep.physics.vec.VecOp;
-
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-
 import org.hps.recon.tracking.CoordinateTransformations;
 import org.hps.recon.tracking.MaterialSupervisor;
 import org.hps.recon.tracking.MaterialSupervisor.DetectorPlane;
@@ -29,7 +23,6 @@
 import org.hps.recon.tracking.TrackerHitUtils;
 import org.lcsim.constants.Constants;
 import org.lcsim.detector.IDetectorElement;
-import org.lcsim.detector.ITransform3D;
 import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.event.MCParticle;
 import org.lcsim.event.RawTrackerHit;
@@ -59,10 +52,10 @@
     private int _debug = 0;
     private GBLFileIO textFile = null;
     private Hep3Vector _B;
-	private TrackerHitUtils _trackerHitUtils = new TrackerHitUtils();
-    private MaterialSupervisor _materialmanager;
-    private MultipleScattering _scattering;
-    private double _beamEnergy = 1.1; //GeV
+	private final TrackerHitUtils _trackerHitUtils = new TrackerHitUtils();
+    private final MaterialSupervisor _materialmanager;
+    private final MultipleScattering _scattering;
+    private final double _beamEnergy = 1.1; //GeV
 	private boolean AprimeEvent = false; // do extra checks
 	private boolean hasXPlanes = false;
     
@@ -87,7 +80,7 @@
 
     public void setDebug(int debug) {
         _debug = debug;
-        _scattering.setDebug(_debug>0?true:false);
+        _scattering.setDebug((_debug>0));
     }
     public void buildModel(Detector detector) {
         _materialmanager.buildModel(detector);
@@ -433,7 +426,7 @@
                 
                 //GBLDATA
                 stripData.setMeas(strip.umeas());
-                //stripData.setTrackPos(trkpos_meas);
+                stripData.setTrackPos(trkpos_meas);
                 
                 if(_debug>1) { 
                 System.out.printf("%s: rotation matrix to meas frame\n%s\n", getClass().getSimpleName(), VecOp.toString(trkToStripRot));
@@ -483,26 +476,26 @@
                     scatAngle = scatter.getScatterAngle().Angle();
                 }
                 else {
-                    System.out.printf("%s: WARNING cannot find scatter for detector %s with strip cluster at %s\n",this.getClass(),((RawTrackerHit)strip.getStrip().rawhits().get(0)).getDetectorElement().getName(),strip.origin().toString());
-                    //can be edge case where helix is outside, but close to sensor, so use hack with the sensor origin closest to hit -> FIX THIS!
-                    DetectorPlane closest = null;
-                    double dx = 999999.9;
+                    if (_debug > 0) {
+                        System.out.printf("%s: WARNING cannot find scatter for detector %s with strip cluster at %s\n", this.getClass(), ((RawTrackerHit) strip.getStrip().rawhits().get(0)).getDetectorElement().getName(), strip.origin().toString());
+                    }
+                    //can be edge case where helix is outside, but close to sensor, so make a new scatter point assuming the helix does pass through the sensor
+                    DetectorPlane hitPlane = null;
                     if(MaterialSupervisor.class.isInstance(_scattering.getMaterialManager())) {
                         MaterialSupervisor matSup = (MaterialSupervisor)_scattering.getMaterialManager();
+                        IDetectorElement hitElement = ((RawTrackerHit)strip.getStrip().rawhits().get(0)).getDetectorElement();
                         for(ScatteringDetectorVolume vol : matSup.getMaterialVolumes()) {
-                            DetectorPlane plane = (DetectorPlane)vol;
-                            double dx_loop = Math.abs(strip.origin().x() - plane.origin().x());
-                            if(dx_loop<dx) {
-                                dx = dx_loop;
-                                closest = plane;
+                            if (vol.getDetectorElement()==hitElement) {
+                                hitPlane = (DetectorPlane) vol;
+                                break;
                             }
                         }
-                        if(closest==null) {
-                            throw new RuntimeException("cannot find any plane that is close to strip!");
+                        if(hitPlane==null) {
+                            throw new RuntimeException("cannot find plane for hit!");
                         } else {
                             // find scatterlength
-                            double s_closest = HelixUtils.PathToXPlane(htf,closest.origin().x(), 0., 0).get(0);
-                            double X0 = closest.getMaterialTraversedInRL(HelixUtils.Direction(htf, s_closest));
+                            double s_closest = HelixUtils.PathToXPlane(htf,hitPlane.origin().x(), 0., 0).get(0);
+                            double X0 = hitPlane.getMaterialTraversedInRL(HelixUtils.Direction(htf, s_closest));
                             ScatterAngle scatterAngle = new ScatterAngle(s_closest, _scattering.msangle(htf.p(this._B.magnitude()),X0));
                             scatAngle = scatterAngle.Angle();
                         }
@@ -853,7 +846,6 @@
             
             }
         }
-        return;
      }
 
     private double getInvMassTracks(HelicalTrackFit htf1, HelicalTrackFit htf2) {
@@ -871,7 +863,7 @@
 
     
     public class PerigeeParams {
-        private BasicMatrix _params;
+        private final BasicMatrix _params;
 
         private PerigeeParams(HelicalTrackFit htf) {
             _params = GBLOutput.this.getPerParVector(htf);