diff --git a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/Seed.java b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/Seed.java index 14da31acc7..6261c7d016 100644 --- a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/Seed.java +++ b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/Seed.java @@ -260,23 +260,12 @@ else if(tr.sortingMethod ==1) { public boolean fit(int fitIter, double xb, double yb, double bfield) { - List X = new ArrayList<>(); - List Y = new ArrayList<>(); - List Z = new ArrayList<>(); - List Rho = new ArrayList<>(); - List ErrZ = new ArrayList<>(); - List ErrRho = new ArrayList<>(); - List ErrRt = new ArrayList<>(); List BMTCrossesC = new ArrayList<>(); List BMTCrossesZ = new ArrayList<>(); List SVTCrosses = new ArrayList<>(); double chisqMax = Double.POSITIVE_INFINITY; - int svtSz = 0; - int bmtZSz = 0; - int bmtCSz = 0; - for (Cross c : this.getCrosses()) { // reset cross to clear previous track settings on direction and Point c.reset(); @@ -290,25 +279,19 @@ else if (c.getDetector()==DetectorType.BMT && c.getType()==BMTType.Z ) { BMTCrossesZ.add(c); } } - svtSz = SVTCrosses.size(); - if (BMTCrossesZ != null) { - bmtZSz = BMTCrossesZ.size(); - } - if (BMTCrossesC != null) { - bmtCSz = BMTCrossesC.size(); - } - int useSVTdipAngEst = 1; - if (bmtCSz >= 2) { - useSVTdipAngEst = 0; - } - ((ArrayList) X).ensureCapacity(svtSz + bmtZSz); - ((ArrayList) Y).ensureCapacity(svtSz + bmtZSz); - ((ArrayList) Z).ensureCapacity(svtSz * useSVTdipAngEst + bmtCSz); - ((ArrayList) Rho).ensureCapacity(svtSz * useSVTdipAngEst + bmtCSz); - ((ArrayList) ErrZ).ensureCapacity(svtSz * useSVTdipAngEst + bmtCSz); - ((ArrayList) ErrRho).ensureCapacity(svtSz * useSVTdipAngEst + bmtCSz); // Try: don't use svt in dipdangle fit determination - ((ArrayList) ErrRt).ensureCapacity(svtSz + bmtZSz); + int svtSz = SVTCrosses.size(); + int bmtZSz = BMTCrossesZ.size(); + int bmtCSz = BMTCrossesC.size(); + int useSVTdipAngEst = bmtCSz >= 2 ? 0 : 1; + + List X = new ArrayList<>(svtSz + bmtZSz); + List Y = new ArrayList<>(svtSz + bmtZSz); + List Z = new ArrayList<>(svtSz * useSVTdipAngEst + bmtCSz); + List Rho = new ArrayList<>(svtSz * useSVTdipAngEst + bmtCSz); + List ErrZ = new ArrayList<>(svtSz * useSVTdipAngEst + bmtCSz); + List ErrRho = new ArrayList<>(svtSz * useSVTdipAngEst + bmtCSz); + List ErrRt = new ArrayList<>(svtSz + bmtZSz); HelicalTrackFitter fitTrk = new HelicalTrackFitter(); for (int i = 0; i < fitIter; i++) {