Author: [log in to unmask]
Date: Thu Feb 19 10:04:04 2015
New Revision: 2166
Log:
Adding new HelicalTrackStrip class that encapsulates the lcsim version. This fixes a problem where the local oordinate system for the sensor is flipped to always have the normal of the plane to point along the track.
Added:
java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/HelicalTrackStripGbl.java
Modified:
java/trunk/tracking/src/main/java/org/hps/recon/tracking/TrackUtils.java
java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/GBLOutput.java
java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/GBLTrackData.java
java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/HpsGblFitter.java
java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/HpsGblRefitter.java
java/trunk/users/src/main/java/org/hps/users/phansson/StripMPAlignmentInput.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 Thu Feb 19 10:04:04 2015
@@ -12,6 +12,7 @@
import java.util.List;
import java.util.Map;
+import org.hps.recon.tracking.gbl.HelicalTrackStripGbl;
import org.lcsim.detector.ITransform3D;
import org.lcsim.detector.solids.Box;
import org.lcsim.detector.solids.Point3D;
@@ -149,7 +150,7 @@
* @param bfield - magnetic field value
* @return point at intercept
*/
- public static Hep3Vector getHelixPlaneIntercept(HelicalTrackFit helfit, HelicalTrackStrip strip, double bfield) {
+ public static Hep3Vector getHelixPlaneIntercept(HelicalTrackFit helfit, HelicalTrackStripGbl strip, double bfield) {
Hep3Vector point_on_plane = strip.origin();
Hep3Vector unit_vec_normal_to_plane = VecOp.cross(strip.u(), strip.v());// strip.w();
Hep3Vector intercept_point = getHelixPlaneIntercept(helfit, unit_vec_normal_to_plane, point_on_plane, bfield);
@@ -463,7 +464,7 @@
return residuals;
}
- public static Map<String, Double> calculateLocalTrackHitResiduals(Track track, HelicalTrackHit hth, HelicalTrackStrip strip, double bFieldInZ) {
+ public static Map<String, Double> calculateLocalTrackHitResiduals(Track track, HelicalTrackHit hth, HelicalTrackStripGbl strip, double bFieldInZ) {
SeedTrack st = (SeedTrack) track;
SeedCandidate seed = st.getSeedCandidate();
@@ -474,7 +475,7 @@
return calculateLocalTrackHitResiduals(_trk, strip, msdrdphi, msdz, bFieldInZ);
}
- public static Map<String, Double> calculateLocalTrackHitResiduals(HelicalTrackFit _trk, HelicalTrackStrip strip, double msdrdphi, double msdz, double bFieldInZ) {
+ public static Map<String, Double> calculateLocalTrackHitResiduals(HelicalTrackFit _trk, HelicalTrackStripGbl strip, double msdrdphi, double msdz, double bFieldInZ) {
boolean debug = false;
boolean includeMS = true;
@@ -508,7 +509,7 @@
Hep3Vector vdiffTrk = VecOp.sub(trkpos, corigin);
TrackerHitUtils thu = new TrackerHitUtils(debug);
- Hep3Matrix trkToStrip = thu.getTrackToStripRotation(strip);
+ Hep3Matrix trkToStrip = thu.getTrackToStripRotation(strip.getStrip());
Hep3Vector vdiff = VecOp.mult(trkToStrip, vdiffTrk);
double umc = vdiff.x();
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 Thu Feb 19 10:04:04 2015
@@ -256,8 +256,8 @@
HelicalTrackCross htc = (HelicalTrackCross) hit;
List<HelicalTrackStrip> strips = htc.getStrips();
- for(HelicalTrackStrip strip : strips) {
-
+ for(HelicalTrackStrip stripOld : strips) {
+ HelicalTrackStripGbl strip = new HelicalTrackStripGbl(stripOld, true);
if(_debug>0) System.out.printf("%s: layer %d\n",this.getClass().getSimpleName(),strip.layer());
if(textFile != null) {
@@ -379,7 +379,7 @@
Hep3Vector vdiffTrkTruth = VecOp.sub(trkposTruth, origin);
// then find the rotation from tracking to measurement frame
- Hep3Matrix trkToStripRot = _trackerHitUtils.getTrackToStripRotation(strip);
+ Hep3Matrix trkToStripRot = _trackerHitUtils.getTrackToStripRotation(strip.getStrip());
// then rotate that vector into the measurement frame to get the predicted measurement position
Hep3Vector trkpos_meas = VecOp.mult(trkToStripRot, vdiffTrk);
@@ -397,6 +397,15 @@
//GBLDATA
stripData.setMeas(strip.umeas());
stripData.setTrackPos(trkpos_meas);
+
+ if(_debug>1) {
+ System.out.printf("%s: rotation matrix to meas frame\n%s\n", getClass().getSimpleName(), VecOp.toString(trkToStripRot));
+ System.out.printf("%s: tPosGlobal %s origin %s\n", getClass().getSimpleName(), trkpos.toString(), origin.toString());
+ System.out.printf("%s: tDiff %s\n", getClass().getSimpleName(), vdiffTrk.toString());
+ System.out.printf("%s: tPosMeas %s\n", getClass().getSimpleName(), trkpos_meas.toString());
+ }
+
+
// residual in measurement frame
Hep3Vector res_meas = VecOp.sub(m_meas, trkpos_meas);
@@ -430,14 +439,14 @@
}
// find scattering angle
- ScatterPoint scatter = scatters.getScatterPoint(((RawTrackerHit)strip.rawhits().get(0)).getDetectorElement());
+ ScatterPoint scatter = scatters.getScatterPoint(((RawTrackerHit)strip.getStrip().rawhits().get(0)).getDetectorElement());
double scatAngle;
if(scatter != null) {
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.rawhits().get(0)).getDetectorElement().getName(),strip.origin().toString());
+ 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;
@@ -937,7 +946,6 @@
}
}
-
-
+
}
Modified: java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/GBLTrackData.java
=============================================================================
--- java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/GBLTrackData.java (original)
+++ java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/GBLTrackData.java Thu Feb 19 10:04:04 2015
@@ -22,7 +22,7 @@
public static final int ID = 0;
public static final int BANK_INT_SIZE = 1;
}
- private static class GBLDOUBLE {
+ public static class GBLDOUBLE {
public static final int PERKAPPA =0;
public static final int PERTHETA = 1;
public static final int PERPHI = 2;
@@ -84,7 +84,8 @@
this.bank_double[GBLDOUBLE.PERD0] = perPar.getD0();
this.bank_double[GBLDOUBLE.PERZ0] = perPar.getZ0();
}
-
+
+
public void setPrjPerToCl(int row, int col, double val) {
int idx = col + row*3;
Added: java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/HelicalTrackStripGbl.java
=============================================================================
--- java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/HelicalTrackStripGbl.java (added)
+++ java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/HelicalTrackStripGbl.java Thu Feb 19 10:04:04 2015
@@ -0,0 +1,100 @@
+package org.hps.recon.tracking.gbl;
+
+import hep.physics.vec.Hep3Matrix;
+import hep.physics.vec.Hep3Vector;
+import hep.physics.vec.VecOp;
+
+import org.hps.recon.tracking.CoordinateTransformations;
+import org.lcsim.detector.IDetectorElement;
+import org.lcsim.detector.tracker.silicon.ChargeCarrier;
+import org.lcsim.detector.tracker.silicon.SiSensor;
+import org.lcsim.detector.tracker.silicon.SiSensorElectrodes;
+import org.lcsim.event.RawTrackerHit;
+import org.lcsim.fit.helicaltrack.HelicalTrackStrip;
+
+/**
+ * Encapsulate @HelicalTrackStrip to make sure that unit vectors are based on geometry.
+ * TODO should extend as a permanent solution.
+ *
+ * @author Per Hansson Adrian <[log in to unmask]>
+ *
+ */
+public class HelicalTrackStripGbl {
+ private HelicalTrackStrip _strip;
+ private SiSensorElectrodes _electrodes = null;
+ private Hep3Matrix _electrodesToTracking = null;
+ private Hep3Vector _u = null;
+ private Hep3Vector _v = null;
+ private Hep3Vector _w = null;
+ private boolean _useGeomDef = false;
+ public HelicalTrackStripGbl(HelicalTrackStrip strip, boolean useGeomDef) {
+ _strip = strip;
+ _useGeomDef = useGeomDef;
+ }
+ public double du() {
+ return _strip.du();
+ }
+ public double vmin() {
+ return _strip.vmin();
+ }
+ public double vmax() {
+ return _strip.vmax();
+ }
+ public double umeas() {
+ return _strip.umeas();
+ }
+ public HelicalTrackStrip getStrip() {
+ return _strip;
+ }
+ public Hep3Vector origin() {
+ return _strip.origin();
+ }
+ public int layer() {
+ return _strip.layer();
+ }
+ private SiSensorElectrodes getElectrodes() {
+ if(_electrodes==null) {
+ RawTrackerHit rth = (RawTrackerHit) _strip.rawhits().get(0);
+ IDetectorElement ide = rth.getDetectorElement();
+ SiSensor sensor = ide.findDescendants(SiSensor.class).get(0);
+ _electrodes = sensor.getReadoutElectrodes(ChargeCarrier.HOLE);
+ }
+ return _electrodes;
+ }
+ private Hep3Matrix getElectrodeToTrackingMatrix() {
+ if(_electrodesToTracking==null) {
+ SiSensorElectrodes electrodes = getElectrodes();
+ _electrodesToTracking = VecOp.mult(CoordinateTransformations.getMatrix(), electrodes.getLocalToGlobal().getRotation().getRotationMatrix());
+ }
+ return _electrodesToTracking;
+ }
+ public Hep3Vector u() {
+ if(_u == null) {
+ if(_useGeomDef) {
+ _u = VecOp.mult(getElectrodeToTrackingMatrix(), getElectrodes().getMeasuredCoordinate(0));
+ }
+ else {
+ _u = _strip.u();
+ }
+ }
+ return _u;
+ }
+ public Hep3Vector v() {
+ if(_v == null) {
+ if(_useGeomDef) {
+ _v = VecOp.mult(getElectrodeToTrackingMatrix(), getElectrodes().getUnmeasuredCoordinate(0));
+ } else {
+ _v = _strip.v();
+ }
+ }
+ return _v;
+ }
+ public Hep3Vector w() {
+ if(_w==null) {
+ _w = VecOp.cross(u(), v());
+ }
+ return _w;
+ }
+
+
+}
Modified: java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/HpsGblFitter.java
=============================================================================
--- java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/HpsGblFitter.java (original)
+++ java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/HpsGblFitter.java Thu Feb 19 10:04:04 2015
@@ -160,7 +160,7 @@
}
for (int istrip = 0; istrip < stripClusters.size(); ++istrip) {
- HelicalTrackStrip strip = stripClusters.get(istrip);
+ HelicalTrackStripGbl strip = new HelicalTrackStripGbl(stripClusters.get(istrip), true);
if (_debug) {
System.out.printf(" layer %d origin %s\n", strip.layer(), strip.origin().toString());
@@ -235,7 +235,7 @@
Hep3Vector vdiffTrk = VecOp.sub(trkpos, strip.origin());
// then find the rotation from tracking to measurement frame
- Hep3Matrix trkToStripRot = _trackHitUtils.getTrackToStripRotation(strip);
+ Hep3Matrix trkToStripRot = _trackHitUtils.getTrackToStripRotation(strip.getStrip());
// then rotate that vector into the measurement frame to get the predicted measurement position
Hep3Vector trkpos_meas = VecOp.mult(trkToStripRot, vdiffTrk);
@@ -300,13 +300,13 @@
BasicMatrix scat = GblUtils.getInstance().zeroMatrix(0, 2);
// find scattering angle
- ScatterPoint scatter = scatters.getScatterPoint(((RawTrackerHit) strip.rawhits().get(0)).getDetectorElement());
+ ScatterPoint scatter = scatters.getScatterPoint(((RawTrackerHit) strip.getStrip().rawhits().get(0)).getDetectorElement());
double scatAngle;
if (scatter != null) {
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.rawhits().get(0)).getDetectorElement().getName(), strip.origin().toString());
+ 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
//TODO check if this really makes sense to do
DetectorPlane closest = null;
Modified: java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/HpsGblRefitter.java
=============================================================================
--- java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/HpsGblRefitter.java (original)
+++ java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/HpsGblRefitter.java Thu Feb 19 10:04:04 2015
@@ -11,8 +11,10 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.logging.Level;
import java.util.logging.Logger;
+import org.hps.recon.tracking.gbl.GBLTrackData.GBLDOUBLE;
import org.hps.recon.tracking.gbl.matrix.Matrix;
import org.hps.recon.tracking.gbl.matrix.SymMatrix;
import org.hps.recon.tracking.gbl.matrix.Vector;
@@ -37,7 +39,8 @@
*/
public class HpsGblRefitter extends Driver
{
- private static Logger logger = LogUtil.create(HpsGblRefitter.class);
+ //private static Logger logger = LogUtil.create(HpsGblRefitter.class);
+ private Logger logger = getLogger();
private boolean _debug = false;
private final String trackCollectionName = "MatchedTracks";
private final String track2GblTrackRelationName = "TrackToGBLTrack";
@@ -157,6 +160,18 @@
List<FittedGblTrajectory> trackFits = new ArrayList<FittedGblTrajectory>();
int trackNum = 0;
for (GBLTrackData t : stripsGblMap.keySet()) {
+
+ if(Math.cos(t.getDoubleVal(GBLDOUBLE.PERTHETA))>0) {
+ //if(_debug)
+ logger.info(" top track");
+ continue;
+
+ } else {
+ logger.info(" bot track");
+
+ }
+
+
FittedGblTrajectory traj = fit(stripsGblMap.get(t), bfac);
++trackNum;
if(traj!=null) {
@@ -409,11 +424,11 @@
addDer.set(0, i, milleParameters.get(i).getValue());
}
point.addGlobals(labGlobal, addDer);
-
+ String logders = "";
for(int i=0; i < milleParameters.size(); ++i) {
- logger.info(labGlobal.get(i) + "\t" + addDer.get(0, i));
+ logders += labGlobal.get(i) + "\t" + addDer.get(0, i) + "\n";
}
-
+ logger.info("\n"+ logders);
/*
@@ -556,6 +571,9 @@
_dm_dg = getMeasDers();
// Calculate, by chain rule, derivatives of residuals w.r.t. global parameters
_dr_dg = _dr_dm.times(_dm_dg);
+
+ //logger.log(Level.FINER," dr_dm\n"+ _dr_dm.toString() + "\ndm_dg\n" + _dm_dg.toString() + "\ndr_dg\n" +_dr_dg.toString());
+ //logger.info("loglevel " + logger.getLevel().toString());
//print 'dm_dg'
//print dm_dg
//print 'dr_dm'
@@ -625,6 +643,7 @@
double tdotn = VecOp.dot(_t, _n);
Matrix dr_dm = Matrix.identity(3,3);
//print 't ', self.t, ' n ', self.n, ' dot(t,n) ', tdotn
+ //logger.info("t " + _t.toString() +" n " + _n.toString() + " dot(t,n) " + tdotn);
double delta, val;
for(int i=0; i<3; ++i) {
for(int j=0; j<3; ++j) {
Modified: java/trunk/users/src/main/java/org/hps/users/phansson/StripMPAlignmentInput.java
=============================================================================
--- java/trunk/users/src/main/java/org/hps/users/phansson/StripMPAlignmentInput.java (original)
+++ java/trunk/users/src/main/java/org/hps/users/phansson/StripMPAlignmentInput.java Thu Feb 19 10:04:04 2015
@@ -20,8 +20,10 @@
import java.util.Map;
+
//===> import org.hps.conditions.deprecated.SvtUtils;
import org.hps.recon.tracking.TrackUtils;
+import org.hps.recon.tracking.gbl.HelicalTrackStripGbl;
import org.lcsim.detector.tracker.silicon.HpsSiSensor;
import org.lcsim.event.RawTrackerHit;
import org.lcsim.event.Track;
@@ -126,7 +128,8 @@
if(_DEBUG) {
System.out.printf("%s: This hit has %d clusters msdrphi=%.4f msdz=%.4f\n",this.getClass().getSimpleName(),clusterlist.size(),msdrphi,msdz);
}
- for (HelicalTrackStrip cl : clusterlist) {
+ for (HelicalTrackStrip strip : clusterlist) {
+ HelicalTrackStripGbl cl = new HelicalTrackStripGbl(strip,false);
CalculateResidual(cl, msdrphi, msdz);
CalculateLocalDerivatives(cl);
CalculateGlobalDerivatives(cl);
@@ -140,12 +143,12 @@
}
- private void CalculateLocalDerivatives(HelicalTrackStrip strip) {
+ private void CalculateLocalDerivatives(HelicalTrackStripGbl strip) {
double xint = strip.origin().x();
BasicMatrix dfdqGlobalOld = _oldAlignUtils.calculateLocalHelixDerivatives(_trk, xint);
BasicMatrix dfdqGlobal = _alignUtils.calculateLocalHelixDerivatives(_trk, xint);
BasicMatrix dfdqGlobalNum = this._numDerivatives.calculateLocalHelixDerivatives(_trk, xint);
- Hep3Matrix trkToStrip = trackerHitUtil.getTrackToStripRotation(strip);
+ Hep3Matrix trkToStrip = trackerHitUtil.getTrackToStripRotation(strip.getStrip());
_dfdq = (BasicMatrix) MatrixOp.mult(trkToStrip, dfdqGlobal);
if (_DEBUG) {
@@ -175,7 +178,7 @@
- private void CalculateGlobalDerivatives(HelicalTrackStrip strip) {
+ private void CalculateGlobalDerivatives(HelicalTrackStripGbl strip) {
/*
* Residual in local sensor frame is defined as r = m_a-p
@@ -198,7 +201,7 @@
TrackDirection trkdir = HelixUtils.CalculateTrackDirection(_trk, pathLengthToInterception);
Hep3Vector t_TRACK = trkdir.Direction();
Hep3Vector n_TRACK = strip.w();
- Hep3Matrix T = trackerHitUtil.getTrackToStripRotation(strip);
+ Hep3Matrix T = trackerHitUtil.getTrackToStripRotation(strip.getStrip());
Hep3Vector t = VecOp.mult(T, t_TRACK);
Hep3Vector n = VecOp.mult(T, n_TRACK);
@@ -287,7 +290,7 @@
int layer = strip.layer();
- HpsSiSensor sensor = (HpsSiSensor) ((RawTrackerHit) strip.rawhits().get(0)).getDetectorElement();
+ HpsSiSensor sensor = (HpsSiSensor) ((RawTrackerHit) strip.getStrip().rawhits().get(0)).getDetectorElement();
//===> int side = SvtUtils.getInstance().isTopLayer((SiSensor) ((RawTrackerHit)strip.rawhits().get(0)).getDetectorElement()) ? 10000 : 20000;
int side = sensor.isTopLayer() ? 10000 : 20000;
@@ -376,7 +379,7 @@
- private void CalculateResidual(HelicalTrackStrip strip, double msdrdphi, double msdz) {
+ private void CalculateResidual(HelicalTrackStripGbl strip, double msdrdphi, double msdz) {
if(_DEBUG) System.out.printf("%s: --- CalculateResidual ---\n",this.getClass().getSimpleName());
double bfield = Math.abs(this._bfield.z());
@@ -391,7 +394,7 @@
_error[2] = res_local.get("wreserr");
double vdiffy = res_local.get("vdiffTrky");
- HpsSiSensor sensor = (HpsSiSensor) ((RawTrackerHit) strip.rawhits().get(0)).getDetectorElement();
+ HpsSiSensor sensor = (HpsSiSensor) ((RawTrackerHit) strip.getStrip().rawhits().get(0)).getDetectorElement();
String side = sensor.isTopLayer() ? "top" : "bottom";
//===> String side = SvtUtils.getInstance().isTopLayer((SiSensor)((RawTrackerHit)strip.rawhits().get(0)).getDetectorElement()) ? "top" : "bottom";
//Fill residuals vs distrance from center of plane in the v directions
@@ -496,9 +499,9 @@
- private void PrintStripResiduals(HelicalTrackStrip strip) {
-
- HpsSiSensor sensor = (HpsSiSensor) ((RawTrackerHit) strip.rawhits().get(0)).getDetectorElement();
+ private void PrintStripResiduals(HelicalTrackStripGbl strip) {
+
+ HpsSiSensor sensor = (HpsSiSensor) ((RawTrackerHit) strip.getStrip().rawhits().get(0)).getDetectorElement();
String side = sensor.isTopLayer() ? "top" : "bottom";
//===> String side = SvtUtils.getInstance().isTopLayer((SiSensor) ((RawTrackerHit)strip.rawhits().get(0)).getDetectorElement()) ? "top" : "bottom";
@@ -834,7 +837,7 @@
- private void CalculateGlobalDerivativesWRONG(HelicalTrackStrip strip) {
+ private void CalculateGlobalDerivativesWRONG(HelicalTrackStripGbl strip) {
//Find interception with plane that the strips belongs to
Hep3Vector x_vec = TrackUtils.getHelixPlaneIntercept(_trk, strip, Math.abs(this._bfield.z()));
@@ -858,7 +861,7 @@
Hep3Vector corigin = strip.origin();
double vmeas = corigin.y(); //THis is wrong
int layer = strip.layer();
- HpsSiSensor sensor = (HpsSiSensor) ((RawTrackerHit) strip.rawhits().get(0)).getDetectorElement();
+ HpsSiSensor sensor = (HpsSiSensor) ((RawTrackerHit) strip.getStrip().rawhits().get(0)).getDetectorElement();
int side = sensor.isTopLayer() ? 10000 : 20000;
//===> int side = SvtUtils.getInstance().isTopLayer((SiSensor) ((RawTrackerHit)strip.rawhits().get(0)).getDetectorElement()) ? 10000 : 20000;
@@ -887,7 +890,7 @@
//Rotation matrix from the tracking fram to the sensor/strip frame
- Hep3Matrix T = trackerHitUtil.getTrackToStripRotation(strip);
+ Hep3Matrix T = trackerHitUtil.getTrackToStripRotation(strip.getStrip());
@@ -1069,7 +1072,7 @@
//Put it into a matrix to be able to transform easily
//BasicMatrix _dqp_da_TRACK = FillMatrix(dqp_da_TRACK, 3, 1);
//Get transformation matrix from tracking frame to sensor frame where the residuals are calculated
- Hep3Matrix trkToStrip = this.trackerHitUtil.getTrackToStripRotation(strip);
+ Hep3Matrix trkToStrip = this.trackerHitUtil.getTrackToStripRotation(strip.getStrip());
if(_DEBUG) {
System.out.println("Final transformation from tracking frame to strip frame:\n" + trkToStrip.toString());
}
|