From 5e119b6eb2d74453b7fe50bd605fd01547ec8f53 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Wed, 6 May 2026 16:26:34 -0400 Subject: [PATCH 1/5] cleanup --- .../jlab/rec/dc/cluster/ClusterFitter.java | 32 ++++++------------- 1 file changed, 10 insertions(+), 22 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..81489ef1ad 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,7 +3,6 @@ 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; @@ -16,23 +15,22 @@ 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 @@ -148,7 +138,6 @@ public void SetSegmentLineParameters(double x0, FittedCluster clus) { } else { System.err.println("Cluster Fit Params not set!!!"); - } } @@ -320,5 +309,4 @@ private boolean isBrickWall(FittedCluster clusCand) { return isBW; } - } From 374e87080e98b886e7e8f83e651eb34b23c6fb62 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Wed, 6 May 2026 16:52:43 -0400 Subject: [PATCH 2/5] remove string bookkeeping --- .../dc/cluster/ClusterCleanerUtilities.java | 13 +++--- .../jlab/rec/dc/cluster/ClusterFinder.java | 22 +++++----- .../jlab/rec/dc/cluster/ClusterFitter.java | 42 ++++++++++++------- .../jlab/rec/dc/cross/CrossListFinder.java | 6 +-- .../java/org/jlab/rec/dc/nn/PatternRec.java | 4 +- .../jlab/rec/dc/trajectory/RoadFinder.java | 4 +- 6 files changed, 50 insertions(+), 41 deletions(-) diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterCleanerUtilities.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterCleanerUtilities.java index 48643ca6e2..c34cc95c7c 100644 --- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterCleanerUtilities.java +++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterCleanerUtilities.java @@ -194,7 +194,7 @@ public List ClusterSplitter(FittedCluster clus, int nextClsStartI if((!isExceptionalCluster(newClus) && nLayers >= Constants.DC_MIN_NLAYERS) || (isExceptionalCluster(newClus) && nLayers >= Constants.DC_MIN_NLAYERS - 1)) { //require consistency with line - cf.SetFitArray(newClus, "LC"); + cf.SetFitArray(newClus, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.LC); cf.Fit(newClus, true); if ((nLayers == 6 && newClus.get_fitProb() > 0.9) || (nLayers == 5 && newClus.get_fitProb() > 0.85) || (nLayers == 4 && newClus.get_fitProb() > 0.75) || (nLayers == 3 && newClus.get_fitProb() > 0.65)) { @@ -213,7 +213,7 @@ public List ClusterSplitter(FittedCluster clus, int nextClsStartI int newcid = nextClsStartIndex; for (FittedCluster cluster : splitclusters) { cluster.set_Id(newcid++); - cf.SetFitArray(cluster, "LC"); + cf.SetFitArray(cluster, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.LC); cf.Fit(cluster, true); FittedCluster bestCls = OverlappingClusterResolver(cluster, splitclusters); @@ -229,7 +229,7 @@ public List ClusterSplitter(FittedCluster clus, int nextClsStartI List selectedClusList2 = new ArrayList<>(); for (FittedCluster cluster : selectedClusList) { cluster.set_Id(newcid++); - cf.SetFitArray(cluster, "LC"); + cf.SetFitArray(cluster, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.LC); cf.Fit(cluster, true); FittedCluster bestCls = OverlappingClusterResolver(cluster, selectedClusList); @@ -569,7 +569,7 @@ else if (index == 6) { } } - return cf.BestClusterSelector(arrayOfClus, "TSC"); + return cf.BestClusterSelector(arrayOfClus, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.TSC); } @@ -680,7 +680,7 @@ else if (hitsInLayer.size() == 2) { // for(FittedHit h : c) // LOGGER.log(Level.INFO, h.printInfo()); //} - FittedCluster BestCluster = cf.BestClusterSelector(clusters, "LC"); + FittedCluster BestCluster = cf.BestClusterSelector(clusters, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.LC); //LOGGER.log(Level.INFO, " ---> selected cluster : "); //for(FittedHit h : BestCluster) // LOGGER.log(Level.INFO, h.printInfo()); @@ -971,8 +971,7 @@ else if (hitsInLayer.size() == 2) { clusters.add(newClus); } - FittedCluster BestCluster = cf.BestClusterSelector(clusters, "LC"); - return BestCluster; + return cf.BestClusterSelector(clusters, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.LC); } /** diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterFinder.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterFinder.java index a2d1b735fe..da69cda21f 100644 --- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterFinder.java +++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterFinder.java @@ -216,12 +216,12 @@ public List FindHitBasedClusters(List allhits, ClusterCleane for (FittedCluster clus : selectedClusList) { - cf.SetFitArray(clus, "LC"); + cf.SetFitArray(clus, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.LC); cf.Fit(clus, true); if(!ct.isExceptionalFittedCluster(clus) && clus.get_fitProb() Constants.HITBASEDTRKGMINFITHI2PROB ){ @@ -246,7 +246,7 @@ public List FindHitBasedClusters(List allhits, ClusterCleane //fhit.set_AssociatedClusterID(clus.get_Id()); } - cf.SetFitArray(clus, "TSC"); + cf.SetFitArray(clus, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.TSC); cf.Fit(clus, true); cf.SetResidualDerivedParams(clus, false, false, DcDetector); //calcTimeResidual=false, resetLRAmbig=false, local= false @@ -273,7 +273,7 @@ public List FindHitBasedClusters(List allhits, ClusterCleane } clus.removeAll(rmHits); clus.addAll(addHits); - cf.SetFitArray(clus, "TSC"); + cf.SetFitArray(clus, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.TSC); cf.Fit(clus, false); cf.SetSegmentLineParameters(clus.get(0).get_Z(), clus); if (clus != null ) { @@ -318,7 +318,7 @@ public List RecomposeClusters(Map> for (FittedCluster clus : clusters) { if (clus != null) { - cf.SetFitArray(clus, "TSC"); + cf.SetFitArray(clus, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.TSC); cf.Fit(clus, true); cf.SetResidualDerivedParams(clus, true, false, dcDetector); //calcTimeResidual=false, resetLRAmbig=false cf.Fit(clus, false); @@ -476,7 +476,7 @@ public List FindTimeBasedClusters(DataEvent event, } } - cf.SetFitArray(Clus2, "TSC"); + cf.SetFitArray(Clus2, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.TSC); cf.Fit(Clus2, true); if (Math.abs(clus.get_Chisq() - Clus2.get_Chisq()) < 1) { @@ -488,7 +488,7 @@ public List FindTimeBasedClusters(DataEvent event, for (FittedCluster clus : clusters) { - cf.SetFitArray(clus, "TSC"); + cf.SetFitArray(clus, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.TSC); cf.Fit(clus, true); // update the hits @@ -500,7 +500,7 @@ public List FindTimeBasedClusters(DataEvent event, double prevChi2 = 999999999; double trkAngleFinal = 0; while (Chi2Diff > 0) { - cf.SetFitArray(clus, "TSC"); + cf.SetFitArray(clus, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.TSC); cf.Fit(clus, true); Chi2Diff = prevChi2 - clus.get_Chisq(); if (Chi2Diff > 0) { @@ -519,11 +519,11 @@ public List FindTimeBasedClusters(DataEvent event, for (FittedHit fhit : clus) { fhit.updateHitPositionWithTime(event, trkAngleFinal, fhit.getB(), tab, DcDetector, tde); } - cf.SetFitArray(clus, "TSC"); + cf.SetFitArray(clus, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.TSC); cf.Fit(clus, true); cf.SetResidualDerivedParams(clus, true, false, DcDetector); //calcTimeResidual=false, resetLRAmbig=false - cf.SetFitArray(clus, "TSC"); + cf.SetFitArray(clus, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.TSC); cf.Fit(clus, false); cf.SetSegmentLineParameters(clus.get(0).get_Z(), clus); @@ -582,7 +582,7 @@ public EvioDataBank getLayerEfficiencies(List fclusters, 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() {} public void reset() { @@ -41,24 +56,23 @@ public void reset() { ey.clear(); } - public void SetFitArray(FittedCluster clus, String system) { + public void SetFitArray(FittedCluster clus, CoordSys system) { Collections.sort(clus); reset(); for (int i = 0; i < clus.size(); i++) { - if (system.equals("LC")) { - CoordinateSystem = "LC"; // local coordinate grid Delta_z = 1 + if (system.equals(CoordSys.LC)) { + coordinateSystem = CoordSys.LC; // local coordinate grid Delta_z = 1 x.add(i, clus.get(i).get_lX()); ex.add(i, (double) 0); y.add(i, clus.get(i).get_lY()); ey.add(i, (double) 1); } - if (system.equals("TSC")) { - CoordinateSystem = "TSC"; // local tilted coordinate system Delta_z ~ cell size + if (system.equals(CoordSys.TSC)) { + coordinateSystem = CoordSys.TSC; // local tilted coordinate system Delta_z ~ cell size x.add(i, clus.get(i).get_Z()); ex.add(i, (double) 0); y.add(i, clus.get(i).get_X()); - //ey[i]= clus.get(i).get_DocaErr(); //CODEFIX1 ey.add(i, clus.get(i).get_DocaErr() / stereo); } @@ -198,7 +212,7 @@ public void SetResidualDerivedParams(FittedCluster clus, boolean calcTimeResidua } } if (resetLRAmbig) { - if ((CoordinateSystem.equals("LC") && Math.abs(residual) < 0.01) || (CoordinateSystem.equals("LTS") + if ((coordinateSystem.equals(CoordSys.LC) && Math.abs(residual) < 0.01) || (coordinateSystem.equals(CoordSys.LTS) && clus.get(i).get_Doca() / clus.get(i).get_CellSize() < 0.4)) { // DOCA require to be larger than 40% of cell size for hit-based tracking LR assignment clus.get(i).set_LeftRightAmb(0); } @@ -230,11 +244,10 @@ public void SetResidualDerivedParams(FittedCluster clus, boolean calcTimeResidua * @param system coordinate system in which the fit is performed * @return the fitted cluster with the best fit chi2 */ - public FittedCluster BestClusterSelector(List clusters, String system) { - //init + public FittedCluster BestClusterSelector(List clusters, CoordSys system) { + FittedCluster BestCluster = null; double bestChisq = 999999999.; - // double bestClusx0=0; for (FittedCluster clusCand : clusters) { if(isBrickWall(clusCand)) { @@ -256,13 +269,10 @@ public FittedCluster BestClusterSelector(List clusters, String sy if (chisq < bestChisq) { bestChisq = chisq; BestCluster = clusCand; - // bestClusx0 = FitArray[0][0]; } } - //SetSegmentLineParameters(bestClusx0, BestCluster) ; return BestCluster; - } /** diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/cross/CrossListFinder.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/cross/CrossListFinder.java index dc28ef9ab4..7b3611a4fc 100644 --- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/cross/CrossListFinder.java +++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/cross/CrossListFinder.java @@ -216,18 +216,18 @@ private void recalcParsSegment(DataEvent event, Segment _Segment1, IndexedTable fhit.updateHitPositionWithTime(event, trkAngle, fhit.getB(), tab, DcDetector, tde); } - cf.SetFitArray(_Segment1.get_fittedCluster(), "TSC"); + cf.SetFitArray(_Segment1.get_fittedCluster(), org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.TSC); cf.Fit(_Segment1.get_fittedCluster(), true); trkAngle = _Segment1.get_fittedCluster().get_clusterLineFitSlope(); for (FittedHit fhit : _Segment1.get_fittedCluster()) { fhit.updateHitPositionWithTime(event, trkAngle, fhit.getB(), tab, DcDetector, tde); } - cf.SetFitArray(_Segment1.get_fittedCluster(), "TSC"); + cf.SetFitArray(_Segment1.get_fittedCluster(), org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.TSC); cf.Fit(_Segment1.get_fittedCluster(), true); cf.SetResidualDerivedParams(_Segment1.get_fittedCluster(), true, false, DcDetector); //calcTimeResidual=false, resetLRAmbig=false - cf.SetFitArray(_Segment1.get_fittedCluster(), "TSC"); + cf.SetFitArray(_Segment1.get_fittedCluster(), org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.TSC); cf.Fit(_Segment1.get_fittedCluster(), false); cf.SetSegmentLineParameters(_Segment1.get_fittedCluster().get(0).get_Z(), _Segment1.get_fittedCluster()); diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/nn/PatternRec.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/nn/PatternRec.java index 945c6a65a6..f088abb618 100644 --- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/nn/PatternRec.java +++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/nn/PatternRec.java @@ -172,7 +172,7 @@ public List RecomposeSegments(List fhits, fhit.updateHitPosition(DcDetector); } - cf.SetFitArray(fclus, "TSC"); + cf.SetFitArray(fclus, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.TSC); cf.Fit(fclus, true); cf.SetResidualDerivedParams(fclus, false, false, DcDetector); //calcTimeResidual=false, resetLRAmbig=false, local= false @@ -183,7 +183,7 @@ public List RecomposeSegments(List fhits, fhit.set_AssociatedClusterID(fclus.get_Id()); fhit.set_AssociatedHBTrackID(entry.getKey()); } - cf.SetFitArray(fclus, "TSC"); + cf.SetFitArray(fclus, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.TSC); cf.Fit(fclus, false); cf.SetSegmentLineParameters(fclus.get(0).get_Z(), fclus); diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/RoadFinder.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/RoadFinder.java index 53efdfd097..a82b236d45 100644 --- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/RoadFinder.java +++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/RoadFinder.java @@ -142,7 +142,7 @@ public Segment findRoadMissingSegment(List segList, DCGeant4Factory DcD fpseudoCluster.add(pseudoHit); } - cf.SetFitArray(fpseudoCluster, "TSC"); + cf.SetFitArray(fpseudoCluster, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.TSC); cf.Fit(fpseudoCluster, true); cf.SetSegmentLineParameters(fpseudoCluster.get(0).get_Z(), fpseudoCluster) ; @@ -179,7 +179,7 @@ private Segment reFit(Segment pseudoSeg, ArrayList segList, DCGeant4Fac pseudoHit.calc_GeomCorr(DcDetector, 0); fpseudoCluster.add(pseudoHit); } - cf.SetFitArray(fpseudoCluster, "TSC"); + cf.SetFitArray(fpseudoCluster, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.TSC); cf.Fit(fpseudoCluster, true); cf.SetSegmentLineParameters(fpseudoCluster.get(0).get_Z(), fpseudoCluster) ; From efe402d19bf4e7e14e7eabc428d81ca2a46eb820 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 7 May 2026 19:36:40 -0400 Subject: [PATCH 3/5] cleanup --- .../src/main/java/org/jlab/rec/dc/trajectory/RoadFinder.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/RoadFinder.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/RoadFinder.java index a82b236d45..e03874a127 100644 --- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/RoadFinder.java +++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/RoadFinder.java @@ -3,7 +3,6 @@ import java.util.ArrayList; import java.util.List; -import org.jlab.clas.clas.math.FastMath; import org.jlab.rec.dc.cluster.Cluster; import org.jlab.rec.dc.cluster.ClusterFitter; import org.jlab.rec.dc.cluster.FittedCluster; @@ -39,8 +38,6 @@ public List findRoads(List segs, DCGeant4Factory DcDetector) { List>> superLayerLists = new ArrayList<>(); for(int sec=0; sec<6; sec++) { ArrayList> sLyrs = new ArrayList<>(); - ArrayList>> rLyrs = new ArrayList<>(); - for(int sly=0; sly<6; sly++) { sLyrs.add(new ArrayList<>()); } From 3e05dddd886af654eb28e0f4ba3ad0d842d84bb5 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 7 May 2026 19:44:49 -0400 Subject: [PATCH 4/5] satisfy spotbug/dependency analysis --- .../dc/cluster/ClusterCleanerUtilities.java | 29 +++++++------ .../jlab/rec/dc/cluster/ClusterFinder.java | 25 +++++------ .../jlab/rec/dc/cluster/ClusterFitter.java | 2 +- .../jlab/rec/dc/cross/CrossListFinder.java | 7 ++-- .../java/org/jlab/rec/dc/nn/PatternRec.java | 3 +- .../jlab/rec/dc/trajectory/RoadFinder.java | 41 ++++++++----------- 6 files changed, 52 insertions(+), 55 deletions(-) diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterCleanerUtilities.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterCleanerUtilities.java index c34cc95c7c..b93809da55 100644 --- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterCleanerUtilities.java +++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterCleanerUtilities.java @@ -3,20 +3,18 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.logging.Logger; -import org.jlab.detector.geant4.v2.DCGeant4Factory; -import org.jlab.io.base.DataEvent; +import org.jlab.io.base.DataEvent; import org.jlab.rec.dc.Constants; +import org.jlab.rec.dc.cluster.ClusterFitter.CoordSys; import org.jlab.rec.dc.hit.FittedHit; import org.jlab.rec.dc.hit.Hit; import org.jlab.rec.dc.timetodistance.TimeToDistanceEstimator; import org.jlab.utils.groups.IndexedTable; +import org.jlab.detector.geant4.v2.DCGeant4Factory; public class ClusterCleanerUtilities { - private static final Logger LOGGER = Logger.getLogger(ClusterCleanerUtilities.class.getName()); - private List> sortedHits; public ClusterCleanerUtilities() { @@ -194,7 +192,7 @@ public List ClusterSplitter(FittedCluster clus, int nextClsStartI if((!isExceptionalCluster(newClus) && nLayers >= Constants.DC_MIN_NLAYERS) || (isExceptionalCluster(newClus) && nLayers >= Constants.DC_MIN_NLAYERS - 1)) { //require consistency with line - cf.SetFitArray(newClus, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.LC); + cf.SetFitArray(newClus, CoordSys.LC); cf.Fit(newClus, true); if ((nLayers == 6 && newClus.get_fitProb() > 0.9) || (nLayers == 5 && newClus.get_fitProb() > 0.85) || (nLayers == 4 && newClus.get_fitProb() > 0.75) || (nLayers == 3 && newClus.get_fitProb() > 0.65)) { @@ -213,7 +211,7 @@ public List ClusterSplitter(FittedCluster clus, int nextClsStartI int newcid = nextClsStartIndex; for (FittedCluster cluster : splitclusters) { cluster.set_Id(newcid++); - cf.SetFitArray(cluster, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.LC); + cf.SetFitArray(cluster, CoordSys.LC); cf.Fit(cluster, true); FittedCluster bestCls = OverlappingClusterResolver(cluster, splitclusters); @@ -229,7 +227,7 @@ public List ClusterSplitter(FittedCluster clus, int nextClsStartI List selectedClusList2 = new ArrayList<>(); for (FittedCluster cluster : selectedClusList) { cluster.set_Id(newcid++); - cf.SetFitArray(cluster, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.LC); + cf.SetFitArray(cluster, CoordSys.LC); cf.Fit(cluster, true); FittedCluster bestCls = OverlappingClusterResolver(cluster, selectedClusList); @@ -569,7 +567,7 @@ else if (index == 6) { } } - return cf.BestClusterSelector(arrayOfClus, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.TSC); + return cf.BestClusterSelector(arrayOfClus, CoordSys.TSC); } @@ -680,7 +678,7 @@ else if (hitsInLayer.size() == 2) { // for(FittedHit h : c) // LOGGER.log(Level.INFO, h.printInfo()); //} - FittedCluster BestCluster = cf.BestClusterSelector(clusters, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.LC); + FittedCluster BestCluster = cf.BestClusterSelector(clusters, CoordSys.LC); //LOGGER.log(Level.INFO, " ---> selected cluster : "); //for(FittedHit h : BestCluster) // LOGGER.log(Level.INFO, h.printInfo()); @@ -752,13 +750,14 @@ public FittedCluster OverlappingClusterResolver(FittedCluster thisclus, List 4, keep the first 2 and last 2 hits in that column, if Nc > 10 - remove all hits in that column. + * the middle hit If Nc=4, keep only the first and last hit in that column; + * if Nc > 4, keep the first 2 and last 2 hits in that column, if Nc > 10 + * remove all hits in that column. * * @param hits the unfitted hits * @return @@ -971,7 +970,7 @@ else if (hitsInLayer.size() == 2) { clusters.add(newClus); } - return cf.BestClusterSelector(clusters, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.LC); + return cf.BestClusterSelector(clusters, CoordSys.LC); } /** diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterFinder.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterFinder.java index da69cda21f..9887337d42 100644 --- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterFinder.java +++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterFinder.java @@ -8,16 +8,17 @@ import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; -import org.jlab.detector.geant4.v2.DCGeant4Factory; -import org.jlab.io.base.DataEvent; +import org.jlab.io.base.DataEvent; import org.jlab.io.evio.EvioDataBank; import org.jlab.io.evio.EvioDataEvent; import org.jlab.rec.dc.Constants; +import org.jlab.rec.dc.cluster.ClusterFitter.CoordSys; import org.jlab.rec.dc.hit.Hit; import org.jlab.rec.dc.timetodistance.TimeToDistanceEstimator; import org.jlab.rec.dc.hit.FittedHit; import org.jlab.utils.groups.IndexedTable; +import org.jlab.detector.geant4.v2.DCGeant4Factory; /** * A hit pruning algorithm to reject noise that gives a pattern of hits that are @@ -216,12 +217,12 @@ public List FindHitBasedClusters(List allhits, ClusterCleane for (FittedCluster clus : selectedClusList) { - cf.SetFitArray(clus, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.LC); + cf.SetFitArray(clus, CoordSys.LC); cf.Fit(clus, true); if(!ct.isExceptionalFittedCluster(clus) && clus.get_fitProb() Constants.HITBASEDTRKGMINFITHI2PROB ){ @@ -246,7 +247,7 @@ public List FindHitBasedClusters(List allhits, ClusterCleane //fhit.set_AssociatedClusterID(clus.get_Id()); } - cf.SetFitArray(clus, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.TSC); + cf.SetFitArray(clus, CoordSys.TSC); cf.Fit(clus, true); cf.SetResidualDerivedParams(clus, false, false, DcDetector); //calcTimeResidual=false, resetLRAmbig=false, local= false @@ -273,7 +274,7 @@ public List FindHitBasedClusters(List allhits, ClusterCleane } clus.removeAll(rmHits); clus.addAll(addHits); - cf.SetFitArray(clus, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.TSC); + cf.SetFitArray(clus, CoordSys.TSC); cf.Fit(clus, false); cf.SetSegmentLineParameters(clus.get(0).get_Z(), clus); if (clus != null ) { @@ -318,7 +319,7 @@ public List RecomposeClusters(Map> for (FittedCluster clus : clusters) { if (clus != null) { - cf.SetFitArray(clus, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.TSC); + cf.SetFitArray(clus, CoordSys.TSC); cf.Fit(clus, true); cf.SetResidualDerivedParams(clus, true, false, dcDetector); //calcTimeResidual=false, resetLRAmbig=false cf.Fit(clus, false); @@ -476,7 +477,7 @@ public List FindTimeBasedClusters(DataEvent event, } } - cf.SetFitArray(Clus2, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.TSC); + cf.SetFitArray(Clus2, CoordSys.TSC); cf.Fit(Clus2, true); if (Math.abs(clus.get_Chisq() - Clus2.get_Chisq()) < 1) { @@ -488,7 +489,7 @@ public List FindTimeBasedClusters(DataEvent event, for (FittedCluster clus : clusters) { - cf.SetFitArray(clus, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.TSC); + cf.SetFitArray(clus, CoordSys.TSC); cf.Fit(clus, true); // update the hits @@ -500,7 +501,7 @@ public List FindTimeBasedClusters(DataEvent event, double prevChi2 = 999999999; double trkAngleFinal = 0; while (Chi2Diff > 0) { - cf.SetFitArray(clus, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.TSC); + cf.SetFitArray(clus, CoordSys.TSC); cf.Fit(clus, true); Chi2Diff = prevChi2 - clus.get_Chisq(); if (Chi2Diff > 0) { @@ -519,11 +520,11 @@ public List FindTimeBasedClusters(DataEvent event, for (FittedHit fhit : clus) { fhit.updateHitPositionWithTime(event, trkAngleFinal, fhit.getB(), tab, DcDetector, tde); } - cf.SetFitArray(clus, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.TSC); + cf.SetFitArray(clus, CoordSys.TSC); cf.Fit(clus, true); cf.SetResidualDerivedParams(clus, true, false, DcDetector); //calcTimeResidual=false, resetLRAmbig=false - cf.SetFitArray(clus, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.TSC); + cf.SetFitArray(clus, CoordSys.TSC); cf.Fit(clus, false); cf.SetSegmentLineParameters(clus.get(0).get_Z(), clus); 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 b97fb5972d..28708103b4 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,7 +3,6 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; -import org.jlab.detector.geant4.v2.DCGeant4Factory; import org.jlab.geom.prim.Line3D; import org.jlab.geom.prim.Point3D; @@ -12,6 +11,7 @@ import org.jlab.rec.dc.track.fit.basefit.LineFitPars; import org.jlab.rec.dc.track.fit.basefit.LineFitter; import org.jlab.rec.dc.Constants; +import org.jlab.detector.geant4.v2.DCGeant4Factory; public class ClusterFitter { diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/cross/CrossListFinder.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/cross/CrossListFinder.java index 7b3611a4fc..5399b2dadb 100644 --- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/cross/CrossListFinder.java +++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/cross/CrossListFinder.java @@ -10,6 +10,7 @@ import org.jlab.io.base.DataEvent; import org.jlab.rec.dc.Constants; import org.jlab.rec.dc.cluster.ClusterFitter; +import org.jlab.rec.dc.cluster.ClusterFitter.CoordSys; import org.jlab.rec.dc.hit.FittedHit; import org.jlab.rec.dc.segment.Segment; import org.jlab.rec.dc.timetodistance.TimeToDistanceEstimator; @@ -216,18 +217,18 @@ private void recalcParsSegment(DataEvent event, Segment _Segment1, IndexedTable fhit.updateHitPositionWithTime(event, trkAngle, fhit.getB(), tab, DcDetector, tde); } - cf.SetFitArray(_Segment1.get_fittedCluster(), org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.TSC); + cf.SetFitArray(_Segment1.get_fittedCluster(), CoordSys.TSC); cf.Fit(_Segment1.get_fittedCluster(), true); trkAngle = _Segment1.get_fittedCluster().get_clusterLineFitSlope(); for (FittedHit fhit : _Segment1.get_fittedCluster()) { fhit.updateHitPositionWithTime(event, trkAngle, fhit.getB(), tab, DcDetector, tde); } - cf.SetFitArray(_Segment1.get_fittedCluster(), org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.TSC); + cf.SetFitArray(_Segment1.get_fittedCluster(), CoordSys.TSC); cf.Fit(_Segment1.get_fittedCluster(), true); cf.SetResidualDerivedParams(_Segment1.get_fittedCluster(), true, false, DcDetector); //calcTimeResidual=false, resetLRAmbig=false - cf.SetFitArray(_Segment1.get_fittedCluster(), org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.TSC); + cf.SetFitArray(_Segment1.get_fittedCluster(), CoordSys.TSC); cf.Fit(_Segment1.get_fittedCluster(), false); cf.SetSegmentLineParameters(_Segment1.get_fittedCluster().get(0).get_Z(), _Segment1.get_fittedCluster()); diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/nn/PatternRec.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/nn/PatternRec.java index f088abb618..bde2e522b5 100644 --- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/nn/PatternRec.java +++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/nn/PatternRec.java @@ -14,6 +14,7 @@ import org.jlab.rec.dc.cluster.ClusterCleanerUtilities; import org.jlab.rec.dc.cluster.ClusterFinder; import org.jlab.rec.dc.cluster.ClusterFitter; +import org.jlab.rec.dc.cluster.ClusterFitter.CoordSys; import org.jlab.rec.dc.cluster.FittedCluster; import org.jlab.rec.dc.cross.Cross; import org.jlab.rec.dc.cross.CrossList; @@ -172,7 +173,7 @@ public List RecomposeSegments(List fhits, fhit.updateHitPosition(DcDetector); } - cf.SetFitArray(fclus, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.TSC); + cf.SetFitArray(fclus, CoordSys.TSC); cf.Fit(fclus, true); cf.SetResidualDerivedParams(fclus, false, false, DcDetector); //calcTimeResidual=false, resetLRAmbig=false, local= false diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/RoadFinder.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/RoadFinder.java index e03874a127..e259c9fc53 100644 --- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/RoadFinder.java +++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/RoadFinder.java @@ -5,14 +5,14 @@ import org.jlab.rec.dc.cluster.Cluster; import org.jlab.rec.dc.cluster.ClusterFitter; +import org.jlab.rec.dc.cluster.ClusterFitter.CoordSys; import org.jlab.rec.dc.cluster.FittedCluster; import org.jlab.rec.dc.hit.FittedHit; import org.jlab.rec.dc.segment.Segment; import org.jlab.rec.dc.Constants; - -import Jama.Matrix; import org.jlab.detector.geant4.v2.DCGeant4Factory; +import Jama.Matrix; public class RoadFinder { @@ -30,8 +30,6 @@ public RoadFinder() { * @return list of segments corresponding to pseudo-segments */ public List findRoads(List segs, DCGeant4Factory DcDetector) { - //QuadraticFit qf = new QuadraticFit(); - //initialize the lists List Roads = new ArrayList<>(); @@ -51,11 +49,9 @@ public List findRoads(List segs, DCGeant4Factory DcDetector) { } for(int sec=0; sec<6; sec++) { for(int sly=0; sly<6; sly++) { - //if(superLayerLists.get(sec).get(sly).size()==0) { // add a blank to each superlayer Segment blank = new Segment(new FittedCluster(new Cluster(sec+1, sly+1, -1))); blank.set_Id(-10); superLayerLists.get(sec).get(sly).add(blank); - //} } } int roadId =1; @@ -98,8 +94,6 @@ public List findRoads(List segs, DCGeant4Factory DcDetector) { public Segment findRoadMissingSegment(List segList, DCGeant4Factory DcDetector, double[] a) { - //his.fitRoad((ArrayList) segList, DcDetector); - Segment pseudoSeg = null; if(segList.size()<3) { // make pseudo-segment for missing segment // find missing segment superlayer @@ -139,7 +133,7 @@ public Segment findRoadMissingSegment(List segList, DCGeant4Factory DcD fpseudoCluster.add(pseudoHit); } - cf.SetFitArray(fpseudoCluster, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.TSC); + cf.SetFitArray(fpseudoCluster, CoordSys.TSC); cf.Fit(fpseudoCluster, true); cf.SetSegmentLineParameters(fpseudoCluster.get(0).get_Z(), fpseudoCluster) ; @@ -148,6 +142,7 @@ public Segment findRoadMissingSegment(List segList, DCGeant4Factory DcD } return pseudoSeg; } + /** * * @param pseudoSeg @@ -156,13 +151,13 @@ public Segment findRoadMissingSegment(List segList, DCGeant4Factory DcD * @return redo the fit (not used) */ private Segment reFit(Segment pseudoSeg, ArrayList segList, DCGeant4Factory DcDetector ) { - qf.init(); - this.fitRoad(segList, DcDetector); + qf.init(); + this.fitRoad(segList, DcDetector); - Cluster pseudoCluster = new Cluster(segList.get(0).get_Sector(),pseudoSeg.get_Superlayer(),-1); - FittedCluster fpseudoCluster = new FittedCluster(pseudoCluster); + Cluster pseudoCluster = new Cluster(segList.get(0).get_Sector(),pseudoSeg.get_Superlayer(),-1); + FittedCluster fpseudoCluster = new FittedCluster(pseudoCluster); - for(int l = 0; l<6; l++) { + for(int l = 0; l<6; l++) { int layer = l+1; double z = DcDetector.getWireMidpoint(pseudoSeg.get_Sector()-1, pseudoSeg.get_Superlayer()-1,layer-1,0).z; double trkX = qf.a[0]*z*z+qf.a[1]*z+qf.a[2]; @@ -175,16 +170,16 @@ private Segment reFit(Segment pseudoSeg, ArrayList segList, DCGeant4Fac pseudoHit.updateHitPosition(DcDetector); pseudoHit.calc_GeomCorr(DcDetector, 0); fpseudoCluster.add(pseudoHit); - } - cf.SetFitArray(fpseudoCluster, org.jlab.rec.dc.cluster.ClusterFitter.CoordSys.TSC); - cf.Fit(fpseudoCluster, true); - - cf.SetSegmentLineParameters(fpseudoCluster.get(0).get_Z(), fpseudoCluster) ; - Segment pseudoSeg1 = new Segment(fpseudoCluster); - - pseudoSeg1.set_fitPlane(DcDetector); + } + cf.SetFitArray(fpseudoCluster, CoordSys.TSC); + cf.Fit(fpseudoCluster, true); - return pseudoSeg1; + cf.SetSegmentLineParameters(fpseudoCluster.get(0).get_Z(), fpseudoCluster) ; + Segment pseudoSeg1 = new Segment(fpseudoCluster); + + pseudoSeg1.set_fitPlane(DcDetector); + + return pseudoSeg1; } private boolean fitRoad(ArrayList segList, DCGeant4Factory DcDetector) { From 9b30f9351e76324460575d28ce7be2dad6c84d7d Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Fri, 8 May 2026 20:57:16 -0400 Subject: [PATCH 5/5] satisfy spotbugs --- .../src/main/java/org/jlab/rec/dc/cluster/ClusterFitter.java | 3 --- 1 file changed, 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 28708103b4..0013e8e75e 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 @@ -25,9 +25,6 @@ public static enum CoordSys { this.id = id; this.name = name; } - public boolean equals(CoordSys other) { - return this.id == other.id; - } } private CoordSys coordinateSystem;