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;