diff --git a/tracking/src/main/java/org/hps/recon/tracking/kalman/KalmanInterface.java b/tracking/src/main/java/org/hps/recon/tracking/kalman/KalmanInterface.java index e72b67dc6..2449118e8 100644 --- a/tracking/src/main/java/org/hps/recon/tracking/kalman/KalmanInterface.java +++ b/tracking/src/main/java/org/hps/recon/tracking/kalman/KalmanInterface.java @@ -1039,6 +1039,15 @@ private boolean fillAllMeasurements(EventHeader event) { // Get the collection of 1D hits String stripHitInputCollectionName = "StripClusterer_SiTrackerHitStrip1D"; List striphits = event.get(TrackerHit.class, stripHitInputCollectionName); + + // LCRelations + String fittedHitsCollectionName = "SVTFittedRawTrackerHits"; + List _fittedHits = event.get(LCRelation.class, fittedHitsCollectionName); + + Map fittedRawTrackerHitMap = new HashMap(); + for (LCRelation fittedHit : _fittedHits) { + fittedRawTrackerHitMap.put(FittedRawTrackerHit.getRawTrackerHit(fittedHit), fittedHit); + } if (striphits.size() > maxHits) maxHits = striphits.size(); if (striphits.size() > 200) nBigEvents++; @@ -1175,18 +1184,15 @@ private boolean fillAllMeasurements(EventHeader event) { fitter.setRunNum(event.getRunNumber()); double Variance=0.0; for(RawTrackerHit rth: rawhits){ - double Min = 10000; - for(ShapeFitParameters fit : fitter.fitShape(rth, shape)){ - if(fit.getT0Err()1){ - Variance+=1/(Min*Min); - } + double t0err = FittedRawTrackerHit.getT0Err(fittedRawTrackerHitMap.get(rth)); + Variance+=1.0/(t0err*t0err); + // Why were we ignoring Layer 0...? + // if(module.Layer>1){ + // Variance+=1/(Min*Min); + // } } Variance=1.0/Variance; - Measurement m = new Measurement(umeas, xStrip, du, time, localHit.getdEdx()*1000000.,Variance); + Measurement m = new Measurement(umeas, xStrip, du, time, localHit.getdEdx()*1000000.0,Variance); module.addMeasurement(m); hitMap.put(m, hit); hitsFilled++;