aboutsummaryrefslogtreecommitdiff
path: root/libcrystfel
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2017-07-06 17:06:52 +0200
committerThomas White <taw@physics.org>2017-07-06 17:25:40 +0200
commit5bf72b123cb582f63652e32420d4fbe748cbb8d2 (patch)
treee70678eb192cf6169757d7a80235fb429d92303a /libcrystfel
parent92d00d19d5b4a6b72a35183bea6a83a4062e5eca (diff)
indexamajig: Add TakeTwo-specific options
Diffstat (limited to 'libcrystfel')
-rw-r--r--libcrystfel/src/index.c9
-rw-r--r--libcrystfel/src/index.h5
-rw-r--r--libcrystfel/src/taketwo.c2
-rw-r--r--libcrystfel/src/taketwo.h22
4 files changed, 28 insertions, 10 deletions
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 <helen@strubi.ox.ac.uk>
- * 2016 Thomas White <taw@physics.org>
+ * 2016 Helen Ginn <helen@strubi.ox.ac.uk>
+ * 2016-2017 Thomas White <taw@physics.org>
*
* 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 */