From c4f950362d6f1d5a14f0897c15148021e6854efb Mon Sep 17 00:00:00 2001 From: Thomas White Date: Sun, 27 Jun 2010 17:31:52 +0200 Subject: indexamajig: Make SA correction optional (but on by default) --- src/indexamajig.c | 9 ++++++++- src/pattern_sim.c | 2 +- src/peaks.c | 6 +++--- src/peaks.h | 2 +- 4 files changed, 13 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/indexamajig.c b/src/indexamajig.c index 1e005ceb..f8398a2e 100644 --- a/src/indexamajig.c +++ b/src/indexamajig.c @@ -60,6 +60,7 @@ struct process_args int config_unpolar; int config_sanity; int config_satcorr; + int config_sa; struct detector *det; IndexingMethod indm; const double *intensities; @@ -129,6 +130,8 @@ static void show_help(const char *s) " with detected peaks.\n" " --sat-corr Correct values of saturated peaks using a table\n" " included in the HDF5 file.\n" +" --no-sa Don't correct for the differing solid angles of\n" +" the pixels.\n" "\n\nOptions for greater performance or verbosity:\n\n" " --verbose Be verbose about indexing.\n" " --gpu Use the GPU to speed up the simulation.\n" @@ -347,7 +350,8 @@ static void *process_image(void *pargsv) /* Measure intensities if requested */ if ( config_nearbragg ) { output_intensities(&image, image.indexed_cell, - pargs->output_mutex, config_unpolar); + pargs->output_mutex, config_unpolar, + pargs->config_sa); } simage = get_simage(&image, config_alternate); @@ -413,6 +417,7 @@ int main(int argc, char *argv[]) int config_unpolar = 0; int config_sanity = 0; int config_satcorr = 0; + int config_sa = 1; struct detector *det; char *geometry = NULL; IndexingMethod indm; @@ -454,6 +459,7 @@ int main(int argc, char *argv[]) {"unpolarized", 0, &config_unpolar, 1}, {"check-sanity", 0, &config_sanity, 1}, {"sat-corr", 0, &config_satcorr, 1}, + {"no-sa", 0, &config_sa, 0}, {0, 0, NULL, 0} }; @@ -615,6 +621,7 @@ int main(int argc, char *argv[]) pargs->config_unpolar = config_unpolar; pargs->config_sanity = config_sanity; pargs->config_satcorr = config_satcorr; + pargs->config_sa = config_sa; pargs->cell = cell; pargs->det = det; pargs->indm = indm; diff --git a/src/pattern_sim.c b/src/pattern_sim.c index 798e9c33..d6c6fc24 100644 --- a/src/pattern_sim.c +++ b/src/pattern_sim.c @@ -413,7 +413,7 @@ int main(int argc, char *argv[]) if ( config_nearbragg ) { find_projected_peaks(&image, cell); - output_intensities(&image, cell, NULL, 1); + output_intensities(&image, cell, NULL, 1, 1); } if ( powder_fn != NULL ) { diff --git a/src/peaks.c b/src/peaks.c index 161179df..a91fba99 100644 --- a/src/peaks.c +++ b/src/peaks.c @@ -565,7 +565,7 @@ int peak_sanity_check(struct image *image, UnitCell *cell) void output_intensities(struct image *image, UnitCell *cell, - pthread_mutex_t *mutex, int unpolar) + pthread_mutex_t *mutex, int unpolar, int sa) { int i; int n_found; @@ -635,7 +635,7 @@ void output_intensities(struct image *image, UnitCell *cell, * so instead re-integrate using old coordinates. * This will produce further revised coordinates. */ r = integrate_peak(image, f->x, f->y, &x, &y, - &intensity, !unpolar, 1); + &intensity, !unpolar, sa); if ( r ) { /* The original peak (which also went through * integrate_peak(), but with the mangled @@ -653,7 +653,7 @@ void output_intensities(struct image *image, UnitCell *cell, r = integrate_peak(image, image->hits[i].x,image->hits[i].y, - &x, &y, &intensity, !unpolar, 1); + &x, &y, &intensity, !unpolar, sa); if ( r ) { /* Plain old ordinary peak veto */ n_veto++; diff --git a/src/peaks.h b/src/peaks.h index 3335761c..b01120fb 100644 --- a/src/peaks.h +++ b/src/peaks.h @@ -22,7 +22,7 @@ extern void search_peaks(struct image *image); extern void dump_peaks(struct image *image, pthread_mutex_t *mutex); extern void output_intensities(struct image *image, UnitCell *cell, - pthread_mutex_t *mutex, int unpolar); + pthread_mutex_t *mutex, int unpolar, int sa); extern int peak_sanity_check(struct image *image, UnitCell *cell); extern int find_projected_peaks(struct image *image, UnitCell *cell); -- cgit v1.2.3