From 5bf72b123cb582f63652e32420d4fbe748cbb8d2 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Thu, 6 Jul 2017 17:06:52 +0200 Subject: indexamajig: Add TakeTwo-specific options --- libcrystfel/src/index.c | 9 +++++++-- libcrystfel/src/index.h | 5 ++++- libcrystfel/src/taketwo.c | 2 +- libcrystfel/src/taketwo.h | 22 ++++++++++++++++------ 4 files changed, 28 insertions(+), 10 deletions(-) (limited to 'libcrystfel') diff --git a/libcrystfel/src/index.c b/libcrystfel/src/index.c index bdabb062..b00f13aa 100644 --- a/libcrystfel/src/index.c +++ b/libcrystfel/src/index.c @@ -64,6 +64,8 @@ struct _indexingprivate UnitCell *target_cell; float tolerance[4]; + struct taketwo_options *ttopts; + int n_methods; IndexingMethod *methods; void **engine_private; @@ -157,7 +159,8 @@ static void *prepare_method(IndexingMethod *m, UnitCell *cell, IndexingPrivate *setup_indexing(const char *method_list, UnitCell *cell, struct detector *det, float *ltl, - int no_refine, const char *options) + int no_refine, const char *options, + struct taketwo_options *ttopts) { int i, n; char **method_strings; @@ -216,6 +219,8 @@ IndexingPrivate *setup_indexing(const char *method_list, UnitCell *cell, } for ( i=0; i<4; i++ ) ipriv->tolerance[i] = ltl[i]; + ipriv->ttopts = ttopts; + return ipriv; } @@ -339,7 +344,7 @@ static int try_indexer(struct image *image, IndexingMethod indm, break; case INDEXING_TAKETWO : - r = taketwo_index(image, mpriv); + r = taketwo_index(image, ipriv->ttopts, mpriv); break; default : diff --git a/libcrystfel/src/index.h b/libcrystfel/src/index.h index 2107ed80..8b3aadeb 100644 --- a/libcrystfel/src/index.h +++ b/libcrystfel/src/index.h @@ -157,10 +157,13 @@ extern IndexingMethod get_indm_from_string(const char *method); #include "detector.h" #include "cell.h" #include "image.h" +#include "taketwo.h" + extern IndexingPrivate *setup_indexing(const char *methods, UnitCell *cell, struct detector *det, float *ltl, - int no_refine, const char *options); + int no_refine, const char *options, + struct taketwo_options *ttopts); extern void index_pattern(struct image *image, IndexingPrivate *ipriv); diff --git a/libcrystfel/src/taketwo.c b/libcrystfel/src/taketwo.c index 7ae77f4a..307c6737 100644 --- a/libcrystfel/src/taketwo.c +++ b/libcrystfel/src/taketwo.c @@ -1511,7 +1511,7 @@ static UnitCell *run_taketwo(UnitCell *cell, struct rvec *rlps, int rlp_count) /* CrystFEL interface hooks */ -int taketwo_index(struct image *image, void *priv) +int taketwo_index(struct image *image, struct taketwo_options *opts, void *priv) { Crystal *cr; UnitCell *cell; diff --git a/libcrystfel/src/taketwo.h b/libcrystfel/src/taketwo.h index 4c06e334..a03292a8 100644 --- a/libcrystfel/src/taketwo.h +++ b/libcrystfel/src/taketwo.h @@ -3,13 +3,13 @@ * * Rewrite of TakeTwo algorithm (Acta D72 (8) 956-965) for CrystFEL * - * Copyright © 2016 Helen Ginn - * Copyright © 2016 Deutsches Elektronen-Synchrotron DESY, - * a research centre of the Helmholtz Association. + * Copyright © 2016-2017 Helen Ginn + * Copyright © 2016-2017 Deutsches Elektronen-Synchrotron DESY, + * a research centre of the Helmholtz Association. * * Authors: - * 2016 Helen Ginn - * 2016 Thomas White + * 2016 Helen Ginn + * 2016-2017 Thomas White * * This file is part of CrystFEL. * @@ -32,10 +32,20 @@ #define TAKETWO_H #include "cell.h" +#include "index.h" + +struct taketwo_options +{ + int member_thresh; + double len_tol; + double angle_tol; + double trace_tol; +}; + extern void *taketwo_prepare(IndexingMethod *indm, UnitCell *cell, struct detector *det, float *ltl); -extern int taketwo_index(struct image *image, void *priv); +extern int taketwo_index(struct image *image, struct taketwo_options *opts, void *priv); extern void taketwo_cleanup(IndexingPrivate *pp); #endif /* TAKETWO_H */ -- cgit v1.2.3