aboutsummaryrefslogtreecommitdiff
path: root/libcrystfel/src/geometry.c
AgeCommit message (Collapse)Author
2024-07-29Catch NaNs in ggpm modelThomas White
Previously, these NaNs would result in very many reflections being predicted with meaningless partiality when the profile radius was zero. This would take a long time (~30 seconds) and hold up the processing of other patterns. A zero radius is sometimes returned by the auto profile radius calculation, which is a separate problem. Now, the model simply doesn't predict any reflections and returns very quickly. It feels strange to not have any predictions in this case, but the model is actually giving the expected answer, because the overlap integral is always zero when the profile radius is zero. Therefore there can be no intensity in the peak and hence no prediction. Fixes: https://gitlab.desy.de/thomas.white/crystfel/-/issues/109
2024-02-06Crystals shouldn't own RefLists (part 4)Thomas White
This fixes the general prediction/partiality parts.
2024-02-06Crystal: Remove reference to image structure (part 1)Thomas White
2023-07-28Redefine ray vector without trigonometryThomas White
This makes the gradients very simple!
2023-07-28Move gradients to predict-refineThomas White
Makes sense for the _dev and _gradient functions to be in the same place.,
2023-07-28Initial re-parameterisation of prediction refinement with fs/ss coordinatesThomas White
The gradients need to be updated.
2023-07-28Fix incorrect sign of clen gradientThomas White
2021-07-21do_integral: Remove unnecessary assignmentsThomas White
These local variables were being assigned just before returning.
2021-07-21safe_khalf: Use NAN instead of 0.0/0.0Thomas White
2021-07-21Fix random_partiality()Thomas White
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-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-05Mass update of copyright dates in source code commentsThomas White
2021-01-08locate_peak_on_panel: Check sign of 1/muThomas White
2020-09-24Fix old warning messageThomas White
2020-07-29Replace largest_q for detgeomThomas White
2020-07-29Remove more references to old detector structureThomas White
2020-07-29Convert prediction gradients to detgeomThomas White
2020-07-29Convert prediction and integration to detgeomThomas White
2020-01-10Mass update of copyright datesThomas White
2019-11-15Add partiality model GGPMWolfgang Brehm
2019-11-05bug fix in Ewald sphere width calculationYaroslav Gevorkov
2019-10-24polarisation_correction: Use symmetric indicesThomas White
2019-10-24polarisation_correction: Scale the sigma as wellThomas White
2019-09-12Fix sign of zl comparisonThomas White
2019-09-12Fix possibly uninitialised overlap_integralThomas White
Introduced by b6af09d78d49d552a05b81bd20a7854a180373f5
2019-09-05Allow the polarsation correction to be completely disabledThomas White
2019-09-02Don't need separate wavelength for polarisation correctionThomas White
Can use kpred
2019-09-02process_hkl,partialator: Allow arbitrary direction and degree of polarisationThomas White
2019-08-26Formatting/fussinessThomas White
2019-08-26loop prediction for gaussian sum spectrumWolfgang Brehm
2019-07-17partialator: Add "offset" model (Ewald sphere offset assuming monochromatic ↵Thomas White
beam)
2019-07-17partialator: Use Spectrum APIThomas White
2019-05-07Update all source code comments to Doxygen formatThomas White
2018-02-27Replace debugging code with an assert()Thomas White
2018-02-27Halve the bandwidthThomas White
2018-02-27Take modulus of profile radiusThomas White
A bit nasty, but avoids lots of NANs
2018-02-27Set integral range to +/- 3 sigmaThomas White
2018-02-27Add an assertionThomas White
2018-02-27do_integral(): Take part of the filename as input for debugThomas White
2018-02-27Horrible restraint to keep algorithm from drifting too farThomas White
2018-02-27Minimisation fixesThomas White
2018-02-27Minimisation debug stuffThomas White
2018-02-27Remove old code (and formatting)Thomas White
2018-02-27New clamping criteriaThomas White
2018-02-27Record khalf for reflectionsThomas White
2018-02-27New partiality model from Ginn et al.Thomas White
2018-02-27Separate partiality calculation from predictionThomas White
2016-12-09New polarisation correctionThomas White
2016-11-10Fix 2theta calculation in locate_peak_on_panel()Thomas White
The "improved" version of this, added by 9b1374999 along with the new spot position calculation for out-of-plane panels, actually assumes that the reflection is at the exact Bragg condition. This is not a valid assumption here. The difference is small (<0.5 px), but made the prediction refinement gradients completely wrong.