From 0ce14ba49cd6150e09a9dd32ea3451e3e47f16bf Mon Sep 17 00:00:00 2001 From: Thomas White Date: Thu, 21 Jun 2012 12:20:11 +0200 Subject: More fussiness --- libcrystfel/src/peaks.c | 36 +++++++++++++++++------------------- libcrystfel/src/reflist.c | 5 ++++- src/indexamajig.c | 1 + 3 files changed, 22 insertions(+), 20 deletions(-) diff --git a/libcrystfel/src/peaks.c b/libcrystfel/src/peaks.c index 3ae7de8e..99a12ae5 100644 --- a/libcrystfel/src/peaks.c +++ b/libcrystfel/src/peaks.c @@ -146,14 +146,18 @@ static int cull_peaks(struct image *image) return nelim; } + static unsigned char *make_BgMask(struct image *image, struct panel *p, double ir_out, int cfs, int css, double ir_in) { Reflection *refl; RefListIterator *iter; unsigned char *mask; + int w, h; - mask = calloc(4*ir_out*ir_out, sizeof(unsigned char)); + w = p->max_fs - p->min_fs + 1; + h = p->max_ss - p->min_ss + 1; + mask = calloc(w*h, sizeof(unsigned char)); if ( mask == NULL ) return NULL; /* Loop over all reflections */ @@ -163,6 +167,7 @@ static unsigned char *make_BgMask(struct image *image, struct panel *p, { struct panel *p2; double pk2_fs, pk2_ss; + signed int fs, ss; get_detector_pos(refl, &pk2_fs, &pk2_ss); @@ -170,31 +175,25 @@ static unsigned char *make_BgMask(struct image *image, struct panel *p, p2 = find_panel(image->det, pk2_fs, pk2_ss); if ( p2 != p ) continue; - /* If other peak area overlaps larger bg area, set mask */ - if ( (fabs(pk2_fs-cfs)det, cfs, css); if ( p == NULL ) return 1; if ( p->no_index ) return 1; diff --git a/libcrystfel/src/reflist.c b/libcrystfel/src/reflist.c index cea25bf3..64154774 100644 --- a/libcrystfel/src/reflist.c +++ b/libcrystfel/src/reflist.c @@ -900,6 +900,7 @@ struct _reflistiterator { **/ Reflection *first_refl(RefList *list, RefListIterator **piter) { + Reflection *refl; RefListIterator *iter; iter = malloc(sizeof(struct _reflistiterator)); @@ -908,7 +909,9 @@ Reflection *first_refl(RefList *list, RefListIterator **piter) iter->stack_ptr = 0; *piter = iter; - Reflection *refl = list->head; + if ( list == NULL ) return NULL; + + refl = list->head; do { diff --git a/src/indexamajig.c b/src/indexamajig.c index 8c073e2c..c3e1bedf 100644 --- a/src/indexamajig.c +++ b/src/indexamajig.c @@ -264,6 +264,7 @@ static void process_image(void *pp, int cookie) image.data = NULL; image.flags = NULL; image.indexed_cell = NULL; + image.reflections = NULL; image.id = cookie; image.filename = filename; image.det = copy_geom(pargs->static_args.det); -- cgit v1.2.3