From d43a25da4cd60a90264d045a77e31459f62daa7c Mon Sep 17 00:00:00 2001 From: Maurik Holtrop Date: Mon, 15 Apr 2024 16:02:13 -0400 Subject: [PATCH] Move the track extrapolation from dipole edge to z=800 --- .../hps/recon/tracking/BeamlineConstants.java | 2 ++ .../java/org/hps/recon/tracking/TrackUtils.java | 16 ++++++++-------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/tracking/src/main/java/org/hps/recon/tracking/BeamlineConstants.java b/tracking/src/main/java/org/hps/recon/tracking/BeamlineConstants.java index 023a5a7bd5..b989f4f981 100644 --- a/tracking/src/main/java/org/hps/recon/tracking/BeamlineConstants.java +++ b/tracking/src/main/java/org/hps/recon/tracking/BeamlineConstants.java @@ -18,6 +18,8 @@ private BeamlineConstants() { public static final double DIPOLE_EDGE_ENG_RUN = 457.2 + 1080 / 2; + public static final double ECAL_TRACK_EXTRAPOLATION_START_Z = 800; // Starting point for track extrapolation to ECAL -- MWH 2024/4/15 + public static final double HODO_L1_ZPOS = 1103.5; //extracted from detector element mg--7/17/2019 public static final double HODO_L2_ZPOS = 1115.5; //extracted from detector element mg--7/17/2019 diff --git a/tracking/src/main/java/org/hps/recon/tracking/TrackUtils.java b/tracking/src/main/java/org/hps/recon/tracking/TrackUtils.java index 47d18bda5f..4537c2d005 100644 --- a/tracking/src/main/java/org/hps/recon/tracking/TrackUtils.java +++ b/tracking/src/main/java/org/hps/recon/tracking/TrackUtils.java @@ -648,7 +648,7 @@ public static BaseTrackState getTrackExtrapAtEcal(TrackState track, FieldMap fie if (4441 < runNumber && runNumber < 8100) zAtEcal = BeamlineConstants.ECAL_FACE_ENGINEERING_RUNS; - BaseTrackState bts = extrapolateTrackUsingFieldMap(track, BeamlineConstants.DIPOLE_EDGE_ENG_RUN, zAtEcal, 5.0, fieldMap); + BaseTrackState bts = extrapolateTrackUsingFieldMap(track, BeamlineConstants.ECAL_TRACK_EXTRAPOLATION_START_Z, zAtEcal, 5.0, fieldMap); bts.setLocation(TrackState.AtCalorimeter); return bts; } @@ -663,9 +663,9 @@ public static BaseTrackState getTrackExtrapAtEcalRK(TrackState ts, FieldMap fM, if (4441 < runNumber && runNumber < 8100) zAtEcal = BeamlineConstants.ECAL_FACE_ENGINEERING_RUNS; - Hep3Vector startPos = extrapolateHelixToXPlane(ts, BeamlineConstants.DIPOLE_EDGE_ENG_RUN); + Hep3Vector startPos = extrapolateHelixToXPlane(ts, BeamlineConstants.ECAL_TRACK_EXTRAPOLATION_START_Z); Hep3Vector startPosTrans = CoordinateTransformations.transformVectorToDetector(startPos); - double distanceZ = zAtEcal - BeamlineConstants.DIPOLE_EDGE_ENG_RUN; + double distanceZ = zAtEcal - BeamlineConstants.ECAL_TRACK_EXTRAPOLATION_START_Z; double charge = -1.0 * Math.signum(getR(ts)); org.hps.util.Pair RKresults = extrapolateTrackUsingFieldMapRK(ts, startPosTrans, distanceZ, stepSize, fM); @@ -711,14 +711,14 @@ public static BaseTrackState getTrackExtrapAtHodoRK(TrackState ts, FieldMap fM, } public static BaseTrackState getTrackExtrapAtHodoRK(TrackState ts, FieldMap fM, double stepSize, int hodoLayer) { - Hep3Vector startPos = extrapolateHelixToXPlane(ts, BeamlineConstants.DIPOLE_EDGE_ENG_RUN); + Hep3Vector startPos = extrapolateHelixToXPlane(ts, BeamlineConstants.ECAL_TRACK_EXTRAPOLATION_START_Z); Hep3Vector startPosTrans = CoordinateTransformations.transformVectorToDetector(startPos); double distZHodo = BeamlineConstants.HODO_L1_ZPOS; int hodoTrackStateIndex = 0; if (hodoLayer == 2) { distZHodo = BeamlineConstants.HODO_L2_ZPOS; // hodoTrackStateIndex = 7; } - double distanceZ = distZHodo - BeamlineConstants.DIPOLE_EDGE_ENG_RUN; + double distanceZ = distZHodo - BeamlineConstants.ECAL_TRACK_EXTRAPOLATION_START_Z; double charge = -1.0 * Math.signum(getR(ts)); org.hps.util.Pair RKresults = extrapolateTrackUsingFieldMapRK(ts, startPosTrans, distanceZ, stepSize, fM); @@ -851,9 +851,9 @@ public static Hep3Vector extrapolateTrack(TrackState track, double z) { Hep3Vector trackPosition; double dz; - if (z >= BeamlineConstants.DIPOLE_EDGE_ENG_RUN) { - trackPosition = extrapolateHelixToXPlane(track, BeamlineConstants.DIPOLE_EDGE_ENG_RUN); - dz = z - BeamlineConstants.DIPOLE_EDGE_ENG_RUN; + if (z >= BeamlineConstants.ECAL_TRACK_EXTRAPOLATION_START_Z) { + trackPosition = extrapolateHelixToXPlane(track, BeamlineConstants.ECAL_TRACK_EXTRAPOLATION_START_Z); + dz = z - BeamlineConstants.ECAL_TRACK_EXTRAPOLATION_START_Z; } else if (z <= BeamlineConstants.DIPOLE_EDGELOW_TESTRUN) { trackPosition = extrapolateHelixToXPlane(track, BeamlineConstants.DIPOLE_EDGELOW_TESTRUN); dz = z - trackPosition.x();