aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas White <taw@bitwiz.org.uk>2010-06-27 17:31:52 +0200
committerThomas White <taw@physics.org>2012-02-22 15:26:51 +0100
commitc4f950362d6f1d5a14f0897c15148021e6854efb (patch)
tree75b40d00554606c721d6a46c127039c05824ce95
parentd9dd0cefca108ec5dc7f08aad4be9b5c2ded4389 (diff)
indexamajig: Make SA correction optional (but on by default)
-rw-r--r--src/indexamajig.c9
-rw-r--r--src/pattern_sim.c2
-rw-r--r--src/peaks.c6
-rw-r--r--src/peaks.h2
4 files changed, 13 insertions, 6 deletions
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);