diff options
author | Thomas White <taw@bitwiz.org.uk> | 2011-08-28 04:29:43 -0700 |
---|---|---|
committer | Thomas White <taw@physics.org> | 2012-02-22 15:27:42 +0100 |
commit | 2318ae07fa5baaead4c1bc55bc4e63694c1942dc (patch) | |
tree | 85a7397ad3f58e4d2d58a91eac0e5cc682e02282 /libcrystfel/src/reflist-utils.c | |
parent | 0f7fc1d4d2e8022a1166e17ccd694f1d1b855d67 (diff) |
Hooks for estimation of maximum resolution for each image
Diffstat (limited to 'libcrystfel/src/reflist-utils.c')
-rw-r--r-- | libcrystfel/src/reflist-utils.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/libcrystfel/src/reflist-utils.c b/libcrystfel/src/reflist-utils.c index c13b7bcf..66bd377e 100644 --- a/libcrystfel/src/reflist-utils.c +++ b/libcrystfel/src/reflist-utils.c @@ -434,3 +434,40 @@ double max_intensity(RefList *list) return max; } + + +/** + * res_cutoff: + * @list: A %RefList + * + * Returns: A new %RefList with resolution cutoff applied + **/ +RefList *res_cutoff(RefList *list, UnitCell *cell, double min, double max) +{ + Reflection *refl; + RefListIterator *iter; + RefList *new; + + new = reflist_new(); + + for ( refl = first_refl(list, &iter); + refl != NULL; + refl = next_refl(refl, iter) ) + { + double one_over_d; + signed int h, k, l; + Reflection *n; + + get_indices(refl, &h, &k, &l); + + one_over_d = 2.0 * resolution(cell, h, k, l); + if ( one_over_d < min ) continue; + if ( one_over_d > max ) continue; + + n = add_refl(new, h, k, l); + copy_data(n, refl); + } + + reflist_free(list); + return new; +} |