From eba3a66907f849b0fd26007d14215dae90f63bf6 Mon Sep 17 00:00:00 2001 From: Felix Touchte Codjo Date: Tue, 13 Jan 2026 10:56:51 +0100 Subject: [PATCH 01/13] implement electron vertex for ahdc --- .../jlab/rec/ahdc/KalmanFilter/KFitter.java | 24 ++++++++------- .../rec/ahdc/KalmanFilter/KalmanFilter.java | 30 +++++++++++++++++-- 2 files changed, 41 insertions(+), 13 deletions(-) diff --git a/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KFitter.java b/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KFitter.java index 3f19dc0305..7263d6638f 100644 --- a/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KFitter.java +++ b/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KFitter.java @@ -29,7 +29,7 @@ public class KFitter { // masses/energies in MeV private final double electron_mass_c2 = PhysicsConstants.massElectron() * 1000; private final double proton_mass_c2 = PhysicsConstants.massProton() * 1000; - private boolean isvertexdefined = false; + private double[] vertex_resolutions = {0.09,1e10}; // default values // dr^2 and dz^2 in mm^2 public KFitter(final RealVector initialStateEstimate, final RealMatrix initialErrorCovariance, final Stepper stepper, final Propagator propagator, final HashMap materialHashMap) { this.stateEstimation = initialStateEstimate; @@ -93,15 +93,14 @@ public void correct(Hit hit) { RealVector h; // check if the hit is the beamline if (hit.getRadius() < 1) { - double z_beam_res_sq = 1.e10;//in mm - if(isvertexdefined)z_beam_res_sq = 4.0;//assuming 2. mm resolution + // the diagonal elements are the squared errors in r, phi, z measurementNoise = - new Array2DRowRealMatrix( - new double[][]{ - {0.09, 0.0000, 0.0000}, - {0.00, 1e10, 0.0000}, - {0.00, 0.0000, z_beam_res_sq} - });//3x3 + new Array2DRowRealMatrix( + new double[][]{ + {vertex_resolutions[0], 0.0000, 0.0000}, + {0.00, 1e10, 0.0000}, + {0.00, 0.0000, vertex_resolutions[1]} + });//3x3 measurementMatrix = H_beam(stateEstimation);//6x3 h = h_beam(stateEstimation);//3x1 z = hit.get_Vector_beam();//0! @@ -274,7 +273,10 @@ public RealVector getStateEstimationVector() { public RealMatrix getErrorCovarianceMatrix() { return errorCovariance.copy(); } - - public void setVertexDefined(boolean isvtxdef) {isvertexdefined = isvtxdef;} + + public void setVertexResolution(double[] res) { + vertex_resolutions[0] = res[0]; + vertex_resolutions[1] = res[1]; + } } diff --git a/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java b/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java index 805a736558..152da11f1d 100644 --- a/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java +++ b/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java @@ -11,6 +11,7 @@ import org.jlab.clas.pdg.PDGDatabase; import org.jlab.clas.pdg.PDGParticle; import org.jlab.clas.tracking.kalmanfilter.Material; +import org.jlab.io.base.DataBank; import org.jlab.io.base.DataEvent; import org.jlab.rec.ahdc.Hit.Hit; import org.jlab.rec.ahdc.Track.Track; @@ -32,6 +33,7 @@ public class KalmanFilter { private final int Niter = 40; // number of iterations for the Kalman Filter private boolean IsVtxDefined = false; // implemented but not used yet + private double[] vertex_resolutions = {0.09, 1e10}; // {error in r squared in mm^2, error in z squared in mm^2} private void propagation(ArrayList tracks, DataEvent event, final double magfield, boolean IsMC) { @@ -44,6 +46,30 @@ private void propagation(ArrayList tracks, DataEvent event, final double final double tesla = 0.001; final double[] B = {0.0, 0.0, magfield / 10 * tesla}; HashMap materialHashMap = MaterialMap.generateMaterials(); + // Recover the vertex of the electron + if (event.hasBank("REC::Particle")) { + DataBank recBank = event.getBank("REC::Particle"); + int row = 0; + while ((!IsVtxDefined) && row < recBank.rows()) { + if (recBank.getInt("pid", row) == 11) { + IsVtxDefined = true; + vz_constraint = recBank.getFloat("vz",row); + //////////////////////////////////////// + /// compute electron resolution here + /// it depends en p and theta + /// the fine tuning will be done later + /// //////////////////////////////////// + //double px = recBank.getFloat("px",row); + //double py = recBank.getFloat("py",row); + //double pz = recBank.getFloat("pz",row); + //double p = Math.sqrt(px*px+py*py+pz*pz); + //double theta = Math.acos(pz/p); + vertex_resolutions[0] = 0.09; + vertex_resolutions[1] = 6400;//4 + 1e10*theta + 1e10*p; + } + row++; + } + } // Loop over tracks int trackId = 0; @@ -53,7 +79,7 @@ private void propagation(ArrayList tracks, DataEvent event, final double // Initialize state vector double x0 = 0.0; double y0 = 0.0; - double z0 = track.get_Z0(); + double z0 = IsVtxDefined ? vz_constraint : track.get_Z0(); double px0 = track.get_px(); double py0 = track.get_py(); double pz0 = track.get_pz(); @@ -76,7 +102,7 @@ private void propagation(ArrayList tracks, DataEvent event, final double RealVector initialStateEstimate = new ArrayRealVector(stepper.y); RealMatrix initialErrorCovariance = MatrixUtils.createRealMatrix(new double[][]{{50.0, 0.0, 0.0, 0.0, 0.0, 0.0}, {0.0, 50.0, 0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 900.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 100.00, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0, 100.00, 0.0}, {0.0, 0.0, 0.0, 0.0, 0.0, 900.0}}); KFitter TrackFitter = new KFitter(initialStateEstimate, initialErrorCovariance, stepper, propagator, materialHashMap); - TrackFitter.setVertexDefined(IsVtxDefined); + if (IsVtxDefined) TrackFitter.setVertexResolution(vertex_resolutions); // Loop over number of iterations for (int k = 0; k < Niter; k++) { From 570fcdf4eea3ad16ab61be84769665e48a6c61b2 Mon Sep 17 00:00:00 2001 From: Felix Touchte Codjo Date: Tue, 13 Jan 2026 12:10:59 +0100 Subject: [PATCH 02/13] convert vz_constraint to mm --- .../main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java b/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java index 152da11f1d..7906d22d64 100644 --- a/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java +++ b/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java @@ -53,7 +53,7 @@ private void propagation(ArrayList tracks, DataEvent event, final double while ((!IsVtxDefined) && row < recBank.rows()) { if (recBank.getInt("pid", row) == 11) { IsVtxDefined = true; - vz_constraint = recBank.getFloat("vz",row); + vz_constraint = 10*recBank.getFloat("vz",row); // mm //////////////////////////////////////// /// compute electron resolution here /// it depends en p and theta From 814f594d28f3ee5257698b8ae259185a378f5e03 Mon Sep 17 00:00:00 2001 From: Felix Touchte Codjo Date: Tue, 13 Jan 2026 13:35:55 +0100 Subject: [PATCH 03/13] test alignement for clas and ahdc --- .../main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java b/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java index 7906d22d64..e00eb40851 100644 --- a/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java +++ b/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java @@ -34,6 +34,7 @@ public class KalmanFilter { private final int Niter = 40; // number of iterations for the Kalman Filter private boolean IsVtxDefined = false; // implemented but not used yet private double[] vertex_resolutions = {0.09, 1e10}; // {error in r squared in mm^2, error in z squared in mm^2} + private double clas_alignement = 60; // mm, CLAS and AHDc don't necessary have the same alignement (ZERO), estimation fro real and run 22712 // this parameter may be subject to calibration private void propagation(ArrayList tracks, DataEvent event, final double magfield, boolean IsMC) { @@ -53,7 +54,7 @@ private void propagation(ArrayList tracks, DataEvent event, final double while ((!IsVtxDefined) && row < recBank.rows()) { if (recBank.getInt("pid", row) == 11) { IsVtxDefined = true; - vz_constraint = 10*recBank.getFloat("vz",row); // mm + vz_constraint = 10*recBank.getFloat("vz",row) - clas_alignement; // mm //////////////////////////////////////// /// compute electron resolution here /// it depends en p and theta From b8b5c9d25aace8187a63fdd66f9cdba87e5c6048 Mon Sep 17 00:00:00 2001 From: Felix Touchte Codjo Date: Tue, 13 Jan 2026 16:44:44 +0100 Subject: [PATCH 04/13] restore alignement at 0 --- .../main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java b/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java index e00eb40851..30f5859d7e 100644 --- a/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java +++ b/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java @@ -34,7 +34,8 @@ public class KalmanFilter { private final int Niter = 40; // number of iterations for the Kalman Filter private boolean IsVtxDefined = false; // implemented but not used yet private double[] vertex_resolutions = {0.09, 1e10}; // {error in r squared in mm^2, error in z squared in mm^2} - private double clas_alignement = 60; // mm, CLAS and AHDc don't necessary have the same alignement (ZERO), estimation fro real and run 22712 // this parameter may be subject to calibration + // mm, CLAS and AHDC don't necessary have the same alignement (ZERO), this parameter may be subject to calibration + private double clas_alignement = 0; private void propagation(ArrayList tracks, DataEvent event, final double magfield, boolean IsMC) { From 59c710229ddba543b284c401d61ac689f6eb7187 Mon Sep 17 00:00:00 2001 From: Felix Touchte Codjo Date: Tue, 13 Jan 2026 12:29:47 -0500 Subject: [PATCH 05/13] fix alert engine for ai track and atof matching --- .../src/main/java/org/jlab/service/alert/ALERTEngine.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/reconstruction/alert/src/main/java/org/jlab/service/alert/ALERTEngine.java b/reconstruction/alert/src/main/java/org/jlab/service/alert/ALERTEngine.java index a52bb33c25..2be0c2df07 100644 --- a/reconstruction/alert/src/main/java/org/jlab/service/alert/ALERTEngine.java +++ b/reconstruction/alert/src/main/java/org/jlab/service/alert/ALERTEngine.java @@ -187,11 +187,11 @@ public boolean processDataEvent(DataEvent event) { int matchHitId = -1; for (int k = 0; k < bank_ATOFHits.rows(); k++) { - int component = bank.getInt("component", k); + int component = bank_ATOFHits.getInt("component", k); if (component == 10) continue; - int sector = bank.getInt("sector", k); - int layer = bank.getInt("layer", k); + int sector = bank_ATOFHits.getInt("sector", k); + int layer = bank_ATOFHits.getInt("layer", k); ATOFHit hit = new ATOFHit(sector, layer, component, 0, 0, 0, 0, ATOF); @@ -216,6 +216,7 @@ public boolean processDataEvent(DataEvent event) { } + rbc.appendTrackMatchingAIBank(event, matched_ATOF_hit_id); return true; } From ac810b4c39ad57ae628c58ddc4ddb8f2a1850280 Mon Sep 17 00:00:00 2001 From: Felix Touchte Codjo Date: Fri, 16 Jan 2026 06:32:52 -0500 Subject: [PATCH 06/13] fix alignement sign --- .../java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java b/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java index 30f5859d7e..97e74ca324 100644 --- a/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java +++ b/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java @@ -35,7 +35,7 @@ public class KalmanFilter { private boolean IsVtxDefined = false; // implemented but not used yet private double[] vertex_resolutions = {0.09, 1e10}; // {error in r squared in mm^2, error in z squared in mm^2} // mm, CLAS and AHDC don't necessary have the same alignement (ZERO), this parameter may be subject to calibration - private double clas_alignement = 0; + private double clas_alignement = -54; private void propagation(ArrayList tracks, DataEvent event, final double magfield, boolean IsMC) { @@ -67,7 +67,7 @@ private void propagation(ArrayList tracks, DataEvent event, final double //double p = Math.sqrt(px*px+py*py+pz*pz); //double theta = Math.acos(pz/p); vertex_resolutions[0] = 0.09; - vertex_resolutions[1] = 6400;//4 + 1e10*theta + 1e10*p; + vertex_resolutions[1] = 64;//4 + 1e10*theta + 1e10*p; } row++; } From b518e75ad81a357f262d0b639a030f7352324408 Mon Sep 17 00:00:00 2001 From: Felix Touchte Codjo Date: Fri, 16 Jan 2026 15:48:09 +0100 Subject: [PATCH 07/13] do not apply vertex shift for simulation --- .../main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java b/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java index 97e74ca324..3b2a58bde0 100644 --- a/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java +++ b/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java @@ -55,7 +55,7 @@ private void propagation(ArrayList tracks, DataEvent event, final double while ((!IsVtxDefined) && row < recBank.rows()) { if (recBank.getInt("pid", row) == 11) { IsVtxDefined = true; - vz_constraint = 10*recBank.getFloat("vz",row) - clas_alignement; // mm + vz_constraint = 10*recBank.getFloat("vz",row) - (IsMC ? 0 : clas_alignement); // mm //////////////////////////////////////// /// compute electron resolution here /// it depends en p and theta From 09c7d105afe7a03b496e7b3991a6ecccfafe321b Mon Sep 17 00:00:00 2001 From: Felix Touchte Codjo Date: Tue, 20 Jan 2026 17:23:01 +0100 Subject: [PATCH 08/13] add ahdc geometry verification in the test --- .../main/java/org/jlab/rec/ahdc/Hit/Hit.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/Hit/Hit.java b/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/Hit/Hit.java index 4a04862c2d..cf667d0743 100644 --- a/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/Hit/Hit.java +++ b/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/Hit/Hit.java @@ -206,6 +206,32 @@ public static void main(String[] args) { System.out.println("h1 compare to h2 : " + h1.compareTo(h2)); System.out.println("h2 compare to h1 : " + h2.compareTo(h1)); System.out.println("h1 compare to h3 : " + h1.compareTo(h3)); + + System.out.println("/////////////////////////"); + System.out.println("Test AHDC geometry"); + System.out.println(""); + System.out.println("s : sector"); + System.out.println("sl : super layer"); + System.out.println("l : layer"); + System.out.println("c : component"); + System.out.println("/////////////////////////"); + System.out.println("------------------------------------------------------------------------------"); + System.out.println(" | origin | end"); + System.out.println("------------------------------------------------------------------------------"); + System.out.println("s sl l c | x y z | x y z"); + System.out.println("------------------------------------------------------------------------------"); + for (int s = 1; s <= factory.getNumSectors(); s++) { + for (int sl = 1; sl <= factory.getSector(s).getNumSuperlayers(); sl++) { + for (int l = 1; l <= factory.getSector(s).getSuperlayer(sl).getNumLayers(); l++) { + for (int c = 1; c <= factory.getSector(s).getSuperlayer(sl).getLayer(l).getNumComponents(); c++) { + Line3D line = factory.getSector(s).getSuperlayer(sl).getLayer(l).getComponent(c).getLine(); + Point3D end = line.end(); + Point3D origin = line.origin(); + System.out.printf("%2d %2d %2d %2d | %7.3f %7.3f %7.3f | %7.3f %7.3f %7.3f\n", s, sl, l, c, origin.x(), origin.y(), origin.z(), end.x(), end.y(), end.z()); + } + } + } + } } } From fcc4426e9ec8ef09df9425121e26f431f0acf71f Mon Sep 17 00:00:00 2001 From: Felix Touchte Codjo Date: Wed, 21 Jan 2026 11:49:34 +0100 Subject: [PATCH 09/13] make the error on the ahdc distance dependent on adc and time --- .../alert/src/main/java/org/jlab/rec/ahdc/Hit/Hit.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/Hit/Hit.java b/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/Hit/Hit.java index cf667d0743..42823fa1e6 100644 --- a/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/Hit/Hit.java +++ b/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/Hit/Hit.java @@ -179,7 +179,11 @@ public RealVector get_Vector() { } public RealMatrix get_MeasurementNoise() { - return new Array2DRowRealMatrix(new double[][]{{0.09}}); + double error_on_adc = (1.15146*raw_adc + 437.63)/(3.21187*raw_adc + 878.855); // mm + double error_on_time = (0.4423*time + 13.7215)/(0.846038*time + 31.9867); // mm + + return new Array2DRowRealMatrix(new double[][]{{Math.pow(error_on_adc,2) + Math.pow(error_on_time,2)}}); // mm^2 + //return new Array2DRowRealMatrix(new double[][]{{0.09}}); } // a signature for KalmanFilter.Hit_beam From b07d41cdf12569f0045ffccbe14ec5e6ee83c417 Mon Sep 17 00:00:00 2001 From: Felix Touchte Codjo Date: Wed, 21 Jan 2026 17:05:18 +0100 Subject: [PATCH 10/13] correct the error formula --- .../alert/src/main/java/org/jlab/rec/ahdc/Hit/Hit.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/Hit/Hit.java b/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/Hit/Hit.java index 42823fa1e6..008e892104 100644 --- a/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/Hit/Hit.java +++ b/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/Hit/Hit.java @@ -179,10 +179,12 @@ public RealVector get_Vector() { } public RealMatrix get_MeasurementNoise() { + double mean_error = 0.471; // mm (no difference between adc and time) double error_on_adc = (1.15146*raw_adc + 437.63)/(3.21187*raw_adc + 878.855); // mm double error_on_time = (0.4423*time + 13.7215)/(0.846038*time + 31.9867); // mm + double error = error_on_adc*error_on_time/mean_error; // mm - return new Array2DRowRealMatrix(new double[][]{{Math.pow(error_on_adc,2) + Math.pow(error_on_time,2)}}); // mm^2 + return new Array2DRowRealMatrix(new double[][]{{Math.pow(error, 2)}}); // mm^2 //return new Array2DRowRealMatrix(new double[][]{{0.09}}); } From bb65bc8568ddb2d008e3e65a22514a8dd9bfb768 Mon Sep 17 00:00:00 2001 From: Felix Touchte Codjo Date: Wed, 21 Jan 2026 17:05:52 +0100 Subject: [PATCH 11/13] correct the chi2 calculation --- .../java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java b/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java index 3b2a58bde0..75a3add411 100644 --- a/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java +++ b/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java @@ -164,11 +164,11 @@ private void propagation(ArrayList tracks, DataEvent event, final double hit.setTrackId(trackId); sum_adc += hit.getADC(); sum_residuals += hit.getResidual(); - chi2 += Math.pow(hit.getResidual(),2.0); + chi2 += Math.pow(hit.getResidual()/hit.get_MeasurementNoise().getEntry(0,0),2.0); } track.set_sum_adc(sum_adc); track.set_sum_residuals(sum_residuals); - track.set_chi2(chi2); + track.set_chi2(chi2/(AHDC_hits.size()-3)); track.set_p_drift_kf(p_drift); track.set_dEdx_kf(sum_adc/s); track.set_path_kf(s); From 696f7fcbe564d4924fadd7fee7f6095187ca921d Mon Sep 17 00:00:00 2001 From: Felix Touchte Codjo Date: Wed, 21 Jan 2026 12:22:24 -0500 Subject: [PATCH 12/13] fix chi2 computation --- .../main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java b/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java index 75a3add411..a3ef1ae61f 100644 --- a/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java +++ b/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java @@ -164,7 +164,7 @@ private void propagation(ArrayList tracks, DataEvent event, final double hit.setTrackId(trackId); sum_adc += hit.getADC(); sum_residuals += hit.getResidual(); - chi2 += Math.pow(hit.getResidual()/hit.get_MeasurementNoise().getEntry(0,0),2.0); + chi2 += Math.pow(hit.getResidual(),2)/hit.get_MeasurementNoise().getEntry(0,0); } track.set_sum_adc(sum_adc); track.set_sum_residuals(sum_residuals); From 2da9b2723dce1e5e988278b3a20163bfccdd96b6 Mon Sep 17 00:00:00 2001 From: Felix Touchte Codjo Date: Wed, 21 Jan 2026 18:39:34 +0100 Subject: [PATCH 13/13] remove redundancy --- .../java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java b/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java index a3ef1ae61f..4d2840ee73 100644 --- a/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java +++ b/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/KalmanFilter/KalmanFilter.java @@ -90,9 +90,6 @@ private void propagation(ArrayList tracks, DataEvent event, final double // Read list of hits ArrayList AHDC_hits = track.getHits(); Collections.sort(AHDC_hits); // sorted following the compareTo() method in Hit.java - - double zbeam = 0; - if(IsVtxDefined)zbeam = vz_constraint; // Start propagation Stepper stepper = new Stepper(y); @@ -122,7 +119,7 @@ private void propagation(ArrayList tracks, DataEvent event, final double } // Backward propagation (first layer to beamline) { - Hit hit = new Hit_beam(0, 0, zbeam); + Hit hit = new Hit_beam(0, 0, vz_constraint); TrackFitter.predict(hit, false); TrackFitter.correct(hit); }