From 8fb45911249c244a721d1bbea2eb5852f0a50b60 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Sun, 2 Jun 2013 14:11:39 -0700 Subject: Fix RG delta output, and write only if actually calibrated --- libcrystfel/src/detector.c | 1 + libcrystfel/src/detector.h | 1 + libcrystfel/src/integration.c | 2 ++ libcrystfel/src/stream.c | 8 +++++--- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/libcrystfel/src/detector.c b/libcrystfel/src/detector.c index 2fdd63f1..5cd0ce0f 100644 --- a/libcrystfel/src/detector.c +++ b/libcrystfel/src/detector.c @@ -567,6 +567,7 @@ static struct rigid_group *find_or_add_rg(struct detector *det, rg->name = strdup(name); rg->panels = NULL; rg->n_panels = 0; + rg->have_deltas = 0; return rg; } diff --git a/libcrystfel/src/detector.h b/libcrystfel/src/detector.h index 8ff8db2f..cfe0808a 100644 --- a/libcrystfel/src/detector.h +++ b/libcrystfel/src/detector.h @@ -60,6 +60,7 @@ struct rigid_group double d_fsy; double d_ssy; double d_cny; + int have_deltas; }; diff --git a/libcrystfel/src/integration.c b/libcrystfel/src/integration.c index c264f671..0e174139 100644 --- a/libcrystfel/src/integration.c +++ b/libcrystfel/src/integration.c @@ -1199,6 +1199,7 @@ static void refine_rigid_groups(struct intcontext *ic) rg->d_fsy = gsl_vector_get(dq2, 0); rg->d_ssy = gsl_vector_get(dq2, 1); rg->d_cny = gsl_vector_get(dq2, 2); + rg->have_deltas = 1; gsl_vector_free(dq1); gsl_vector_free(dq2); @@ -1211,6 +1212,7 @@ static void refine_rigid_groups(struct intcontext *ic) rg->d_fsy = 0.0; rg->d_ssy = 0.0; rg->d_cny = 0.0; + rg->have_deltas = 0; } diff --git a/libcrystfel/src/stream.c b/libcrystfel/src/stream.c index 8c12aa3b..c4ded787 100644 --- a/libcrystfel/src/stream.c +++ b/libcrystfel/src/stream.c @@ -226,6 +226,8 @@ void write_chunk(Stream *st, struct image *i, struct hdfile *hdfile, struct rigid_group *rg = i->det->rigid_groups[j]; + if ( !rg->have_deltas ) continue; + fprintf(st->fh, "rg_delta_%s_fsx = %f\n", rg->name, rg->d_fsx); fprintf(st->fh, "rg_delta_%s_ssx = %f\n", @@ -234,11 +236,11 @@ void write_chunk(Stream *st, struct image *i, struct hdfile *hdfile, rg->name, rg->d_cnx); fprintf(st->fh, "rg_delta_%s_fsy = %f\n", - rg->name, rg->d_fsx); + rg->name, rg->d_fsy); fprintf(st->fh, "rg_delta_%s_ssy = %f\n", - rg->name, rg->d_ssx); + rg->name, rg->d_ssy); fprintf(st->fh, "rg_delta_%s_cny = %f\n", - rg->name, rg->d_cnx); + rg->name, rg->d_cny); } -- cgit v1.2.3