aboutsummaryrefslogtreecommitdiff
path: root/libcrystfel/src/reflist-utils.c
diff options
context:
space:
mode:
authorThomas White <taw@bitwiz.org.uk>2011-08-28 04:29:43 -0700
committerThomas White <taw@physics.org>2012-02-22 15:27:42 +0100
commit2318ae07fa5baaead4c1bc55bc4e63694c1942dc (patch)
tree85a7397ad3f58e4d2d58a91eac0e5cc682e02282 /libcrystfel/src/reflist-utils.c
parent0f7fc1d4d2e8022a1166e17ccd694f1d1b855d67 (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.c37
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;
+}