From 842dc1c791d1cfb2627eeee57c330e56dcce0c9c Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Wed, 6 May 2026 17:16:05 -0400 Subject: [PATCH 1/7] switch to indexed loops --- .../jlab/rec/dc/cluster/ClusterFitter.java | 76 ++++++++----------- 1 file changed, 33 insertions(+), 43 deletions(-) diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterFitter.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterFitter.java index 3744a3ff65..eb5b9aea29 100644 --- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterFitter.java +++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterFitter.java @@ -3,36 +3,33 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; -import org.jlab.clas.clas.math.FastMath; import org.jlab.detector.geant4.v2.DCGeant4Factory; import org.jlab.geom.prim.Line3D; import org.jlab.geom.prim.Point3D; import org.jlab.geom.prim.Vector3D; -import org.jlab.rec.dc.hit.FittedHit; import org.jlab.rec.dc.track.fit.basefit.LineFitPars; import org.jlab.rec.dc.track.fit.basefit.LineFitter; import org.jlab.rec.dc.Constants; public class ClusterFitter { - /** * Fits a cluster to a line * */ private LineFitPars FitPars; - private final List> FitArray = new ArrayList>(); - private final List x = new ArrayList(); - private final List y = new ArrayList(); - private final List ex = new ArrayList(); - private final List ey = new ArrayList(); + private final List> FitArray = new ArrayList<>(); + private final List x = new ArrayList<>(); + private final List y = new ArrayList<>(); + private final List ex = new ArrayList<>(); + private final List ey = new ArrayList<>(); private final double stereo = Constants.COS6; private String CoordinateSystem; // LC= local, TSC = tilted Sector - public ClusterFitter() { - // TODO Auto-generated constructor stub - } + + public ClusterFitter() {} + public void reset() { for(int i =0; i) ex); FitArray.add((ArrayList) y); FitArray.add((ArrayList) ey); - } + /** * * @param clus fitted cluster @@ -242,23 +232,23 @@ public void SetResidualDerivedParams(FittedCluster clus, boolean calcTimeResidua * @return the fitted cluster with the best fit chi2 */ public FittedCluster BestClusterSelector(List clusters, String system) { - //init + FittedCluster BestCluster = null; double bestChisq = 999999999.; - // double bestClusx0=0; - for (FittedCluster clusCand : clusters) { - if(isBrickWall(clusCand)) { + for (int i=0; i clusters, String sy if (chisq < bestChisq) { bestChisq = chisq; - BestCluster = clusCand; - // bestClusx0 = FitArray[0][0]; + BestCluster = clusters.get(i); } } - //SetSegmentLineParameters(bestClusx0, BestCluster) ; return BestCluster; - } /** @@ -306,19 +293,22 @@ private Point3D get_PointOnLine(double d, double the_slope, */ private boolean isBrickWall(FittedCluster clusCand) { boolean isBW = true; - int sumWireNum = 0; - if(clusCand.size()!=6) - isBW=false; - - for(FittedHit hit : clusCand) { - sumWireNum+=hit.get_Wire(); + if (clusCand.size() != 6) { + isBW = false; + } + else { + int sumWireNum = 0; + for (int i=0; i Date: Wed, 6 May 2026 17:23:41 -0400 Subject: [PATCH 2/7] switch to indexed loops --- .../java/cnuphys/magfield/CompositeField.java | 29 +++++++++---------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/common-tools/cnuphys/magfield/src/main/java/cnuphys/magfield/CompositeField.java b/common-tools/cnuphys/magfield/src/main/java/cnuphys/magfield/CompositeField.java index f80a8560db..e8118b77db 100644 --- a/common-tools/cnuphys/magfield/src/main/java/cnuphys/magfield/CompositeField.java +++ b/common-tools/cnuphys/magfield/src/main/java/cnuphys/magfield/CompositeField.java @@ -99,8 +99,8 @@ public boolean hasSolenoid() { * @return true if we have a transverse solenoid */ public boolean hasTransverseSolenoid() { - for (IMagField field : this) { - if (field instanceof TransverseSolenoid) { + for (int i=0; i Date: Sun, 10 May 2026 17:54:26 -0400 Subject: [PATCH 3/7] revert changes to CompositeField --- .../java/cnuphys/magfield/CompositeField.java | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/common-tools/cnuphys/magfield/src/main/java/cnuphys/magfield/CompositeField.java b/common-tools/cnuphys/magfield/src/main/java/cnuphys/magfield/CompositeField.java index e8118b77db..f80a8560db 100644 --- a/common-tools/cnuphys/magfield/src/main/java/cnuphys/magfield/CompositeField.java +++ b/common-tools/cnuphys/magfield/src/main/java/cnuphys/magfield/CompositeField.java @@ -99,8 +99,8 @@ public boolean hasSolenoid() { * @return true if we have a transverse solenoid */ public boolean hasTransverseSolenoid() { - for (int i=0; i Date: Sun, 10 May 2026 20:41:08 -0400 Subject: [PATCH 4/7] Optimize for loop by storing size in a variable --- .../main/java/org/jlab/rec/dc/cluster/ClusterFitter.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterFitter.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterFitter.java index eb5b9aea29..52fd0fbaa6 100644 --- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterFitter.java +++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterFitter.java @@ -236,7 +236,8 @@ public FittedCluster BestClusterSelector(List clusters, String sy FittedCluster BestCluster = null; double bestChisq = 999999999.; - for (int i=0; i Date: Sun, 10 May 2026 20:42:56 -0400 Subject: [PATCH 5/7] Refactor loop for cluster size calculation --- .../main/java/org/jlab/rec/dc/cluster/ClusterFitter.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterFitter.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterFitter.java index 52fd0fbaa6..e259025272 100644 --- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterFitter.java +++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterFitter.java @@ -240,11 +240,13 @@ public FittedCluster BestClusterSelector(List clusters, String sy for (int i=0; i Date: Tue, 12 May 2026 17:00:29 -0400 Subject: [PATCH 6/7] reduce getter calls --- .../org/jlab/rec/dc/cluster/ClusterFitter.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterFitter.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterFitter.java index e259025272..b93d264e73 100644 --- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterFitter.java +++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterFitter.java @@ -238,20 +238,21 @@ public FittedCluster BestClusterSelector(List clusters, String sy int size = clusters.size(); for (int i=0; i clusters, String sy if (chisq < bestChisq) { bestChisq = chisq; - BestCluster = clusters.get(i); + BestCluster = cluster; } } @@ -306,7 +307,7 @@ private boolean isBrickWall(FittedCluster clusCand) { sumWireNum += clusCand.get(i).get_Wire(); } for (int i=0; i Date: Tue, 12 May 2026 17:05:09 -0400 Subject: [PATCH 7/7] fix oops --- .../dc/src/main/java/org/jlab/rec/dc/cluster/ClusterFitter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterFitter.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterFitter.java index b93d264e73..40a5b39d81 100644 --- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterFitter.java +++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterFitter.java @@ -238,7 +238,7 @@ public FittedCluster BestClusterSelector(List clusters, String sy int size = clusters.size(); for (int i=0; i