From 7da7b2a74283fc8504876e07ea9ae234a1b3174c Mon Sep 17 00:00:00 2001 From: tongtongcao Date: Mon, 26 Oct 2026 15:17:08 -0400 Subject: [PATCH 1/2] Momentum magnitude for forward tracks, estimated by AI, needs to be scaled by the scale factor of magnetic field --- .../main/java/org/jlab/rec/dc/track/TrackCandListFinder.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/TrackCandListFinder.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/TrackCandListFinder.java index f90b26236a..092e416cff 100644 --- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/TrackCandListFinder.java +++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/TrackCandListFinder.java @@ -9,6 +9,7 @@ import java.util.logging.Level; import java.util.logging.Logger; import org.jlab.clas.swimtools.Swim; +import org.jlab.clas.swimtools.Swimmer; import org.jlab.detector.geant4.v2.DCGeant4Factory; import org.jlab.geom.prim.Line3D; import org.jlab.geom.prim.Point3D; @@ -254,6 +255,10 @@ public List getTrackCandsAI(CrossList crossList, DCGeant4Factory DcDetect initSV.tx = estSV[2]; initSV.ty = estSV[3]; initSV.Q = estSV[4]; + + double absTorScale = Math.abs(Swimmer.getTorScale()); + if(absTorScale != 1 && absTorScale != 0) + initSV.Q = estSV[4] / absTorScale; // Momentum magnitude is scaled by the scale factor of magnetic field RungeKuttaDoca rk = new RungeKuttaDoca(); rk.SwimToZ(sector, initSV, dcSwim, measSurfaces.get(0).wireLine[0].end().z(), new float[3]); From 4bf9fe4d3f7495a16a13c67953182d0a53eae64a Mon Sep 17 00:00:00 2001 From: tongtongcao Date: Thu, 29 Oct 2026 16:37:59 -0400 Subject: [PATCH 2/2] polish update --- .../main/java/org/jlab/rec/dc/track/TrackCandListFinder.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/TrackCandListFinder.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/TrackCandListFinder.java index 092e416cff..952d3d80ea 100644 --- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/TrackCandListFinder.java +++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/TrackCandListFinder.java @@ -257,8 +257,7 @@ public List getTrackCandsAI(CrossList crossList, DCGeant4Factory DcDetect initSV.Q = estSV[4]; double absTorScale = Math.abs(Swimmer.getTorScale()); - if(absTorScale != 1 && absTorScale != 0) - initSV.Q = estSV[4] / absTorScale; // Momentum magnitude is scaled by the scale factor of magnetic field + initSV.Q = absTorScale>0.001 ? estSV[4]/absTorScale : estSV[4]; // Momentum magnitude is scaled by the scale factor of magnetic field RungeKuttaDoca rk = new RungeKuttaDoca(); rk.SwimToZ(sector, initSV, dcSwim, measSurfaces.get(0).wireLine[0].end().z(), new float[3]);