Age | Commit message (Collapse) | Author |
|
If the geometry file contains a literal wavelength, then let's use it.
That's better than nagging the user for a --wavelength-estimate.
|
|
|
|
This is a more general replacement for --pinkIndexer-thread-count.
|
|
There doesn't seem to be any point in allocating them earlier, except to
make space for some nice bugs.
|
|
|
|
This will return later in a more centralised form, if we decide to work
further on wide bandwidth.
|
|
... and calculate the real value afterwards, checking that the detector
is really flat enough for it to work.
|
|
These conflict badly with CrystFEL's own checks, creating a horrible
user and developer experience.
Later, if we want to handle wide bandwidth beams, we will improve the
central CrystFEL checks to support it.
|
|
|
|
This allows the refined detector position to be used in a lot of places.
|
|
|
|
This brings it up to date after e7cf3911104f.
|
|
There is absolutely nothing useful that an indexing algorithm can do
with the opaque DataTemplate object.
|
|
This is a more sensible non-indexer-specific and non-Xray-specific
replacement for --pinkIndexer-override-photon-energy
|
|
|
|
This tells Mosflm not to try to load environ.def and defaults.def. We
don't need either.
|
|
|
|
panel name
Fixes CRYS-245
|
|
|
|
|
|
|
|
|
|
|
|
If it's needed, we'll replace it with a better piece of API (...which
doesn't abort the program in the event of a typo!)
|
|
It would've been difficult to calculate this in the new unified FoM API,
and the figure is completely useless anyway.
If you disagree with both of the above statements, please get in touch!
|
|
Reasons for differences:
1. Resolution shells slightly different
The binning calculation needs to take into account small rounding errors
in the resolution calculation, when not using an explicit resolution
range (--highres). The old version did this by taking a min/max
resolution range slightly larger than the resolution of the data. The
new version handles the rounding errors explicitly, so does not need
this.
2. Number of reflections with infinite/invalid I/sigI values halved
The number reported for this count was twice what it should have been,
due to a bug in the old check_hkl.
3. Overall SNR is different
When the above warning message applies, the old version still allowed
the reflections with invalid I/sigI values to contribute to the
denominator of the mean SNR calculation. The new version does not
include them in the SNR calculation at all. Note that the reflections
contribute to the other figures of merit unless otherwise stated.
4. Standard deviation of intensity is not calculated
It would've been a lot of work to include this in the new version, and
it's a totally useless number. If you disagree, please get in touch!
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
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.
|