aboutsummaryrefslogtreecommitdiff
path: root/libcrystfel/src
AgeCommit message (Collapse)Author
2023-09-12Fix sense of panel rotationsThomas White
Should always be a right-hand grip rotation around positive axis direction.
2023-08-30Add excitation error to Millepede data (local-only measurement)Thomas White
2023-08-30FussinessThomas White
2023-08-29Automatically add top-level group for single-panel detectorsThomas White
2023-08-24Use built-in Mille writer instead of wrapping C++ versionThomas White
2023-07-28Tweak sigmasThomas White
2023-07-28align_detector: Decode labels and apply geometry correctionsThomas White
2023-07-28Don't attempt to write Mille data without geometry groupsThomas White
2023-07-28Unconditionally compile crystfel-mille.cThomas White
We need mille_label() for align_detector, even if we don't have Millepede. Some of this complexity can be removed later by re-implementing "mille()". The build system and wrapper code is already longer than a pure C implementation would be.
2023-07-28Initialise det->top_groupThomas White
2023-07-28data_template_free: Free the groups as wellThomas White
2023-07-28detgeom_free: Free the groups as wellThomas White
2023-07-28Fix some memory leaksThomas White
2023-07-28Adjust refinement weights and restraintsThomas White
2023-07-28Fix sigmasThomas White
2023-07-28Fix parameter refinement unitsThomas White
The *parameters* will be in metres, radians, m^-1 for translation, rotation and cell parameters respectively. The *residuals*, however, are in pixels.
2023-07-28Avoid repetitive codeThomas White
2023-07-28Fix incorrectly-sized arrayThomas White
2023-07-28Implement data_template_group_info()Thomas White
2023-07-28Re-define geometry group labelling schemeThomas White
The old version was totally broken. The serial numbers have to contain the complete hierarchy information, otherwise they aren't unique.
2023-07-28Rotation centre coordinates need to be in metres (not pixels)Thomas White
2023-07-28Add rotation gradients for MilleThomas White
2023-07-28Add detgeom_group_centerThomas White
2023-07-28Fix iterate() for prediction refinementThomas White
I was confused when I wrote acd0de4e4a21, and completely broke the maths. To fix it, I copied the guts of iterate() back from the old version and re-created the intermediate steps - switching x/y to fs/ss, calculating fs/ss gradients together and the hooks for Minv.
2023-07-28Redefine ray vector without trigonometryThomas White
This makes the gradients very simple!
2023-07-28Implement rotation gradients (with test)Thomas White
2023-07-28Move rotate2d to utilsThomas White
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-28Add show_vector()Thomas White
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-28Initial conversion of Millepede code to fs/ss gradientsThomas White
2023-07-28Put residual into metresThomas White
2023-07-28Remove z-component and x/y trackingThomas White
2023-07-28Add detgeom_translate_detector_mThomas White
2023-07-28Initial re-parameterisation of prediction refinement with fs/ss coordinatesThomas White
The gradients need to be updated.
2023-07-28detgeom: Add panel group center coordinatesThomas White
2023-07-28Avoid segfault if geometry file doesn't have groupsThomas White
2023-07-28Fix horribly confusing rotation labelsThomas White
2023-07-28z-rotation gradientsThomas White
2023-07-28indexamajig: Set all group translation gradientsThomas White
2023-07-28detgeom: Add references from children to parentsThomas White
This allows us to start from the panel and work upwards to the top-level group, which makes hierarchical gradient calculation much easier.