Print

Print


Commit in hps-java/src/main/java/org/lcsim/hps/recon/tracking on MAIN
HPSStripMaker.java+23-71.5 -> 1.6
HPSHelicalTrackHitDriver.java+1-11.14 -> 1.15
+24-8
2 modified files
Added Lorentz force correction by default to strip.

hps-java/src/main/java/org/lcsim/hps/recon/tracking
HPSStripMaker.java 1.5 -> 1.6
diff -u -r1.5 -r1.6
--- HPSStripMaker.java	29 Aug 2012 21:02:46 -0000	1.5
+++ HPSStripMaker.java	29 Sep 2012 00:19:41 -0000	1.6
@@ -32,8 +32,10 @@
     int _max_noaverage_nstrips = 4;
     // Absolute maximum cluster size
     int _max_cluster_nstrips = 10;
+    // Sensor simulation needed to correct for Lorentz drift
+    SiSensorSim _simulation;
     // Identifier helper (reset once per sensor)
-    SiTrackerIdentifierHelper _sid_helper;
+    SiTrackerIdentifierHelper _sid_helper;    
     // Temporary map connecting hits to strip numbers for sake of speed (reset once per sensor)
     Map<HPSFittedRawTrackerHit, Integer> _strip_map = new HashMap<HPSFittedRawTrackerHit, Integer>();
     double _oneClusterErr = 1 / Math.sqrt(12);
@@ -41,11 +43,16 @@
     double _threeClusterErr = 1 / 3;
     double _fourClusterErr = 1 / 2;
     double _fiveClusterErr = 1;
-
+    
     public HPSStripMaker(HPSClusteringAlgorithm algo) {
         _clustering = algo;
     }
 
+    public HPSStripMaker(SiSensorSim simulation, HPSClusteringAlgorithm algo) {
+        _clustering = algo;
+        _simulation = simulation;
+    }
+
     public String getName() {
         return _NAME;
     }
@@ -181,6 +188,7 @@
     }
 
     private Hep3Vector getPosition(List<HPSFittedRawTrackerHit> cluster, SiSensorElectrodes electrodes) {
+        boolean debug = false;
         List<Double> signals = new ArrayList<Double>();
         List<Hep3Vector> positions = new ArrayList<Hep3Vector>();
 
@@ -216,13 +224,21 @@
             position = VecOp.add(position, VecOp.mult(signal, positions.get(istrip)));
         }
         position = VecOp.mult(1 / total_charge, position);
+        if(debug) System.out.println(this.getClass().getSimpleName() + " charge weighted position "+position.toString() + " (before trans)");
         electrodes.getParentToLocal().inverse().transform(position);
-
-//        System.out.println("Position \n"+position);
-
-//        System.out.println("Lorentz corrected position \n"+position);
-
+        if(debug) System.out.println(this.getClass().getSimpleName() + " charge weighted position "+position.toString() + " (after trans)");
+        
+        // Swim position back through lorentz drift direction to midpoint between bias surfaces
+        if(_simulation!=null) {
+            _simulation.setSensor((SiSensor) electrodes.getDetectorElement());
+            _simulation.lorentzCorrect(position, electrodes.getChargeCarrier());
+            if(debug) System.out.println(this.getClass().getSimpleName() + ": Position " + position.toString() + " ( after Lorentz)");
+        }
+        
         // return position in global coordinates
+        Hep3Vector newpos = ((SiSensor) electrodes.getDetectorElement()).getGeometry().getLocalToGlobal().transformed(position);
+        if(debug) System.out.println(this.getClass().getSimpleName() + " newpos "+newpos.toString());
+        
         return ((SiSensor) electrodes.getDetectorElement()).getGeometry().getLocalToGlobal().transformed(position);
 //        return electrodes.getLocalToGlobal().transformed(position);
     }

hps-java/src/main/java/org/lcsim/hps/recon/tracking
HPSHelicalTrackHitDriver.java 1.14 -> 1.15
diff -u -r1.14 -r1.15
--- HPSHelicalTrackHitDriver.java	28 Sep 2012 22:09:49 -0000	1.14
+++ HPSHelicalTrackHitDriver.java	29 Sep 2012 00:19:41 -0000	1.15
@@ -59,7 +59,7 @@
     private Map<String, String> _stereomap = new HashMap<String, String>();
     private Hep3Vector _orgloc = new BasicHep3Vector(0., 0., 0.);
     private boolean _doTranformToTracking = true;
-    private boolean addAllStripsToEventForDebug = false;
+    private boolean addAllStripsToEventForDebug = true;
     private HPSTransformations _detToTrk;
     String subdetectorName = "Tracker";
 
CVSspam 0.2.12


Use REPLY-ALL to reply to list

To unsubscribe from the LCD-CVS list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=LCD-CVS&A=1