Data caching in GaussHermite.get_data(...) sometimes caused problems. This commit fixes this by using deep copy.
The WeightSolver.solve(...) method has a new optional parameter ignore_existing_weights that allows ignoring existing weight data, forcing a new weight solving run. This is useful for diagnostics and fixes e.g., dev_tests/test_multi_nnls.py.
Now the kinmapchi2 values are in very good agreement between the different weight solvers, see test data below.
Open question: in calculating kinmapchi2, we so far have ignored the GH kinematics systematic errors. Perhaps it would be more consistent with the weight solving to include those (kinematics_data = kin_data.get_data(self.settings, apply_systematic_error=True) in WeightSolver.chi2_kinmap(...), lines 121-122)?
Fix for kinmapchi2 bug:
GaussHermite.get_data(...)
sometimes caused problems. This commit fixes this by using deep copy.WeightSolver.solve(...)
method has a new optional parameterignore_existing_weights
that allows ignoring existing weight data, forcing a new weight solving run. This is useful for diagnostics and fixes e.g.,dev_tests/test_multi_nnls.py
.Now the kinmapchi2 values are in very good agreement between the different weight solvers, see test data below.
Open question: in calculating kinmapchi2, we so far have ignored the GH kinematics systematic errors. Perhaps it would be more consistent with the weight solving to include those (
kinematics_data = kin_data.get_data(self.settings, apply_systematic_error=True)
inWeightSolver.chi2_kinmap(...)
, lines 121-122)?Closes #336
Test results:
FCC047 test runs, LegacyWeightSolver
FCC047 test runs, Python NNLS