aboutsummaryrefslogtreecommitdiff
path: root/libcrystfel
AgeCommit message (Collapse)Author
2021-03-11indexamajig: Use static wavelength from DataTemplate as estimateThomas White
If the geometry file contains a literal wavelength, then let's use it. That's better than nagging the user for a --wavelength-estimate.
2021-03-11Add some warningsThomas White
2021-03-11indexamajig: Add --max-indexer-threadsThomas White
This is a more general replacement for --pinkIndexer-thread-count.
2021-03-11PinkIndexer: Allocate peak lists when indexingThomas White
There doesn't seem to be any point in allocating them earlier, except to make space for some nice bugs.
2021-03-11PinkIndexer: Remove unnecessary castThomas White
2021-03-11PinkIndexer: Remove wide bandwidth stuffThomas White
This will return later in a more centralised form, if we decide to work further on wide bandwidth.
2021-03-11PinkIndexer: Use fake camera length for detector refinementThomas White
... and calculate the real value afterwards, checking that the detector is really flat enough for it to work.
2021-03-11PinkIndexer: Remove custom indexing checksThomas White
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.
2021-03-11Re-enable PinkIndexerThomas White
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-11Update copyright dates in libcrystfel/src/indexersThomas White
2021-03-11PinkIndexer: Don't use ImageFeature->rx,ry,rzThomas White
This brings it up to date after e7cf3911104f.
2021-03-11setup_indexing: Remove dtemplThomas White
There is absolutely nothing useful that an indexing algorithm can do with the opaque DataTemplate object.
2021-03-11indexamajig: Add --wavelength-estimateThomas White
This is a more sensible non-indexer-specific and non-Xray-specific replacement for --pinkIndexer-override-photon-energy
2021-03-09Add the ability to use multiple bad pixel masks at onceThomas White
2021-03-05Mosflm: Add -n optionThomas White
This tells Mosflm not to try to load environ.def and defaults.def. We don't need either.
2021-03-05Mass update of copyright dates in source code commentsThomas White
2021-03-01data_template_new_from_string: Fail gracefully if fs/ss bad region lacks ↵Thomas White
panel name Fixes CRYS-245
2021-02-15Check that bad regions are actually within panel boundsThomas White
2021-02-09Add fom_is_comparison()Thomas White
2021-02-08Add fom_name()Thomas White
2021-02-08Expose fom_is_anomalous()Thomas White
2021-02-05Documentation for new FoM APIThomas White
2021-02-05Move fom_type_from_string out of APIThomas White
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!)
2021-02-05check_hkl: Remove standard deviation of intensityThomas White
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!
2021-02-05check_hkl: Move "single-list" FoMs into APIThomas White
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!
2021-01-28Stream: Use separate DataTemplate for reading and writingThomas White
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).
2021-01-27partialator/reflist: Propagate calloc NULL returnThomas White
This prevents an out-of-memory situation (due to ulimit) from manifesting as a segfault.
2021-01-27stream_close: Free the DataTemplateThomas White
2021-01-27image_free: Also free the spectrumThomas White
2021-01-27DataTemplate: fix some small memory leaksThomas White
2021-01-22compare_hkl: Remove --intensity-shellsThomas White
No-one uses it, it doubles the complexity of the code, and the manual even warns not to use it.
2021-01-22Remove selection of reflections for FoM to libcrystfelThomas White
2021-01-22Improve names for FoM APIThomas White
2021-01-22Move figure of merit calculation into libcrystfelThomas White
2021-01-15Correct P to R centeringThomas White
2021-01-15FormattingThomas White
2021-01-14Correct bad region coordinatesThomas White
Bad regions are specified (in the geometry file) in terms of the "file" coordinates, which might be different to the panel-relative ones.
2021-01-14Remove old debuggingThomas White
2021-01-14Avoid very slow loop over pixels to create bad pixel mapThomas White
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.
2021-01-14Stream: Remove in_chunkThomas White
It's not used any more - nowhere is it set to 1.
2021-01-14stream_open_for_read: Avoid using fseek()Thomas White
2021-01-14data_template_new_from_string: Fix error pathThomas White
2021-01-12FussinessThomas White
2021-01-11create_badmap: Break down into subroutinesThomas White
Also flips the order of iteration for (negligibly) better performance
2021-01-11resolution(): Use reciprocal representation instead of crystallographicThomas White
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.
2021-01-11UnitCell: Store all representations once they're calculatedThomas White
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.
2021-01-08detgeom_transform_coords: Avoid using trigonometric functionsThomas White
2021-01-08Update documentation about max_adu, and add a warningThomas White
2021-01-08Remove "Bragg proximity check" during integrationThomas White
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.