aboutsummaryrefslogtreecommitdiff
path: root/libcrystfel/src/predict-refine.c
AgeCommit message (Collapse)Author
2023-07-28Separate gradients into "panel" and "physics" partsThomas White
2023-07-28Factorise matrix operationsThomas White
This makes the code much clearer. Note that two opposing sign errors have been fixed in the gradient calculation.
2023-07-28Implement panel x gradientsThomas White
2023-07-28Calculate panel MinvsThomas White
2023-07-28Calculate fs and ss gradients together, SPOT panel number, add matrix hooksThomas White
2023-07-28r_gradient: Re-order parameters to match {fs,ss}_gradientThomas White
2023-07-28Trim the list of geometric parametersThomas White
2023-07-28Don't refine detector at all, in prediction refinementThomas White
Following the advice in https://doi.org/10.1107/S2059798318009191
2023-07-28Remove a #defineThomas White
2023-07-28Reduce scope of rv[]Thomas White
2023-07-28Move gradients to predict-refineThomas White
Makes sense for the _dev and _gradient functions to be in the same place.,
2023-07-28Put residual into metresThomas White
2023-07-28Remove z-component and x/y trackingThomas White
2023-07-28Initial re-parameterisation of prediction refinement with fs/ss coordinatesThomas White
The gradients need to be updated.
2023-07-28z-rotation gradientsThomas White
2023-07-28indexamajig: Set all group translation gradientsThomas White
2023-07-28Move Mille stuff to separate fileThomas White
2023-07-28Remove excitation error termsThomas White
2023-07-28Add clen refinementThomas White
2023-07-28Add profiling for MilleThomas White
2023-07-28Set sensible sigma values for MilleThomas White
2023-07-28Add Millepede measurementsThomas White
2023-07-28indexamajig: Hooks for MilleThomas White
2022-07-12Zero-weight negative intensity peaks in prediction refinementThomas White
Strongly negative peaks can occur if there are unmasked bad pixels. These cause the refinement to diverge badly. This change stabilises the refinement such that it works even in these cases. But of course, the real solution is to mask out those pixels. Negative intensity peaks are unlikely to show up "for real" in the peak search results (because we look for strong peaks!). However, if the intensity is negative, we aren't even sure that the peak exists at all and have no reason to assume it should be close to the Bragg condition.
2022-06-09pair_peaks: Use fabs instead of abs for floating point valuesThomas White
2021-11-15pair_peaks: Use reciprocal space distance instead of pixel distanceThomas White
The reciprocal space distance limit has been set as one third of the smallest inter-Bragg spacing. Fixes: https://gitlab.desy.de/thomas.white/crystfel/-/issues/38
2021-11-15Ensure that crystal doesn't end up with invalid reflist after prediction ↵Thomas White
refinement
2021-10-22pair_peaks: Skip reflections if the indices are too largeThomas White
2021-05-17Resolve FIXMEs and TODOsThomas White
Prompted by the article linked below, for each FIXME/TODO I've either referenced an issue in the tracker, or removed it if it's not worth fixing. https://schleiss.io/plotting-source-code-todos-for-open-source-projects
2021-04-27Rename libcrystfel's config.h to libcrystfel-config.hThomas White
This removes the big potential for confusion, which has happened several times (see e.g. 095cbebaf6). It also fixes in-tree builds with CMake (but seriously, always use out-of-tree builds). Fixes #2.
2021-03-25Avoid updating detector geometry structure during prediction refinementThomas White
This makes the behaviour consistent with the prediction itself, and removes another bit of mutable state.
2021-03-23Use crystal's detector shift during predictionThomas White
Previously, this was handled by updating the detector, but this could easily lead to strange double accounting.
2021-03-11detgeom_transform_coords: Take an additional detector shiftThomas White
This allows the refined detector position to be used in a lot of places.
2021-03-05Mass update of copyright dates in source code commentsThomas White
2020-12-07Get rid of ImageFeature->rx,ry,rzThomas White
These needed to be kept up to date with a call to map_all_peaks every time anything changed - wavelength, detector position etc. Not doing so has already led to bugs in another branch, and probably already causes problems on this branch. This patch eliminates the rx,ry,rz completely. Anyone who needs reciprocal space coordinates for a peak is now responsible for calling detgeom_transform_coords themselves.
2020-08-18Formatting/commentsThomas White
2020-08-18predict-refine: Remove out-of-bounds GSL vector accessThomas White
We got away with this because the GSL error handler is turned off in indexamjig.c, and invalid accesses are defined to return 0. However, these accesses should have been removed when the clen refinement was disabled in predict-refine
2020-07-29Convert predict-refine to detgeomThomas White
2020-07-29Convert stream to DataTemplateThomas White
2020-07-29Convert prediction gradients to detgeomThomas White
2020-07-29ImageFeatureList: Store panel number, not pointerThomas White
This makes the conversion to DataTemplate/detgeom MUCH easier.
2020-01-10Mass update of copyright datesThomas White
2019-12-13pair_peaks: Don't attempt to pair 000Thomas White
Normally the beam centre is masked out or not on the detector. However, when it is, pairing with 000 causes gradients to come out as NaN and the prediction refinement to fail.
2019-08-02Fix a small memory leakThomas White
2019-05-07Update all source code comments to Doxygen formatThomas White
2018-11-22Rename prediction refinement residual functionThomas White
Because there's another function with this name in merge.c
2018-07-27indexamajig: Complain if profile radius determination failsThomas White
2018-06-14Remove "unused" flagThomas White
2018-06-14Add final residual from prediction refinement to streamThomas White
2018-02-27New partiality model from Ginn et al.Thomas White