From 20fa0e4317ee4367e0ecb4f2a658a60118ed4ab3 Mon Sep 17 00:00:00 2001 From: rodwyer100 Date: Sun, 30 Mar 2025 22:23:23 -0700 Subject: [PATCH 1/4] Update Measurement.java --- .../org/hps/recon/tracking/kalman/Measurement.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tracking/src/main/java/org/hps/recon/tracking/kalman/Measurement.java b/tracking/src/main/java/org/hps/recon/tracking/kalman/Measurement.java index be87e0bd3f..8ef955a424 100644 --- a/tracking/src/main/java/org/hps/recon/tracking/kalman/Measurement.java +++ b/tracking/src/main/java/org/hps/recon/tracking/kalman/Measurement.java @@ -28,6 +28,19 @@ class Measurement { // tksMC = null; } + Measurement(double value, double xStrip, double resolution, double t, double E, double terr) { + v = value; + x = xStrip; + sigma = resolution; + time = t; + timeErr = terr; + energy = E; + tracks = new ArrayList(); + vTrue = 0.; + rGlobal = null; + tksMC = null; + } + Measurement(double value, double xStrip, double resolution, double t, double E, Vec rGlobal, double vTrue) { v = value; x = xStrip; From 300ff77d731a459176754c5290997bfac35ef415 Mon Sep 17 00:00:00 2001 From: rodwyer100 Date: Sun, 30 Mar 2025 22:28:29 -0700 Subject: [PATCH 2/4] Update KalTrack.java --- .../java/org/hps/recon/tracking/kalman/KalTrack.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tracking/src/main/java/org/hps/recon/tracking/kalman/KalTrack.java b/tracking/src/main/java/org/hps/recon/tracking/kalman/KalTrack.java index c617c6a24b..74998a3a40 100644 --- a/tracking/src/main/java/org/hps/recon/tracking/kalman/KalTrack.java +++ b/tracking/src/main/java/org/hps/recon/tracking/kalman/KalTrack.java @@ -19,6 +19,8 @@ import org.ejml.interfaces.linsol.LinearSolverDense; import org.hps.util.Pair; +import org.lcsim.event.TrackerHit; + /** * Track followed and fitted by the Kalman filter */ @@ -138,6 +140,7 @@ public class KalTrack { Cp = null; // Fill the maps time = 0.; + double terr = 0.0; tMin = 9.9e9; tMax = -9.9e9; this.chi2 = 0.; @@ -150,7 +153,9 @@ public class KalTrack { continue; } nHits++; - time += site.m.hits.get(site.hitID).time; + double hTV = site.m.hits.get(site.hitID).timeErr; + time += site.m.hits.get(site.hitID).time/hTV; + terr += 1.0/hTV; tMin = Math.min(tMin, site.m.hits.get(site.hitID).time); tMax = Math.max(tMax, site.m.hits.get(site.hitID).time); this.chi2 += site.chi2inc; @@ -158,7 +163,7 @@ public class KalTrack { System.out.format(" Layer %d, chi^2 increment=%10.5f, a=%s\n", site.m.Layer, site.chi2inc, site.aS.helix.a.toString()); } } - time = time / (double) nHits; + time = time / terr; reducedChi2 = chi2 / (double) nHits; lyrMap = null; millipedeMap = null; From 1ad53d663841f27b372dcfaddaf193eedb58809c Mon Sep 17 00:00:00 2001 From: rodwyer100 Date: Sun, 30 Mar 2025 22:34:34 -0700 Subject: [PATCH 3/4] Update KalmanInterface.java --- .../tracking/kalman/KalmanInterface.java | 40 ++++++++++++++++++- 1 file changed, 38 insertions(+), 2 deletions(-) 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 23adc661a4..0316e91eaa 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 @@ -48,6 +48,25 @@ import org.lcsim.geometry.IDDecoder; import org.lcsim.recon.tracking.digitization.sisim.SiTrackerHitStrip1D; import org.lcsim.recon.tracking.digitization.sisim.TrackerHitType; +import org.hps.recon.tracking.FittedRawTrackerHit; +import org.hps.recon.tracking.ShaperFitAlgorithm; +import org.hps.recon.tracking.ShaperPileupFitAlgorithm; +import org.hps.recon.tracking.PulseShape; +import org.hps.recon.tracking.ShapeFitParameters; + +import org.hps.conditions.database.DatabaseConditionsManager; +import org.hps.conditions.svt.SvtSyncStatus.SvtSyncStatusCollection; +import org.hps.conditions.svt.SvtTimingConstants; +import org.hps.readout.ecal.ReadoutTimestamp; +import org.hps.readout.svt.HPSSVTConstants; +import org.hps.recon.ecal.cluster.TriggerTime; +import org.lcsim.detector.tracker.silicon.HpsSiSensor; +import org.lcsim.event.EventHeader; +import org.lcsim.event.RawTrackerHit; +import org.lcsim.geometry.Detector; +import org.lcsim.lcio.LCIOConstants; +import org.lcsim.recon.cat.util.Const; +import org.lcsim.util.Driver; /** * This class provides an interface between hps-java and the Kalman Filter fitting and pattern recognition code. @@ -1058,7 +1077,24 @@ private boolean fillAllMeasurements(EventHeader event) { globalX.print("globalX"); globalY.print("globalY"); } - Measurement m = new Measurement(umeas, xStrip, du, time, localHit.getdEdx()*1000000.); + List rawhits = hit.getRawHits(); + ShaperFitAlgorithm fitter = new ShaperPileupFitAlgorithm(.5,1); + PulseShape shape = new PulseShape.FourPole(); + 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); + } + } + Variance=1.0/Variance; + Measurement m = new Measurement(umeas, xStrip, du, time, localHit.getdEdx()*1000000.,Variance); module.addMeasurement(m); hitMap.put(m, hit); hitsFilled++; @@ -1159,7 +1195,7 @@ private double fillMeasurements(List hits1D, int addMode) { globalX.print("globalX"); globalY.print("globalY"); } - Measurement m = new Measurement(umeas, xStrip, du, 0., hit.getdEdx()*1000000.); + Measurement m = new Measurement(umeas, xStrip, du, 0., hit.getdEdx()*1000000.,1.0); KalHit hitPair = new KalHit(mod,m); trackHitsKalman.add(hitPair); From 66320b0e55aee6055267e4b182d919b285c93abf Mon Sep 17 00:00:00 2001 From: rodwyer100 Date: Mon, 31 Mar 2025 08:09:28 -0700 Subject: [PATCH 4/4] Update Measurement.java --- .../src/main/java/org/hps/recon/tracking/kalman/Measurement.java | 1 + 1 file changed, 1 insertion(+) diff --git a/tracking/src/main/java/org/hps/recon/tracking/kalman/Measurement.java b/tracking/src/main/java/org/hps/recon/tracking/kalman/Measurement.java index 8ef955a424..c5a5d9bbb2 100644 --- a/tracking/src/main/java/org/hps/recon/tracking/kalman/Measurement.java +++ b/tracking/src/main/java/org/hps/recon/tracking/kalman/Measurement.java @@ -10,6 +10,7 @@ class Measurement { // double x; // X of the center of the strip in the detector frame double sigma; // Measurement uncertainty double time; // Time of the hit in ns + double timeErr; // Standard deviation of time measurement. double energy; // Energy deposited in the silicon double vTrue; // MC truth measurement value Vec rGlobal; // Global MC truth