Print

Print


Author: [log in to unmask]
Date: Tue Jan 12 13:20:53 2016
New Revision: 4114

Log:
tracking/ecal/

Added:
    java/branches/brad-dev/tracking/src/main/java/org/hps/recon/tracking/ecal/
    java/branches/brad-dev/tracking/src/main/java/org/hps/recon/tracking/ecal/HelicalTrack3DHit.java
    java/branches/brad-dev/tracking/src/main/java/org/hps/recon/tracking/ecal/package-info.java

Added: java/branches/brad-dev/tracking/src/main/java/org/hps/recon/tracking/ecal/HelicalTrack3DHit.java
 =============================================================================
--- java/branches/brad-dev/tracking/src/main/java/org/hps/recon/tracking/ecal/HelicalTrack3DHit.java	(added)
+++ java/branches/brad-dev/tracking/src/main/java/org/hps/recon/tracking/ecal/HelicalTrack3DHit.java	Tue Jan 12 13:20:53 2016
@@ -0,0 +1,83 @@
+package org.hps.recon.tracking.ecal;
+
+import hep.physics.matrix.SymmetricMatrix;
+import hep.physics.vec.Hep3Vector;
+import hep.physics.vec.BasicHep3Vector;
+import java.util.List;
+import org.lcsim.fit.helicaltrack.HelicalTrackHit;
+import org.lcsim.geometry.subdetector.BarrelEndcapFlag;
+import org.lcsim.fit.helicaltrack.HitUtils; 
+
+/**
+ * Encapsulate 3D hit info needed by HelicalTrackFitter to handle ECal hits (or otherwise non-layer hits).
+ * This class is explicitly for HPS where the length of the
+ * sensors are (mostly) along the detector
+ * y-dimension ( == HelicalTrackFit x-dimension);
+ * @author Bradley Yale <[log in to unmask]>
+ * Copied/Modified from org.lcsim.recon.tracking.helicaltrack.HelicalTrack3DHit.java
+ */
+
+public class HelicalTrack3DHit extends HelicalTrackHit {
+    private double _dz;
+    private static int _type = 1;
+    
+    public HelicalTrack3DHit(Hep3Vector pos, SymmetricMatrix cov, double dEdx, double time,
+            List rawhits, String detname, int layer, BarrelEndcapFlag beflag) {
+        super(pos, cov, dEdx, time, _type, rawhits, detname, layer, beflag);
+        _dz = Math.sqrt(cov.e(2, 2));
+        if (! (_dz>_eps)) //_eps inherited from HelicalTrackHit
+            _dz = _eps; 
+    }
+    
+    /**
+     * Create a HelicalTrack3DHit from a TrackerHit.
+     * @param hit TrackerHit associated with this hit
+     * @param beflag BarrelEndcapFlag for this hit
+     */
+//    public HelicalTrack3DHit(TrackerHit hit, BarrelEndcapFlag beflag) {
+//        super(hit);
+//        super.setBarrelEndcapFlag(beflag);
+//        _dz = Math.sqrt(hit.getCovMatrix()[5]);
+//    }
+    
+    /**
+     * Create a HelicalTrack3DHit from a TrackerHit overriding the hit position
+     * and covariance matrix in the TrackerHit.
+     * @param hit TrackerHit associated with this hit
+     * @param pos hit position
+     * @param cov covariance matrix
+     * @param beflag BarrelEndcapFlag for this hit
+     */
+//    public HelicalTrack3DHit(TrackerHit hit, Hep3Vector pos, SymmetricMatrix cov, BarrelEndcapFlag beflag) {
+//        super(hit, pos, cov);
+//        super.setBarrelEndcapFlag(beflag);
+//        _dz = Math.sqrt(cov.e(2,2));
+//    }
+    
+    /**
+     * Create a HelicalTrack3DHit from scratch without reference to an existing
+     * TrackerHit.  The BarrelEndcapFlag defaults to barrel, but can be set to
+     * an endcap disk using the parent method setBarrelEndcapFlag.
+     * @param x x coordinate
+     * @param y y coordinate
+     * @param z z coordinate
+     * @param drphi uncertainty in the r*phi coordinate
+     * @param dz uncertainty in the z coordinate
+     */
+    @Deprecated
+    public HelicalTrack3DHit(double x, double y, double z, double drphi, double dz){
+        this(new BasicHep3Vector(x, y, z), HitUtils.PixelCov(x, y, drphi, dz), 0., 0., null,
+                "Unknown", 0 , BarrelEndcapFlag.BARREL);
+        _dz = dz;
+    }
+    
+    /**
+     * Return the uncertainty in the z coordinate.
+     * @return uncertainty in the z coordinate
+     */
+    public double dz() {
+        if (super.BarrelEndcapFlag() == BarrelEndcapFlag.BARREL) return _dz;
+        else throw new RuntimeException("z coordinate uncertainty undefined for a disk hit");
+    }
+}
+    

Added: java/branches/brad-dev/tracking/src/main/java/org/hps/recon/tracking/ecal/package-info.java
 =============================================================================
--- java/branches/brad-dev/tracking/src/main/java/org/hps/recon/tracking/ecal/package-info.java	(added)
+++ java/branches/brad-dev/tracking/src/main/java/org/hps/recon/tracking/ecal/package-info.java	Tue Jan 12 13:20:53 2016
@@ -0,0 +1,4 @@
+/**
+ *  * Track reconstruction using ECal clusters
+ *   */
+package org.hps.recon.tracking.ecal;