From 47ac3af4d7c25c07b43097ed1a80c1698edee68d Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 2 Jun 2026 14:24:10 -0400 Subject: [PATCH 1/3] remove unused ClasMath methods --- .../java/org/jlab/analysis/math/ClasMath.java | 53 ------------------- 1 file changed, 53 deletions(-) diff --git a/common-tools/clas-analysis/src/main/java/org/jlab/analysis/math/ClasMath.java b/common-tools/clas-analysis/src/main/java/org/jlab/analysis/math/ClasMath.java index b4855e4f56..ce2296db14 100644 --- a/common-tools/clas-analysis/src/main/java/org/jlab/analysis/math/ClasMath.java +++ b/common-tools/clas-analysis/src/main/java/org/jlab/analysis/math/ClasMath.java @@ -3,62 +3,9 @@ /** * * @author naharrison - * - * all angles in radians */ public class ClasMath { - public static double getRelativePhi(double phi) { - int sector = ClasMath.getSectorFromPhi(phi); - if(sector == 1) { - return ClasMath.getAnglePiConvention(phi); - } - else { - double newPhi = ClasMath.getAngle2PiConvention(phi); - return newPhi - ((double) sector - 1.0)*(2.0*Math.PI/6.0); - } - } - - - public static int getSectorFromPhi(double phi) { - double newPhi = ClasMath.getAngle2PiConvention(phi); - int sector = (int) Math.ceil((newPhi + (2.0*Math.PI/12.0))/Math.toRadians(60.0)); - if(sector == 7) sector = 1; - return sector; - } - - - /** 0 to 2pi convention */ - public static double getAngle2PiConvention(double angle) { - double newAngle = 0.0; - double twoPi = 2.0*Math.PI; - - if(angle >= 0.0 && angle < twoPi) newAngle = angle; - else if(angle >= twoPi) { - double nFullRotations = Math.floor(angle/twoPi); - newAngle = angle - twoPi*nFullRotations; - } - else if(angle < 0.0) { - double nFullRotations = Math.floor((-1.0*angle)/twoPi); - newAngle = (nFullRotations + 1.0)*twoPi + angle; - } - - return newAngle; - } - - - /** negative pi to pi convention */ - public static double getAnglePiConvention(double angle) { - double tempAngle = ClasMath.getAngle2PiConvention(angle); - double newAngle = 0.0; - - if(tempAngle <= Math.PI) newAngle = tempAngle; - else newAngle = tempAngle - 2.0*Math.PI; - - return newAngle; - } - - public static boolean isWithinXPercent(double X, double val, double standard) { if(standard >= 0 && val > (1.0 - (X/100.0))*standard && val < (1.0 + (X/100.0))*standard) return true; else if(standard < 0 && val < (1.0 - (X/100.0))*standard && val > (1.0 + (X/100.0))*standard) return true; From ae22c13e3f0ff6132eacb6dd3c3884effc8708c5 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 2 Jun 2026 19:26:05 -0400 Subject: [PATCH 2/3] switch to a "better" sector getter --- validation/advanced-tests/src/eb/EBTwoTrackTest.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/validation/advanced-tests/src/eb/EBTwoTrackTest.java b/validation/advanced-tests/src/eb/EBTwoTrackTest.java index 996df8b43f..6db80ed2dd 100644 --- a/validation/advanced-tests/src/eb/EBTwoTrackTest.java +++ b/validation/advanced-tests/src/eb/EBTwoTrackTest.java @@ -13,7 +13,7 @@ import org.jlab.detector.base.DetectorType; import org.jlab.clas.pdg.PDGDatabase; -import org.jlab.analysis.math.ClasMath; +import org.jlab.clas.detector.DetectorResponse; /** * @@ -554,7 +554,7 @@ private void processEventFT(DataEvent event) { if (pid==hadronPDG) { final double px=recPartBank.getFloat("px",ii); final double py=recPartBank.getFloat("py",ii); - final int sector = ClasMath.getSectorFromPhi(Math.atan2(py,px)); + final int sector = DetectorResponse.getSector(Math.atan2(py,px)); nHadronsSector[sector-1]++; if (sector==hadronSector || (pid==11 && sector==electronSector)) { nFtFd++; @@ -601,7 +601,7 @@ else if (!isCentral && trkBank.getInt("sector",ii)==hadronSector) { for (int ii=0; ii0) { final double phi0 = ctrkBank.getFloat("phi0",ii); - final int sector = ClasMath.getSectorFromPhi(phi0); + final int sector = DetectorResponse.getSector(phi0); if (sector == hadronSector) nPosTracks++; } @@ -645,7 +645,7 @@ else if (!isCentral && trkBank.getInt("sector",ii)==hadronSector) { px = recSciBank.getFloat("x",recSciMap.get(ii).get(0)); py = recSciBank.getFloat("y",recSciMap.get(ii).get(0)); } - final int sector = ClasMath.getSectorFromPhi(Math.atan2(py,px)); + final int sector = DetectorResponse.getSector(Math.atan2(py,px)); if (pid==11 && sector==electronSector) { if (!foundElectron) nElectronsSector[sector-1]++; From e19acbcee8d8e5d7f7cebe736fd68f53b35f92b0 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 2 Jun 2026 19:33:49 -0400 Subject: [PATCH 3/3] remove ClasMath --- .../java/org/jlab/analysis/math/ClasMath.java | 15 --------------- .../cvt/services/CVTReconstructionTest.java | 17 +++++++++++------ .../jlab/service/dc/DCReconstructionTest.java | 19 ++++++++++++------- .../jlab/service/eb/EBReconstructionTest.java | 11 ++++++++--- 4 files changed, 31 insertions(+), 31 deletions(-) delete mode 100644 common-tools/clas-analysis/src/main/java/org/jlab/analysis/math/ClasMath.java diff --git a/common-tools/clas-analysis/src/main/java/org/jlab/analysis/math/ClasMath.java b/common-tools/clas-analysis/src/main/java/org/jlab/analysis/math/ClasMath.java deleted file mode 100644 index ce2296db14..0000000000 --- a/common-tools/clas-analysis/src/main/java/org/jlab/analysis/math/ClasMath.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.jlab.analysis.math; - -/** - * - * @author naharrison - */ -public class ClasMath { - - public static boolean isWithinXPercent(double X, double val, double standard) { - if(standard >= 0 && val > (1.0 - (X/100.0))*standard && val < (1.0 + (X/100.0))*standard) return true; - else if(standard < 0 && val < (1.0 - (X/100.0))*standard && val > (1.0 + (X/100.0))*standard) return true; - return false; - } - -} diff --git a/reconstruction/cvt/src/test/java/org/jlab/rec/cvt/services/CVTReconstructionTest.java b/reconstruction/cvt/src/test/java/org/jlab/rec/cvt/services/CVTReconstructionTest.java index 8fea0c57de..8ffc78cbee 100644 --- a/reconstruction/cvt/src/test/java/org/jlab/rec/cvt/services/CVTReconstructionTest.java +++ b/reconstruction/cvt/src/test/java/org/jlab/rec/cvt/services/CVTReconstructionTest.java @@ -9,7 +9,6 @@ import org.jlab.service.eb.EBTBEngine; import org.jlab.analysis.physics.TestEvent; -import org.jlab.analysis.math.ClasMath; import org.jlab.clas.swimtools.MagFieldsEngine; import org.jlab.detector.base.DetectorType; import org.jlab.utils.CLASResources; @@ -19,7 +18,13 @@ * @author naharrison */ public class CVTReconstructionTest { - + + public static boolean isWithinXPercent(double X, double val, double standard) { + if(standard >= 0 && val > (1.0 - (X/100.0))*standard && val < (1.0 + (X/100.0))*standard) return true; + else if(standard < 0 && val < (1.0 - (X/100.0))*standard && val > (1.0 + (X/100.0))*standard) return true; + return false; + } + @Test public void testCVTReconstruction() { @@ -62,10 +67,10 @@ public void testCVTReconstruction() { assertEquals(testEvent.hasBank("REC::Particle"), true); assertEquals(testEvent.getBank("REC::Particle").rows(), 1); assertEquals(testEvent.getBank("REC::Particle").getByte("charge", 0), 1); - assertEquals(ClasMath.isWithinXPercent(10.0, testEvent.getBank("REC::Particle").getFloat("px", 0), 1.9504), true); - assertEquals(ClasMath.isWithinXPercent(10.0, testEvent.getBank("REC::Particle").getFloat("py", 0), 0.2741), true); - assertEquals(ClasMath.isWithinXPercent(10.0, testEvent.getBank("REC::Particle").getFloat("pz", 0), 0.3473), true); - assertEquals(ClasMath.isWithinXPercent(30.0, testEvent.getBank("REC::Particle").getFloat("vz", 0), -1.95444), true); + assertEquals(isWithinXPercent(10.0, testEvent.getBank("REC::Particle").getFloat("px", 0), 1.9504), true); + assertEquals(isWithinXPercent(10.0, testEvent.getBank("REC::Particle").getFloat("py", 0), 0.2741), true); + assertEquals(isWithinXPercent(10.0, testEvent.getBank("REC::Particle").getFloat("pz", 0), 0.3473), true); + assertEquals(isWithinXPercent(30.0, testEvent.getBank("REC::Particle").getFloat("vz", 0), -1.95444), true); } diff --git a/reconstruction/dc/src/test/java/org/jlab/service/dc/DCReconstructionTest.java b/reconstruction/dc/src/test/java/org/jlab/service/dc/DCReconstructionTest.java index 888d26197c..ea6ebd92c2 100644 --- a/reconstruction/dc/src/test/java/org/jlab/service/dc/DCReconstructionTest.java +++ b/reconstruction/dc/src/test/java/org/jlab/service/dc/DCReconstructionTest.java @@ -7,7 +7,6 @@ import org.jlab.io.base.DataEvent; import org.jlab.analysis.physics.TestEvent; -import org.jlab.analysis.math.ClasMath; import org.jlab.clas.swimtools.MagFieldsEngine; import org.jlab.detector.base.DetectorType; @@ -19,6 +18,12 @@ */ public class DCReconstructionTest { + static boolean isWithinXPercent(double X, double val, double standard) { + if(standard >= 0 && val > (1.0 - (X/100.0))*standard && val < (1.0 + (X/100.0))*standard) return true; + else if(standard < 0 && val < (1.0 - (X/100.0))*standard && val > (1.0 + (X/100.0))*standard) return true; + return false; + } + @Test public void testDCReconstruction() { @@ -52,10 +57,10 @@ public void testDCReconstruction() { assertEquals(testEvent.hasBank("HitBasedTrkg::HBTracks"), true); assertEquals(testEvent.getBank("HitBasedTrkg::HBTracks").rows(), 1); assertEquals(testEvent.getBank("HitBasedTrkg::HBTracks").getByte("q", 0), -1); - assertEquals(ClasMath.isWithinXPercent(16.0, testEvent.getBank("HitBasedTrkg::HBTracks").getFloat("p0_x", 0), 1.057), true); + assertEquals(isWithinXPercent(16.0, testEvent.getBank("HitBasedTrkg::HBTracks").getFloat("p0_x", 0), 1.057), true); assertEquals(testEvent.getBank("HitBasedTrkg::HBTracks").getFloat("p0_y", 0) > -0.1, true); assertEquals(testEvent.getBank("HitBasedTrkg::HBTracks").getFloat("p0_y", 0) < 0.1, true); - assertEquals(ClasMath.isWithinXPercent(16.0, testEvent.getBank("HitBasedTrkg::HBTracks").getFloat("p0_z", 0), 2.266), true); + assertEquals(isWithinXPercent(16.0, testEvent.getBank("HitBasedTrkg::HBTracks").getFloat("p0_z", 0), 2.266), true); //TB reconstruction DCTBEngine engineTB = new DCTBEngine(); @@ -69,10 +74,10 @@ public void testDCReconstruction() { assertEquals(testEvent.getBank("TimeBasedTrkg::TBTracks").rows(), 1); assertEquals(testEvent.getBank("TimeBasedTrkg::TBTracks").getByte("q", 0), -1); - assertEquals(ClasMath.isWithinXPercent(27.9, testEvent.getBank("TimeBasedTrkg::TBTracks").getFloat("p0_x", 0), 0.997), true); + assertEquals(isWithinXPercent(27.9, testEvent.getBank("TimeBasedTrkg::TBTracks").getFloat("p0_x", 0), 0.997), true); assertEquals(testEvent.getBank("TimeBasedTrkg::TBTracks").getFloat("p0_y", 0) > -0.0702, true); assertEquals(testEvent.getBank("TimeBasedTrkg::TBTracks").getFloat("p0_y", 0) < 0.0438, true); - assertEquals(ClasMath.isWithinXPercent(17.5, testEvent.getBank("TimeBasedTrkg::TBTracks").getFloat("p0_z", 0), 2.04), true); + assertEquals(isWithinXPercent(17.5, testEvent.getBank("TimeBasedTrkg::TBTracks").getFloat("p0_z", 0), 2.04), true); assertEquals(testEvent.getBank("TimeBasedTrkg::TBTracks").getFloat("Vtx0_x", 0) < 0.2, true); assertEquals(testEvent.getBank("TimeBasedTrkg::TBTracks").getFloat("Vtx0_x", 0) > -0.2, true); @@ -82,7 +87,7 @@ public void testDCReconstruction() { assertEquals(testEvent.getBank("TimeBasedTrkg::TBTracks").getFloat("Vtx0_z", 0) > -0.0753, true); //Region 1 - assertEquals(ClasMath.isWithinXPercent(155, testEvent.getBank("TimeBasedTrkg::TBCrosses").getFloat("x", 0), 4.02), true); + assertEquals(isWithinXPercent(155, testEvent.getBank("TimeBasedTrkg::TBCrosses").getFloat("x", 0), 4.02), true); assertEquals(testEvent.getBank("TimeBasedTrkg::TBCrosses").getFloat("y", 0 ) < 9.25, true); assertEquals(testEvent.getBank("TimeBasedTrkg::TBCrosses").getFloat("y", 0 ) > -11.78, true); @@ -93,7 +98,7 @@ public void testDCReconstruction() { assertEquals(testEvent.getBank("TimeBasedTrkg::TBCrosses").getFloat("y", 1 ) > -17.8, true); //Region 3 - assertEquals(ClasMath.isWithinXPercent(127, testEvent.getBank("TimeBasedTrkg::TBCrosses").getFloat("x", 2), -11.0), true); + assertEquals(isWithinXPercent(127, testEvent.getBank("TimeBasedTrkg::TBCrosses").getFloat("x", 2), -11.0), true); assertEquals(testEvent.getBank("TimeBasedTrkg::TBCrosses").getFloat("y", 2 ) < 17.96, true); assertEquals(testEvent.getBank("TimeBasedTrkg::TBCrosses").getFloat("y", 2 ) > -23.66, true); diff --git a/reconstruction/eb/src/test/java/org/jlab/service/eb/EBReconstructionTest.java b/reconstruction/eb/src/test/java/org/jlab/service/eb/EBReconstructionTest.java index 64f1dcd6cc..ac6f85615a 100644 --- a/reconstruction/eb/src/test/java/org/jlab/service/eb/EBReconstructionTest.java +++ b/reconstruction/eb/src/test/java/org/jlab/service/eb/EBReconstructionTest.java @@ -4,7 +4,6 @@ import static org.junit.Assert.*; import org.jlab.analysis.physics.TestEvent; -import org.jlab.analysis.math.ClasMath; import org.jlab.clas.swimtools.MagFieldsEngine; import cnuphys.magfield.MagneticFields; import org.jlab.detector.base.DetectorType; @@ -105,6 +104,12 @@ public boolean hasValidRefs(DataEvent ev, return true; } + static boolean isWithinXPercent(double X, double val, double standard) { + if(standard >= 0 && val > (1.0 - (X/100.0))*standard && val < (1.0 + (X/100.0))*standard) return true; + else if(standard < 0 && val < (1.0 - (X/100.0))*standard && val > (1.0 + (X/100.0))*standard) return true; + return false; + } + @Test public void testEBReconstruction() { System.setProperty("CLAS12DIR", "../../"); @@ -120,10 +125,10 @@ public void testEBReconstruction() { assertEquals(hasValidRefs(photonEvent,"REC::Calorimeter","REC::Particle","pindex"),true); // additional EC reco. tests: assertEquals(photonEvent.getBank("RECHB::Particle").rows(), 1); - assertEquals(ClasMath.isWithinXPercent(25.0, photonEvent.getBank("RECHB::Particle").getFloat("px", 0), 1.057), true); + assertEquals(isWithinXPercent(25.0, photonEvent.getBank("RECHB::Particle").getFloat("px", 0), 1.057), true); assertEquals(photonEvent.getBank("RECHB::Particle").getFloat("py", 0) > -0.15, true); assertEquals(photonEvent.getBank("RECHB::Particle").getFloat("py", 0) < 0.15, true); - assertEquals(ClasMath.isWithinXPercent(25.0, photonEvent.getBank("RECHB::Particle").getFloat("pz", 0), 2.266), true); + assertEquals(isWithinXPercent(25.0, photonEvent.getBank("RECHB::Particle").getFloat("pz", 0), 2.266), true); DataEvent electronEvent = TestEvent.get(DetectorType.DC); processAllEngines(electronEvent);