Author: [log in to unmask]
Date: Wed Sep 30 18:41:59 2015
New Revision: 3746
Log:
some cleanup
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/GBLTrackData.java
java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/HpsGblRefitter.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 Wed Sep 30 18:41:59 2015
@@ -69,8 +69,9 @@
*/
GBLOutput(String outputFileName, Hep3Vector bfield) {
//System.out.printf("name \"%s\" \n", outputFileName);
- if (!outputFileName.equalsIgnoreCase(""))
+ if (!outputFileName.equalsIgnoreCase("")) {
textFile = new GBLFileIO(outputFileName);
+ }
_materialmanager = new MaterialSupervisor();
_scattering = new MultipleScattering(_materialmanager);
_B = CoordinateTransformations.transformVectorToTracking(bfield);
@@ -91,18 +92,21 @@
}
void printNewEvent(int eventNumber, double Bz) {
- if (textFile != null)
+ if (textFile != null) {
textFile.printEventInfo(eventNumber, Bz);
+ }
}
void printTrackID(int iTrack) {
- if (textFile != null)
+ if (textFile != null) {
textFile.printTrackID(iTrack);
+ }
}
void close() {
- if (textFile != null)
+ if (textFile != null) {
textFile.closeFile();
+ }
}
void setAPrimeEventFlag(boolean flag) {
@@ -143,11 +147,13 @@
System.out.printf("%s: WARNING!! no truth particle found in event!\n", this.getClass().getSimpleName());
this.printMCParticles(mcParticles);
//System.exit(1);
- } else if (_debug > 0)
+ } else if (_debug > 0) {
System.out.printf("%s: truth particle (pdgif %d ) found in event!\n", this.getClass().getSimpleName(), mcp.getPDGID());
-
- if (AprimeEvent)
+ }
+
+ if (AprimeEvent) {
checkAprimeTruth(mcp, mcParticles);
+ }
}
// Get track parameters from MC particle
@@ -158,13 +164,13 @@
// Get perigee parameters to curvilinear frame
PerigeeParams perPar = new PerigeeParams(htf, _B.z());
PerigeeParams perParTruth = new PerigeeParams(htfTruth, _B.z());
- if (textFile != null) {
- textFile.printPerTrackParam(perPar);
- textFile.printPerTrackParamTruth(perParTruth);
- }
//GBLDATA
gtd.setPerigeeTrackParameters(perPar);
+ if (textFile != null) {
+ textFile.printPerTrackParam(gtd.getPerigeeTrackParameters());
+ textFile.printPerTrackParamTruth(perParTruth);
+ }
// Get curvilinear parameters
if (textFile != null) {
@@ -182,37 +188,44 @@
// find the projection from the I,J,K to U,V,T curvilinear coordinates
Hep3Matrix perToClPrj = getPerToClPrj(htf);
- if (textFile != null)
- textFile.printPerToClPrj(perToClPrj);
-
//GBLDATA
- for (int row = 0; row < perToClPrj.getNRows(); ++row)
- for (int col = 0; col < perToClPrj.getNColumns(); ++col)
+ for (int row = 0; row < perToClPrj.getNRows(); ++row) {
+ for (int col = 0; col < perToClPrj.getNColumns(); ++col) {
gtd.setPrjPerToCl(row, col, perToClPrj.e(row, col));
+ }
+ }
+ if (textFile != null) {
+ textFile.printPerToClPrj(gtd.getPrjPerToCl());
+ }
// print chi2 of fit
- if (textFile != null)
+ if (textFile != null) {
textFile.printChi2(htf.chisq(), htf.ndf());
+ }
// build map of layer to SimTrackerHits that belongs to the MC particle
Map<Integer, SimTrackerHit> simHitsLayerMap = new HashMap<Integer, SimTrackerHit>();
- for (SimTrackerHit sh : simTrackerHits)
+ for (SimTrackerHit sh : simTrackerHits) {
if (sh.getMCParticle() == mcp) {
int layer = sh.getIdentifierFieldValue("layer");
- if (!simHitsLayerMap.containsKey(layer) || (sh.getPathLength() < simHitsLayerMap.get(layer).getPathLength()))
+ if (!simHitsLayerMap.containsKey(layer) || (sh.getPathLength() < simHitsLayerMap.get(layer).getPathLength())) {
simHitsLayerMap.put(layer, sh);
- }
+ }
+ }
+ }
// covariance matrix from the fit
- if (textFile != null)
+ if (textFile != null) {
textFile.printPerTrackCov(htf);
+ }
// dummy cov matrix for CL parameters
BasicMatrix clCov = GblUtils.unitMatrix(5, 5);
clCov = (BasicMatrix) MatrixOp.mult(0.1 * 0.1, clCov);
- if (textFile != null)
+ if (textFile != null) {
textFile.printCLTrackCov(clCov);
+ }
if (_debug > 0) {
System.out.printf("%s: perPar covariance matrix\n%s\n", this.getClass().getSimpleName(), htf.covariance().toString());
@@ -220,8 +233,9 @@
System.out.printf("%s: truth perPar chi2 %f\n", this.getClass().getSimpleName(), chi2_truth);
}
- if (_debug > 0)
+ if (_debug > 0) {
System.out.printf("%d hits\n", hits.size());
+ }
int istrip = 0;
for (int ihit = 0; ihit != hits.size(); ++ihit) {
@@ -236,44 +250,46 @@
// find Millepede layer definition from DetectorElement
IDetectorElement de = ((RawTrackerHit) strip.getStrip().rawhits().get(0)).getDetectorElement();
HpsSiSensor sensor;
- if (de instanceof HpsSiSensor)
+ if (de instanceof HpsSiSensor) {
sensor = (HpsSiSensor) de;
- else
+ } else {
throw new ClassCastException("Detector element " + de.getName() + " couldn't be casted to " + HpsSiSensor.class.getName());
+ }
int millepedeId = sensor.getMillepedeId();
- if (_debug > 0)
+ if (_debug > 0) {
System.out.printf("%s: layer %d millepede %d (DE=\"%s\", origin %s) \n", this.getClass().getSimpleName(), strip.layer(), millepedeId, sensor.getName(), strip.origin().toString());
-
- if (textFile != null)
+ }
+
+ if (textFile != null) {
textFile.printStrip(istrip, millepedeId, de.getName());
-
- //GBLDATA
- GBLStripClusterData stripData = new GBLStripClusterData(millepedeId);
- //Add to output list
- stripClusterDataList.add(stripData);
+ }
//Center of the sensor
Hep3Vector origin = strip.origin();
- if (textFile != null)
+ if (textFile != null) {
textFile.printOrigin(origin);
+ }
// associated 3D position of the crossing of this and it's stereo partner sensor
- if (textFile != null)
+ if (textFile != null) {
textFile.printHitPos3D(hit.getCorrectedPosition());
+ }
//Find intercept point with sensor in tracking frame
Hep3Vector trkpos = TrackUtils.getHelixPlaneIntercept(htf, strip, Math.abs(_B.z()));
if (trkpos == null) {
- if (_debug > 0)
+ if (_debug > 0) {
System.out.println("Can't find track intercept; use sensor origin");
+ }
trkpos = strip.origin();
}
Hep3Vector trkposTruth = htfTruth != null ? TrackUtils.getHelixPlaneIntercept(htfTruth, strip, Math.abs(_B.z())) : new BasicHep3Vector(-999999.9, -999999.9, -999999.9);
- if (textFile != null)
+ if (textFile != null) {
textFile.printStripTrackPos(trkpos);
+ }
if (_debug > 0) {
System.out.printf("trkpos at intercept [%.10f %.10f %.10f]\n", trkpos.x(), trkpos.y(), trkpos.z());
System.out.printf("trkposTruth at intercept %s\n", trkposTruth != null ? trkposTruth.toString() : "no truth track");
@@ -287,8 +303,9 @@
System.out.printf("WARNING trkposDiff mag = %.10f [%.10f %.10f %.10f]\n", trkposDiff.magnitude(), trkposDiff.x(), trkposDiff.y(), trkposDiff.z());
System.exit(1);
}
- if (_debug > 0)
+ if (_debug > 0) {
System.out.printf("trkposXPlaneIter at intercept [%.10f %.10f %.10f]\n", trkposXPlaneIter.x(), trkposXPlaneIter.y(), trkposXPlaneIter.z());
+ }
}
// Find the sim tracker hit for this layer
@@ -298,42 +315,39 @@
if (simHit == null) {
System.out.printf("%s: no sim hit for strip hit at layer %d\n", this.getClass().getSimpleName(), strip.layer());
System.out.printf("%s: it as %d mc particles associated with it:\n", this.getClass().getSimpleName(), hit.getMCParticles().size());
- for (MCParticle particle : hit.getMCParticles())
+ for (MCParticle particle : hit.getMCParticles()) {
System.out.printf("%s: %d p %s \n", this.getClass().getSimpleName(), particle.getPDGID(), particle.getMomentum().toString());
+ }
System.out.printf("%s: these are sim hits in the event:\n", this.getClass().getSimpleName());
- for (SimTrackerHit simhit : simTrackerHits)
+ for (SimTrackerHit simhit : simTrackerHits) {
System.out.printf("%s sim hit at %s with MC particle pdgid %d with p %s \n", this.getClass().getSimpleName(), simhit.getPositionVec().toString(), simhit.getMCParticle().getPDGID(), simhit.getMCParticle().getMomentum().toString());
+ }
//System.out.printf("%s: these are all the MC particles in the event:\n",this.getClass().getSimpleName());
//System.exit(1);
}
- if (_debug > 0)
+ if (_debug > 0) {
if (htfTruth != null && simHit != null) {
double s_truthSimHit = HelixUtils.PathToXPlane(htfTruth, simHit.getPositionVec().z(), 0, 0).get(0);
Hep3Vector trkposTruthSimHit = HelixUtils.PointOnHelix(htfTruth, s_truthSimHit);
Hep3Vector resTruthSimHit = VecOp.sub(CoordinateTransformations.transformVectorToTracking(simHit.getPositionVec()), trkposTruthSimHit);
System.out.printf("TruthSimHit residual %s for layer %d\n", resTruthSimHit.toString(), strip.layer());
}
- }
+ }
+ }
+
+ //GBLDATA
+ GBLStripClusterData stripData = new GBLStripClusterData(millepedeId);
+ //Add to output list
+ stripClusterDataList.add(stripData);
//path length to intercept
double s = HelixUtils.PathToXPlane(htf, trkpos.x(), 0, 0).get(0);
double s3D = s / Math.cos(Math.atan(htf.slope()));
- if (textFile != null) {
- textFile.printStripPathLen(s);
- textFile.printStripPathLen3D(s3D);
- }
//GBLDATA
stripData.setPath(s);
stripData.setPath3D(s3D);
-
- //print stereo angle in YZ plane
- if (textFile != null) {
- textFile.printMeasDir(strip.u());
- textFile.printNonMeasDir(strip.v());
- textFile.printNormalDir(strip.w());
- }
//GBLDATA
stripData.setU(strip.u());
@@ -344,58 +358,59 @@
Hep3Vector tDir = HelixUtils.Direction(htf, s);
double phi = htf.phi0() - s / htf.R();
double lambda = Math.atan(htf.slope());
- if (textFile != null) {
- textFile.printStripTrackDir(Math.sin(phi), Math.sin(lambda));
- textFile.printStripTrackDirFull(tDir);
- }
//GBLDATA
stripData.setTrackDir(tDir);
stripData.setTrackPhi(phi);
stripData.setTrackLambda(lambda);
- // calculate isolation to other strip clusters
- double stripIsoMin = 9999.9;
- for (SiTrackerHitStrip1D stripHit : stripHits)
- if (stripHit.getRawHits().get(0).getDetectorElement().getName().equals(de.getName())) {
- SiTrackerHitStrip1D local = stripHit.getTransformedHit(TrackerHitType.CoordinateSystem.SENSOR);
- double d = Math.abs(strip.umeas() - local.getPosition()[0]);
- if (d < stripIsoMin && d > 0)
- stripIsoMin = d;
+ if (textFile != null) {
+ textFile.printStripPathLen(stripData.getPath());
+ textFile.printStripPathLen3D(stripData.getPath3D());
+ textFile.printMeasDir(stripData.getU());
+ textFile.printNonMeasDir(stripData.getV());
+ textFile.printNormalDir(stripData.getW());
+ textFile.printStripTrackDir(Math.sin(stripData.getTrackPhi()), Math.sin(stripData.getTrackLambda()));
+ textFile.printStripTrackDirFull(stripData.getTrackDirection());
+ }
+
+ if (_debug > 0 || textFile != null) {
+ // calculate isolation to other strip clusters
+ double stripIsoMin = 9999.9;
+ for (SiTrackerHitStrip1D stripHit : stripHits) {
+ if (stripHit.getRawHits().get(0).getDetectorElement().getName().equals(de.getName())) {
+ SiTrackerHitStrip1D local = stripHit.getTransformedHit(TrackerHitType.CoordinateSystem.SENSOR);
+ double d = Math.abs(strip.umeas() - local.getPosition()[0]);
+ if (d < stripIsoMin && d > 0) {
+ stripIsoMin = d;
+ }
+ }
}
- if (_debug > 0)
- System.out.printf("%s: stripIsoMin = %f \n", this.getClass().getSimpleName(), stripIsoMin);
-
- // Add isolation to text file output
- if (textFile != null)
- textFile.printStripIso(stripIsoMin);
+ if (_debug > 0) {
+ System.out.printf("%s: stripIsoMin = %f \n", this.getClass().getSimpleName(), stripIsoMin);
+ }
+
+ // Add isolation to text file output
+ if (textFile != null) {
+ textFile.printStripIso(stripIsoMin);
+ }
+ }
//Print residual in measurement system
// start by find the distance vector between the center and the track position
Hep3Vector vdiffTrk = VecOp.sub(trkpos, origin);
- Hep3Vector vdiffTrkTruth = htfTruth != null ? VecOp.sub(trkposTruth, origin) : null;
// then find the rotation from tracking to measurement frame
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);
- Hep3Vector trkposTruth_meas = vdiffTrkTruth != null ? VecOp.mult(trkToStripRot, vdiffTrkTruth) : null;
-
- // hit measurement and uncertainty in measurement frame
- Hep3Vector m_meas = new BasicHep3Vector(strip.umeas(), 0., 0.);
- Hep3Vector res_err_meas = new BasicHep3Vector(strip.du(), (strip.vmax() - strip.vmin()) / Math.sqrt(12), 10.0 / Math.sqrt(12));
-
- if (textFile != null)
- textFile.printStripMeas(m_meas.x());
-
- //if(textFile != null) {
- // textFile.printStripTrackPosMeasFrame(trkpos_meas);
- //}
+
//GBLDATA
stripData.setMeas(strip.umeas());
stripData.setTrackPos(trkpos_meas);
+ stripData.setMeasErr(strip.du());
if (_debug > 1) {
System.out.printf("%s: rotation matrix to meas frame\n%s\n", getClass().getSimpleName(), VecOp.toString(trkToStripRot));
@@ -404,57 +419,65 @@
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);
- Hep3Vector resTruth_meas = trkposTruth_meas != null ? VecOp.sub(m_meas, trkposTruth_meas) : null;
if (textFile != null) {
- textFile.printStripMeasRes(res_meas.x(), res_err_meas.x());
- textFile.printStripMeasResTruth(resTruth_meas != null ? resTruth_meas.x() : -9999999.9, res_err_meas.x());
- }
-
- //GBLDATA
- stripData.setMeasErr(res_err_meas.x());
-
- if (_debug > 0)
- System.out.printf("layer %d millePedeId %d uRes %.10f\n", strip.layer(), millepedeId, res_meas.x());
+ textFile.printStripMeas(stripData.getMeas());
+ textFile.printStripMeasRes(stripData.getMeas() - stripData.getTrackPos().x(), stripData.getMeasErr());
+ }
+
+ if (textFile != null) {
+ Hep3Vector vdiffTrkTruth = htfTruth != null ? VecOp.sub(trkposTruth, origin) : null;
+ Hep3Vector trkposTruth_meas = vdiffTrkTruth != null ? VecOp.mult(trkToStripRot, vdiffTrkTruth) : null;
+ // residual in measurement frame
+ Double resTruth_meas_x = trkposTruth_meas != null ? strip.umeas() - trkposTruth_meas.x() : null;
+ textFile.printStripMeasResTruth(resTruth_meas_x != null ? resTruth_meas_x : -9999999.9, strip.du());
+ }
+
+ if (_debug > 0) {
+ System.out.printf("layer %d millePedeId %d uRes %.10f\n", strip.layer(), millepedeId, stripData.getMeas() - stripData.getTrackPos().x());
+ }
// sim hit residual
- if (simHit != null) {
+ if (isMC && simHit != null) {
Hep3Vector simHitPos = CoordinateTransformations.transformVectorToTracking(simHit.getPositionVec());
- if (_debug > 0)
+ if (_debug > 0) {
System.out.printf("simHitPos %s\n", simHitPos.toString());
+ }
Hep3Vector vdiffSimHit = VecOp.sub(simHitPos, trkpos);
Hep3Vector simHitPos_meas = VecOp.mult(trkToStripRot, vdiffSimHit);
- if (textFile != null)
- textFile.printStripMeasResSimHit(simHitPos_meas.x(), res_err_meas.x());
- } else if (textFile != null)
+ if (textFile != null) {
+ textFile.printStripMeasResSimHit(simHitPos_meas.x(), stripData.getMeasErr());
+ }
+ } else if (textFile != null) {
textFile.printStripMeasResSimHit(-999999.9, -999999.9);
+ }
// find scattering angle
ScatterPoint scatter = scatters.getScatterPoint(((RawTrackerHit) strip.getStrip().rawhits().get(0)).getDetectorElement());
double scatAngle;
- if (scatter != null)
+ if (scatter != null) {
scatAngle = scatter.getScatterAngle().Angle();
- else {
- if (_debug > 0)
+ } else {
+ 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());
+ }
scatAngle = GblUtils.estimateScatter(strip, htf, _scattering, _B.magnitude());
}
-
- //print scatterer to file
- if (textFile != null)
- textFile.printStripScat(scatAngle);
//GBLDATA
stripData.setScatterAngle(scatAngle);
+ //print scatterer to file
+ if (textFile != null) {
+ textFile.printStripScat(stripData.getScatterAngle());
+ }
++istrip;
}
}
- if (_addBeamspot)
+ if (_addBeamspot) {
addBeamspotToHitList(htf, stripClusterDataList, istrip, htfTruth);
+ }
}
@@ -499,7 +522,7 @@
private void addBeamspotToHitList(HelicalTrackFit htf, List<GBLStripClusterData> stripClusterDataList, int istrip, HelicalTrackFit htfTruth) {
Hep3Vector targetNormal = new BasicHep3Vector(Math.cos(beamTilt), Math.sin(beamTilt), 0);
- int millepedeId = 665;
+ int millepedeId = 665;
List<HelicalTrackStrip> beamspotStrips = makeHelicalTrackStripsFromBeamSpot();
for (HelicalTrackStrip stripOld : beamspotStrips) {
HelicalTrackStripGbl strip = new HelicalTrackStripGbl(stripOld, false);
@@ -512,13 +535,14 @@
// else
// throw new ClassCastException("Detector element " + de.getName() + " couldn't be casted to " + HpsSiSensor.class.getName());
// int millepedeId = sensor.getMillepedeId();
-
- millepedeId ++;
- if (_debug > 0)
+ millepedeId++;
+ if (_debug > 0) {
System.out.printf("%s: layer %d millepede %d (DE=\"%s\", origin %s) \n", this.getClass().getSimpleName(), strip.layer(), millepedeId, "BeamSpot", strip.origin().toString());
-
- if (textFile != null)
+ }
+
+ if (textFile != null) {
textFile.printStrip(istrip, millepedeId, "BeamSpot");
+ }
//GBLDATA
GBLStripClusterData stripData = new GBLStripClusterData(millepedeId);
@@ -528,24 +552,28 @@
//Center of the sensor
Hep3Vector origin = strip.origin();
- if (textFile != null)
+ if (textFile != null) {
textFile.printOrigin(origin);
+ }
// associated 3D position of beamspot on target
- if (textFile != null)
+ if (textFile != null) {
textFile.printHitPos3D(new BasicHep3Vector(0, 0, 0));
+ }
//Find intercept point with sensor in tracking frame
// Hep3Vector trkpos = TrackUtils.getHelixPlaneIntercept(htf, strip, Math.abs(_B.z()));
Hep3Vector trkpos = TrackUtils.getHelixPlaneIntercept(htf, strip.w(), strip.origin(), Math.abs(_B.z()));
if (trkpos == null) {
- if (_debug > 0)
+ if (_debug > 0) {
System.out.println("Can't find track intercept; use sensor origin");
+ }
trkpos = strip.origin();
}
Hep3Vector trkposTruth = htfTruth != null ? TrackUtils.getHelixPlaneIntercept(htfTruth, strip.w(), strip.origin(), Math.abs(_B.z())) : new BasicHep3Vector(-999999.9, -999999.9, -999999.9);
- if (textFile != null)
+ if (textFile != null) {
textFile.printStripTrackPos(trkpos);
+ }
if (_debug > 0) {
System.out.printf("trkpos at intercept [%.10f %.10f %.10f]\n", trkpos.x(), trkpos.y(), trkpos.z());
System.out.printf("trkposTruth at intercept %s\n", trkposTruth != null ? trkposTruth.toString() : "no truth track");
@@ -559,8 +587,9 @@
System.out.printf("WARNING trkposDiff mag = %.10f [%.10f %.10f %.10f]\n", trkposDiff.magnitude(), trkposDiff.x(), trkposDiff.y(), trkposDiff.z());
System.exit(1);
}
- if (_debug > 0)
+ if (_debug > 0) {
System.out.printf("trkposXPlaneIter at intercept [%.10f %.10f %.10f]\n", trkposXPlaneIter.x(), trkposXPlaneIter.y(), trkposXPlaneIter.z());
+ }
}
// // Find the sim tracker hit for this layer
@@ -635,12 +664,14 @@
// stripIsoMin = d;
// }
- if (_debug > 0)
+ if (_debug > 0) {
System.out.printf("%s: stripIsoMin = %f \n", this.getClass().getSimpleName(), stripIsoMin);
+ }
// Add isolation to text file output
- if (textFile != null)
+ if (textFile != null) {
textFile.printStripIso(stripIsoMin);
+ }
//Print residual in measurement system
// start by find the distance vector between the center and the track position
@@ -649,9 +680,9 @@
// then find the rotation from tracking to measurement frame
// Hep3Matrix trkToStripRot = _trackerHitUtils.getTrackToStripRotation(strip.getStrip());
- Hep3Matrix trkToBeamSpot = new BasicHep3Matrix(Math.cos(beamTilt),Math.sin(beamTilt),0,
- -Math.sin(beamTilt),Math.cos(beamTilt),0,
- 0,0,1);
+ Hep3Matrix trkToBeamSpot = new BasicHep3Matrix(Math.cos(beamTilt), Math.sin(beamTilt), 0,
+ -Math.sin(beamTilt), Math.cos(beamTilt), 0,
+ 0, 0, 1);
// then rotate that vector into the measurement frame to get the predicted measurement position
Hep3Vector trkpos_meas = VecOp.mult(trkToBeamSpot, vdiffTrk);
Hep3Vector trkposTruth_meas = vdiffTrkTruth != null ? VecOp.mult(trkToBeamSpot, vdiffTrkTruth) : null;
@@ -660,8 +691,9 @@
Hep3Vector m_meas = new BasicHep3Vector(strip.umeas(), 0., 0.);
Hep3Vector res_err_meas = new BasicHep3Vector(strip.du(), (strip.vmax() - strip.vmin()) / Math.sqrt(12), 10.0 / Math.sqrt(12));
- if (textFile != null)
+ if (textFile != null) {
textFile.printStripMeas(m_meas.x());
+ }
//if(textFile != null) {
// textFile.printStripTrackPosMeasFrame(trkpos_meas);
@@ -688,15 +720,17 @@
//GBLDATA
stripData.setMeasErr(res_err_meas.x());
- if (_debug > 0)
+ if (_debug > 0) {
System.out.printf("layer %d millePedeId %d uRes %.10f\n", strip.layer(), millepedeId, res_meas.x());
+ }
//
double scatAngle = 0.0001;
//print scatterer to file
- if (textFile != null)
+ if (textFile != null) {
textFile.printStripScat(scatAngle);
+ }
//GBLDATA
stripData.setScatterAngle(scatAngle);
@@ -718,16 +752,19 @@
// cross-check
if (!mcp_pair.contains(mcp)) {
boolean hasBeamElectronParent = false;
- for (MCParticle parent : mcp.getParents())
- if (parent.getGeneratorStatus() != MCParticle.FINAL_STATE && parent.getPDGID() == 11 && parent.getMomentum().y() == 0.0 && Math.abs(parent.getMomentum().magnitude() - _beamEnergy) < 0.01)
+ for (MCParticle parent : mcp.getParents()) {
+ if (parent.getGeneratorStatus() != MCParticle.FINAL_STATE && parent.getPDGID() == 11 && parent.getMomentum().y() == 0.0 && Math.abs(parent.getMomentum().magnitude() - _beamEnergy) < 0.01) {
hasBeamElectronParent = true;
+ }
+ }
if (!hasBeamElectronParent) {
System.out.printf("%s: the matched MC particle is not an A' daughter and not a the recoil electrons!?\n", this.getClass().getSimpleName());
System.out.printf("%s: %s %d p %s org %s\n", this.getClass().getSimpleName(), mcp.getGeneratorStatus() == MCParticle.FINAL_STATE ? "F" : "I", mcp.getPDGID(), mcp.getMomentum().toString(), mcp.getOrigin().toString());
printMCParticles(mcParticles);
System.exit(1);
- } else if (_debug > 0)
+ } else if (_debug > 0) {
System.out.printf("%s: the matched MC particle is the recoil electron\n", this.getClass().getSimpleName());
+ }
}
}
@@ -736,19 +773,22 @@
Map<MCParticle, Integer> particlesOnTrack = new HashMap<MCParticle, Integer>();
- if (debug)
+ if (debug) {
System.out.printf("getmatched mc particle from %d tracker hits on the track \n", track.getTrackerHits().size());
+ }
for (TrackerHit hit : track.getTrackerHits()) {
List<MCParticle> mcps = ((HelicalTrackHit) hit).getMCParticles();
- if (mcps == null)
+ if (mcps == null) {
System.out.printf("%s: warning, this hit (layer %d pos=%s) has no mc particles.\n", this.getClass().getSimpleName(), ((HelicalTrackHit) hit).Layer(), ((HelicalTrackHit) hit).getCorrectedPosition().toString());
- else {
- if (debug)
+ } else {
+ if (debug) {
System.out.printf("%s: this hit (layer %d pos=%s) has %d mc particles.\n", this.getClass().getSimpleName(), ((HelicalTrackHit) hit).Layer(), ((HelicalTrackHit) hit).getCorrectedPosition().toString(), mcps.size());
+ }
for (MCParticle mcp : mcps) {
- if (!particlesOnTrack.containsKey(mcp))
+ if (!particlesOnTrack.containsKey(mcp)) {
particlesOnTrack.put(mcp, 0);
+ }
int c = particlesOnTrack.get(mcp);
particlesOnTrack.put(mcp, c + 1);
}
@@ -757,23 +797,26 @@
if (debug) {
System.out.printf("Track p=[ %f, %f, %f] \n", track.getTrackStates().get(0).getMomentum()[0], track.getTrackStates().get(0).getMomentum()[1], track.getTrackStates().get(0).getMomentum()[1]);
System.out.printf("FOund %d particles\n", particlesOnTrack.size());
- for (Map.Entry<MCParticle, Integer> entry : particlesOnTrack.entrySet())
+ for (Map.Entry<MCParticle, Integer> entry : particlesOnTrack.entrySet()) {
System.out.printf("%d hits assigned to %d p=%s \n", entry.getValue(), entry.getKey().getPDGID(), entry.getKey().getMomentum().toString());
+ }
}
Map.Entry<MCParticle, Integer> maxEntry = null;
- for (Map.Entry<MCParticle, Integer> entry : particlesOnTrack.entrySet())
- if (maxEntry == null || entry.getValue().compareTo(maxEntry.getValue()) > 0)
+ for (Map.Entry<MCParticle, Integer> entry : particlesOnTrack.entrySet()) {
+ if (maxEntry == null || entry.getValue().compareTo(maxEntry.getValue()) > 0) {
maxEntry = entry; //if ( maxEntry != null ) {
- // if(entry.getValue().compareTo(maxEntry.getValue()) < 0) continue;
- //}
+ } // if(entry.getValue().compareTo(maxEntry.getValue()) < 0) continue;
+ } //}
//maxEntry = entry;
- if (debug)
- if (maxEntry != null)
+ if (debug) {
+ if (maxEntry != null) {
System.out.printf("Matched particle with pdgId=%d and mom %s to track with charge %d and momentum [%f %f %f]\n",
maxEntry.getKey().getPDGID(), maxEntry.getKey().getMomentum().toString(),
track.getCharge(), track.getTrackStates().get(0).getMomentum()[0], track.getTrackStates().get(0).getMomentum()[1], track.getTrackStates().get(0).getMomentum()[2]);
- else
+ } else {
System.out.printf("No truth particle found on this track\n");
+ }
+ }
return maxEntry == null ? null : maxEntry.getKey();
}
@@ -906,22 +949,27 @@
Matrix error_matrix = MatrixOp.inverse(covariance);
BasicMatrix res = (BasicMatrix) MatrixOp.sub(p, pt);
BasicMatrix chi2 = (BasicMatrix) MatrixOp.mult(res, MatrixOp.mult(error_matrix, MatrixOp.transposed(res)));
- if (chi2.getNColumns() != 1 || chi2.getNRows() != 1)
+ if (chi2.getNColumns() != 1 || chi2.getNRows() != 1) {
throw new RuntimeException("matrix dim is screwed up!");
+ }
return chi2.e(0, 0);
}
private List<MCParticle> getAprimeDecayProducts(List<MCParticle> mcParticles) {
List<MCParticle> pair = new ArrayList<MCParticle>();
for (MCParticle mcp : mcParticles) {
- if (mcp.getGeneratorStatus() != MCParticle.FINAL_STATE)
+ if (mcp.getGeneratorStatus() != MCParticle.FINAL_STATE) {
continue;
+ }
boolean hasAprimeParent = false;
- for (MCParticle parent : mcp.getParents())
- if (Math.abs(parent.getPDGID()) == 622)
+ for (MCParticle parent : mcp.getParents()) {
+ if (Math.abs(parent.getPDGID()) == 622) {
hasAprimeParent = true;
- if (hasAprimeParent)
+ }
+ }
+ if (hasAprimeParent) {
pair.add(mcp);
+ }
}
if (pair.size() != 2) {
System.out.printf("%s: ERROR this event has %d mcp with 622 as parent!!?? \n", this.getClass().getSimpleName(), pair.size());
@@ -946,8 +994,9 @@
System.out.printf("%s: printMCParticles \n", this.getClass().getSimpleName());
System.out.printf("%s: %d mc particles \n", this.getClass().getSimpleName(), mcParticles.size());
for (MCParticle mcp : mcParticles) {
- if (mcp.getGeneratorStatus() != MCParticle.FINAL_STATE)
+ if (mcp.getGeneratorStatus() != MCParticle.FINAL_STATE) {
continue;
+ }
System.out.printf("\n%s: (%s) %d p %s org %s %s \n", this.getClass().getSimpleName(),
mcp.getGeneratorStatus() == MCParticle.FINAL_STATE ? "F" : "I", mcp.getPDGID(), mcp.getMomentum().toString(), mcp.getOrigin().toString(),
mcp.getParents().size() > 0 ? "parents:" : "");
@@ -955,10 +1004,11 @@
System.out.printf("%s: (%s) %d p %s org %s %s \n", this.getClass().getSimpleName(),
parent.getGeneratorStatus() == MCParticle.FINAL_STATE ? "F" : "I", parent.getPDGID(), parent.getMomentum().toString(), parent.getOrigin().toString(),
parent.getParents().size() > 0 ? "parents:" : "");
- for (MCParticle grparent : parent.getParents())
+ for (MCParticle grparent : parent.getParents()) {
System.out.printf("%s: (%s) %d p %s org %s %s \n", this.getClass().getSimpleName(),
grparent.getGeneratorStatus() == MCParticle.FINAL_STATE ? "F" : "I", grparent.getPDGID(), grparent.getMomentum().toString(), grparent.getOrigin().toString(),
grparent.getParents().size() > 0 ? "parents:" : "");
+ }
}
}
@@ -977,19 +1027,23 @@
return Math.sqrt(Math.pow(E1 + E2, 2) - VecOp.add(p1vec, p2vec).magnitudeSquared());
}
+ private static BasicMatrix getPerParVector(double kappa, double theta, double phi, double d0, double z0) {
+ BasicMatrix perPar = new BasicMatrix(1, 5);
+ perPar.setElement(0, 0, kappa);
+ perPar.setElement(0, 1, theta);
+ perPar.setElement(0, 2, phi);
+ perPar.setElement(0, 3, d0);
+ perPar.setElement(0, 4, z0);
+ return perPar;
+ }
+
private static BasicMatrix getPerParVector(HelicalTrackFit htf, double B) {
- BasicMatrix perPar = new BasicMatrix(1, 5);
if (htf != null) {
double kappa = -1.0 * Math.signum(B) / htf.R();
double theta = Math.PI / 2.0 - Math.atan(htf.slope());
- perPar.setElement(0, 0, kappa);
- perPar.setElement(0, 1, theta);
- perPar.setElement(0, 2, htf.phi0());
- perPar.setElement(0, 3, htf.dca());
- perPar.setElement(0, 4, htf.z0());
- }
- return perPar;
-
+ return getPerParVector(kappa, theta, htf.phi0(), htf.dca(), htf.z0());
+ }
+ return new BasicMatrix(1, 5);
}
public static class PerigeeParams {
@@ -998,6 +1052,10 @@
public PerigeeParams(HelicalTrackFit htf, double B) {
_params = getPerParVector(htf, B);
+ }
+
+ public PerigeeParams(double kappa, double theta, double phi, double d0, double z0) {
+ this._params = getPerParVector(kappa, theta, phi, d0, z0);
}
public BasicMatrix getParams() {
@@ -1082,8 +1140,9 @@
public ClParams(HelicalTrackFit htf, double B) {
- if (htf == null)
+ if (htf == null) {
return;
+ }
Hep3Matrix perToClPrj = getPerToClPrj(htf);
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 Wed Sep 30 18:41:59 2015
@@ -7,143 +7,146 @@
import org.lcsim.event.GenericObject;
/**
- *
- *
+ *
+ *
* @version $Id:
*/
public class GBLTrackData implements GenericObject {
-
- /*
- *
- * Interface enumerator to access the correct data
- *
- */
- private static class GBLINT {
- public static final int ID = 0;
- public static final int BANK_INT_SIZE = 1;
- }
- public static class GBLDOUBLE {
- public static final int PERKAPPA =0;
- public static final int PERTHETA = 1;
- public static final int PERPHI = 2;
- public static final int PERD0 = 3;
- public static final int PERZ0 = 4;
- // 9 entries from projection matrix from perigee to curvilinear frame
- public static final int BANK_DOUBLE_SIZE = 5+9;
- }
- // array holding the integer data
- private int bank_int[] = new int[GBLINT.BANK_INT_SIZE];
- // array holding the double data
- private double bank_double[] = new double[GBLDOUBLE.BANK_DOUBLE_SIZE];
-
- /**
- * Default constructor
- */
- public GBLTrackData(int id) {
- setTrackId(id);
- }
-
- /*
- * Constructor from GenericObject
- * TODO add size checks for backwards compatability
- */
- public GBLTrackData(GenericObject o)
- {
- for(int i=0; i<GBLINT.BANK_INT_SIZE; ++i)
- {
- bank_int[i] = o.getIntVal(i);
- }
- for(int i=0; i<GBLDOUBLE.BANK_DOUBLE_SIZE; ++i)
- {
- bank_double[i] = o.getDoubleVal(i);
- }
-
- }
-
- /**
- * @param set track id to val
- */
- public void setTrackId(int val) {
- bank_int[GBLINT.ID] = val;
- }
-
- /**
- * @return track id for this object
- */
- public int getTrackId() {
- return this.getIntVal(GBLINT.ID);
- }
-
- /**
- * @param perPar is the perigee parameters that is added to object
- */
- public void setPerigeeTrackParameters(PerigeeParams perPar) {
- this.bank_double[GBLDOUBLE.PERKAPPA] = perPar.getKappa();
- this.bank_double[GBLDOUBLE.PERTHETA] = perPar.getTheta();
- this.bank_double[GBLDOUBLE.PERPHI] = perPar.getPhi();
- 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;
- if(idx>8) {
- System.out.printf("%s: ERROR to large matrix\n", this.getClass().getSimpleName());
- System.exit(1);
- }
- this.bank_double[idx+5] = val;
- }
- public Hep3Matrix getPrjPerToCl() {
- BasicHep3Matrix matrix = new BasicHep3Matrix();
- for(int row=0; row<3; ++row) {
- for(int col=0; col<3; ++ col) {
- matrix.setElement(row, col, getPrjPerToClVal(row, col));
- }
- }
- return matrix;
- }
+ /*
+ *
+ * Interface enumerator to access the correct data
+ *
+ */
+ private static class GBLINT {
- private double getPrjPerToClVal(int row, int col) {
- int idx = col + row*3;
- return this.bank_double[idx+5];
+ public static final int ID = 0;
+ public static final int BANK_INT_SIZE = 1;
}
- /*
- * The functions below are all overide from
- * @see org.lcsim.event.GenericObject#getNInt()
- */
-
- public int getNInt() {
- return GBLINT.BANK_INT_SIZE;
- }
+ public static class GBLDOUBLE {
- public int getNFloat() {
- return 0;
- }
+ public static final int PERKAPPA = 0;
+ public static final int PERTHETA = 1;
+ public static final int PERPHI = 2;
+ public static final int PERD0 = 3;
+ public static final int PERZ0 = 4;
+ // 9 entries from projection matrix from perigee to curvilinear frame
+ public static final int BANK_DOUBLE_SIZE = 5 + 9;
+ }
+ // array holding the integer data
+ private int bank_int[] = new int[GBLINT.BANK_INT_SIZE];
+ // array holding the double data
+ private double bank_double[] = new double[GBLDOUBLE.BANK_DOUBLE_SIZE];
- public int getNDouble() {
- return GBLDOUBLE.BANK_DOUBLE_SIZE;
- }
+ /**
+ * Default constructor
+ */
+ public GBLTrackData(int id) {
+ setTrackId(id);
+ }
- public int getIntVal(int index) {
- return bank_int[index];
- }
+ /*
+ * Constructor from GenericObject
+ * TODO add size checks for backwards compatability
+ */
+ public GBLTrackData(GenericObject o) {
+ for (int i = 0; i < GBLINT.BANK_INT_SIZE; ++i) {
+ bank_int[i] = o.getIntVal(i);
+ }
+ for (int i = 0; i < GBLDOUBLE.BANK_DOUBLE_SIZE; ++i) {
+ bank_double[i] = o.getDoubleVal(i);
+ }
- public float getFloatVal(int index) {
- return 0;
- }
+ }
- public double getDoubleVal(int index) {
- return bank_double[index];
- }
+ /**
+ * @param set track id to val
+ */
+ public void setTrackId(int val) {
+ bank_int[GBLINT.ID] = val;
+ }
- public boolean isFixedSize() {
- return false;
- }
+ /**
+ * @return track id for this object
+ */
+ public int getTrackId() {
+ return this.getIntVal(GBLINT.ID);
+ }
-
+ /**
+ * @param perPar is the perigee parameters that is added to object
+ */
+ public void setPerigeeTrackParameters(PerigeeParams perPar) {
+ this.bank_double[GBLDOUBLE.PERKAPPA] = perPar.getKappa();
+ this.bank_double[GBLDOUBLE.PERTHETA] = perPar.getTheta();
+ this.bank_double[GBLDOUBLE.PERPHI] = perPar.getPhi();
+ this.bank_double[GBLDOUBLE.PERD0] = perPar.getD0();
+ this.bank_double[GBLDOUBLE.PERZ0] = perPar.getZ0();
+ }
-}
+ public PerigeeParams getPerigeeTrackParameters() {
+ return new PerigeeParams(this.bank_double[GBLDOUBLE.PERKAPPA],
+ this.bank_double[GBLDOUBLE.PERTHETA],
+ this.bank_double[GBLDOUBLE.PERPHI],
+ this.bank_double[GBLDOUBLE.PERD0],
+ this.bank_double[GBLDOUBLE.PERZ0]);
+ }
+
+ public void setPrjPerToCl(int row, int col, double val) {
+ int idx = col + row * 3;
+ if (idx > 8) {
+ System.out.printf("%s: ERROR to large matrix\n", this.getClass().getSimpleName());
+ System.exit(1);
+ }
+ this.bank_double[idx + 5] = val;
+ }
+
+ public Hep3Matrix getPrjPerToCl() {
+ BasicHep3Matrix matrix = new BasicHep3Matrix();
+ for (int row = 0; row < 3; ++row) {
+ for (int col = 0; col < 3; ++col) {
+ matrix.setElement(row, col, getPrjPerToClVal(row, col));
+ }
+ }
+ return matrix;
+ }
+
+ private double getPrjPerToClVal(int row, int col) {
+ int idx = col + row * 3;
+ return this.bank_double[idx + 5];
+ }
+
+ /*
+ * The functions below are all overide from
+ * @see org.lcsim.event.GenericObject#getNInt()
+ */
+ public int getNInt() {
+ return GBLINT.BANK_INT_SIZE;
+ }
+
+ public int getNFloat() {
+ return 0;
+ }
+
+ public int getNDouble() {
+ return GBLDOUBLE.BANK_DOUBLE_SIZE;
+ }
+
+ public int getIntVal(int index) {
+ return bank_int[index];
+ }
+
+ public float getFloatVal(int index) {
+ return 0;
+ }
+
+ public double getDoubleVal(int index) {
+ return bank_double[index];
+ }
+
+ public boolean isFixedSize() {
+ return false;
+ }
+
+}
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 Wed Sep 30 18:41:59 2015
@@ -158,12 +158,16 @@
int trackNum = 0;
logger.info("Trying to fit " + stripsGblMap.size() + " tracks");
for (GBLTrackData t : stripsGblMap.keySet()) {
- FittedGblTrajectory traj = fit(stripsGblMap.get(t), bfac);
+ FittedGblTrajectory traj = fit(stripsGblMap.get(t), bfac, _debug);
++trackNum;
if (traj != null) {
logger.info("GBL fit successful");
if (_debug) {
System.out.printf("%s: GBL fit successful.\n", getClass().getSimpleName());
+ }
+ // write to MP binary file
+ if (writeMilleBinary) {
+ traj.get_traj().milleOut(mille);
}
traj.set_seed(gblToSeedMap.get(t));
traj.set_track_data(t);
@@ -190,7 +194,7 @@
}
- private FittedGblTrajectory fit(List<GBLStripClusterData> hits, double bfac) {
+ private static FittedGblTrajectory fit(List<GBLStripClusterData> hits, double bfac, boolean debug) {
// path length along trajectory
double s = 0.;
@@ -213,14 +217,15 @@
for (int istrip = 0; istrip != n_strips; ++istrip) {
GBLStripClusterData strip = hits.get(istrip);
//MG--9/18/2015--beamspot has Id=666/667...don't include it in the GBL fit
- if(strip.getId()>99)
+ if (strip.getId() > 99) {
continue;
- if (_debug) {
+ }
+ if (debug) {
System.out.println("HpsGblFitter: Processing strip " + istrip + " with id/layer " + strip.getId());
}
// Path length step for this cluster
double step = strip.getPath3D() - s;
- if (_debug) {
+ if (debug) {
System.out.println("HpsGblFitter: " + "Path length step " + step + " from " + s + " to " + strip.getPath3D());
}
@@ -237,13 +242,13 @@
mDir.set(1, 0, v.x());
mDir.set(1, 1, v.y());
mDir.set(1, 2, v.z());
- if (_debug) {
+ if (debug) {
System.out.println("HpsGblFitter: " + "mDir");
mDir.print(4, 6);
}
Matrix mDirT = mDir.copy().transpose();
- if (_debug) {
+ if (debug) {
System.out.println("HpsGblFitter: " + "mDirT");
mDirT.print(4, 6);
}
@@ -254,7 +259,7 @@
double sinPhi = sin(strip.getTrackPhi());//->GetPhi());
double cosPhi = sqrt(1.0 - sinPhi * sinPhi);
- if (_debug) {
+ if (debug) {
System.out.println("HpsGblFitter: " + "Track direction sinLambda=" + sinLambda + " sinPhi=" + sinPhi);
}
@@ -268,7 +273,7 @@
uvDir.set(1, 1, -sinLambda * sinPhi);
uvDir.set(1, 2, cosLambda);
- if (_debug) {
+ if (debug) {
System.out.println("HpsGblFitter: " + "uvDir");
uvDir.print(6, 4);
}
@@ -281,7 +286,7 @@
proL2m = proL2m.inverse();
proL2m_list.put(strip.getId(), proL2m.copy()); // is a copy needed or is that just a C++/root thing?
- if (_debug) {
+ if (debug) {
System.out.println("HpsGblFitter: " + "proM2l:");
proM2l.print(4, 6);
System.out.println("HpsGblFitter: " + "proL2m:");
@@ -305,7 +310,7 @@
measPrec.set(0, 1.0 / (measErr.get(0) * measErr.get(0)));
measPrec.set(1, 0.);
- if (_debug) {
+ if (debug) {
System.out.println("HpsGblFitter: " + "meas: ");
meas.print(4, 6);
System.out.println("HpsGblFitter: " + "measErr:");
@@ -317,7 +322,7 @@
//Find the Jacobian to be able to propagate the covariance matrix to this strip position
jacPointToPoint = gblSimpleJacobianLambdaPhi(step, cosLambda, abs(bfac));
- if (_debug) {
+ if (debug) {
System.out.println("HpsGblFitter: " + "jacPointToPoint to extrapolate to this point:");
jacPointToPoint.print(4, 6);
}
@@ -341,7 +346,7 @@
Matrix measMsCov = proL2m.times((msCov.getMatrix(3, 4, 3, 4)).times(proL2mTransposed));
- if (_debug) {
+ if (debug) {
System.out.println("HpsGblFitter: " + " msCov at this point:");
msCov.print(4, 6);
System.out.println("HpsGblFitter: " + "measMsCov at this point:");
@@ -367,7 +372,7 @@
// add scatterer if not using the uncorrelated MS covariances for testing
if (!useUncorrMS) {
point.addScatterer(scat, scatPrec);
- if (_debug) {
+ if (debug) {
System.out.println("HpsGblFitter: " + "adding scatError to this point:");
scatErr.print(4, 6);
}
@@ -440,7 +445,7 @@
}
// print the trajectory
- if (_debug) {
+ if (debug) {
System.out.println("%%%% Gbl Trajectory ");
traj.printTrajectory(1);
traj.printData();
@@ -454,7 +459,7 @@
Vector aCorrection = new Vector(5);
SymMatrix aCovariance = new SymMatrix(5);
traj.getResults(1, aCorrection, aCovariance);
- if (_debug) {
+ if (debug) {
System.out.println(" cor ");
aCorrection.print(6, 4);
System.out.println(" cov ");
@@ -463,10 +468,6 @@
logger.fine("locPar " + aCorrection.toString());
-// // write to MP binary file
- if (writeMilleBinary) {
- traj.milleOut(mille);
- }
//
return new FittedGblTrajectory(traj, dVals[0], iVals[0], dVals[1]);
}
@@ -475,7 +476,7 @@
protected void detectorChanged(Detector detector) {
}
- private Matrix gblSimpleJacobianLambdaPhi(double ds, double cosl, double bfac) {
+ private static Matrix gblSimpleJacobianLambdaPhi(double ds, double cosl, double bfac) {
/**
* Simple jacobian: quadratic in arc length difference. using lambda phi
* as directions
|