From ca2cf88b1afa359c93480ff603845d8d398b1348 Mon Sep 17 00:00:00 2001 From: Matthew Gignac Date: Tue, 21 Jan 2025 15:57:54 -0800 Subject: [PATCH 1/2] adding hit pattern --- .../tracking/kalman/KalmanInterface.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 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 7af2c018a..7a9ed478f 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 @@ -4,6 +4,8 @@ import java.io.FileNotFoundException; import java.io.PrintWriter; +import java.lang.reflect.Array; + import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; @@ -568,20 +570,28 @@ public BaseTrack createTrack(KalTrack kT, boolean storeTrackStates) { newTrack.setTrackParameters(ts.getParameters(), B); newTrack.setCovarianceMatrix(new SymmetricMatrix(5, ts.getCovMatrix(), true)); } - // Add the hits to the track int firstHit_idx = -1; int lastHit_idx = -1; int idx = -1; + + int hitPattern[] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0}; + for (MeasurementSite site : kT.SiteList) { idx = idx + 1; if (site.hitID < 0) continue; if (firstHit_idx < 0) firstHit_idx = idx; lastHit_idx = idx; + + TrackerHit ht = this.getHpsHit(site.m.hits.get(site.hitID)); + List rawHits = ht.getRawHits(); + for (RawTrackerHit rawHit : rawHits) { + HpsSiSensor sensor = (HpsSiSensor) rawHit.getDetectorElement(); + Array.set(hitPattern,sensor.getLayerNumber()-1,1); + } newTrack.addHit(getHpsHit(site.m.hits.get(site.hitID))); } - //System.out.printf("PF::Debug::newTrack site size %d \n",newTrack.getTrackerHits().size()); - + // Get the track states at each layer for (int i = 0; i < kT.SiteList.size(); i++) { MeasurementSite site = kT.SiteList.get(i); @@ -634,8 +644,9 @@ public BaseTrack createTrack(KalTrack kT, boolean storeTrackStates) { newTrack.setChisq(kT.chi2); newTrack.setNDF(newTrack.getTrackerHits().size() - 5); newTrack.setTrackType(BaseTrack.TrackType.Y_FIELD.ordinal()); + newTrack.setSubdetectorHitNumbers(hitPattern); newTrack.setFitSuccess(true); - + return newTrack; } From 9e14a1fabd205241158f34cb2dcbc1b8b29bf013 Mon Sep 17 00:00:00 2001 From: Matthew Gignac Date: Tue, 21 Jan 2025 16:02:25 -0800 Subject: [PATCH 2/2] addHit with existing getHpsHit call --- .../java/org/hps/recon/tracking/kalman/KalmanInterface.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 7a9ed478f..23adc661a 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 @@ -589,7 +589,7 @@ public BaseTrack createTrack(KalTrack kT, boolean storeTrackStates) { HpsSiSensor sensor = (HpsSiSensor) rawHit.getDetectorElement(); Array.set(hitPattern,sensor.getLayerNumber()-1,1); } - newTrack.addHit(getHpsHit(site.m.hits.get(site.hitID))); + newTrack.addHit(ht); } // Get the track states at each layer