Age | Commit message (Collapse) | Author |
|
This solves a tricky conceptual issue: Stream owns the DataTemplate when
it's reading (because it came from the stream headers), but not when
writing (when it's provided to us).
|
|
|
|
|
|
This prevents an out-of-memory situation (due to ulimit) from
manifesting as a segfault.
|
|
|
|
|
|
|
|
|
|
No-one uses it, it doubles the complexity of the code, and the manual
even warns not to use it.
|
|
|
|
|
|
|
|
|
|
The tiny amount of information in that file isn't relevant (or even
correct..) any more.
|
|
|
|
|
|
|
|
|
|
Bad regions are specified (in the geometry file) in terms of the "file"
coordinates, which might be different to the panel-relative ones.
|
|
|
|
Bad regions specified in terms of x/y still require an iteration over
all pixels of the detector, but I don't see an easy way around that.
Avoiding x/y bad regions will give best performance.
|
|
It's not used any more - nowhere is it set to 1.
|
|
|
|
|
|
|
|
Also flips the order of iteration for (negligibly) better performance
|
|
This avoids a load of trigonometric functions. In combination with the
new UnitCell representation caching, this gives a significant speedup
for cases where resolution() is called in a loop.
|
|
Previously, the "getter" functions would re-calculate the requested
representation every time they were called. This could mean doing a
matrix inversion in the middle of a tight loop, wasting loads of time.
Now, it stores the calculated values and returns them directly next
time. Setting the parameters invalidates the values for all
representations other than the one given.
The cost of doing this is that the cell can no longer be "const" in the
getter functions. This tracked through some other code, but nothing too
severe.
|
|
|
|
|
|
This test is meant to avoid integrating overlapping spots. It does a
very bad job of this, because it doesn't take into account whether
the neighbouring reflection is actually excited, or even allowed by the
lattice. It's even worse when we think about wide bandwidth.
|
|
|
|
Lots of improvements still to be made here, such as using the "real"
Cairo text API as well as using proper overlines for negative indices.
|
|
|
|
The radii are not used (the tests only check scaling), but must pass the
newly-added check in partialator.
|
|
The criterion for "too large" is 20% of the 1/d value for the lowest
reflection which is not systematically absent according to the
centering.
A profile radius larger than the 1/d value for a reflection will crash
the xsphere partiality model, and some visualisation shows that this is
a clearly non-physical situation. The profile radius shouldn't be
anywhere near the inter-Bragg spacing for reasonable data.
However, feedback shows that this is happening quite often in real data,
probably due to bad indexing.
|
|
|
|
|
|
|
|
|
|
This makes handling Pilatus/Eiger files, as well as many others, much
easier.
|
|
|
|
|
|
|
|
|
|
Because shortly we will have merging_result as well
|
|
This makes the interface consistent between the indexing options and the
merging options.
|
|
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.
|
|
|
|
|