From 6815bab588d3e995bd1319e23614372aa1a07f0c Mon Sep 17 00:00:00 2001 From: Thomas White Date: Tue, 26 Apr 2011 15:13:42 +0200 Subject: Progress with post refinement... --- src/geometry.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'src/geometry.c') diff --git a/src/geometry.c b/src/geometry.c index b3d4c8ee..db261e6b 100644 --- a/src/geometry.c +++ b/src/geometry.c @@ -292,6 +292,34 @@ double integrate_all(struct image *image, RefList *reflections) } +/* Decide which reflections can be scaled */ +static int select_scalable_reflections(RefList *list) +{ + int n_scalable = 0; + + Reflection *refl; + RefListIterator *iter; + + for ( refl = first_refl(list, &iter); + refl != NULL; + refl = next_refl(refl, iter) ) { + + int scalable = 1; + double v; + + if ( get_partiality(refl) < 0.1 ) scalable = 0; + v = fabs(get_intensity(refl)); + if ( v < 0.1 ) scalable = 0; + + set_scalable(refl, scalable); + if ( scalable ) n_scalable++; + + } + + return n_scalable; +} + + /* Calculate partialities and apply them to the image's raw_reflections */ void update_partialities(struct image *image, const char *sym, int *n_expected, int *n_found, int *n_notfound) @@ -355,6 +383,7 @@ void update_partialities_and_asymm(struct image *image, const char *sym, * to get the list used for scaling and post refinement */ image->reflections = asymmetric_indices(image->raw_reflections, sym, obs); + select_scalable_reflections(image->reflections); /* Need these lists to work fast */ optimise_reflist(image->reflections); -- cgit v1.2.3