From e6401573d89496fd2bc923175e2aa0ee11704533 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Wed, 14 Jul 2021 16:14:57 +0200 Subject: GUI: Add PinkIndexer options to 'struct index_params' --- src/gui_project.c | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/gui_project.h | 11 +++++++++ 2 files changed, 78 insertions(+) (limited to 'src') diff --git a/src/gui_project.c b/src/gui_project.c index c3e40297..315a929d 100644 --- a/src/gui_project.c +++ b/src/gui_project.c @@ -266,6 +266,42 @@ static void parse_indexing_opt(const char *key, const char *val, if ( strcmp(key, "indexing.min_peaks") == 0 ) { proj->indexing_params.min_peaks = parse_int(val); } + + if ( strcmp(key, "indexing.pinkindexer.cpeaks") == 0 ) { + proj->indexing_params.pinkindexer_cpeaks = parse_int(val); + } + + if ( strcmp(key, "indexing.pinkindexer.use_max_res") == 0 ) { + proj->indexing_params.pinkindexer_use_max_res = parse_int(val); + } + + if ( strcmp(key, "indexing.pinkindexer.max_res") == 0 ) { + proj->indexing_params.pinkindexer_max_res = parse_float(val); + } + + if ( strcmp(key, "indexing.pinkindexer.angle_density") == 0 ) { + proj->indexing_params.pinkindexer_angle_density = parse_int(val); + } + + if ( strcmp(key, "indexing.pinkindexer.refinement_type") == 0 ) { + proj->indexing_params.pinkindexer_refinement_type = parse_int(val); + } + + if ( strcmp(key, "indexing.pinkindexer.tolerance") == 0 ) { + proj->indexing_params.pinkindexer_tolerance = parse_float(val); + } + + if ( strcmp(key, "indexing.pinkindexer.use_refl_radius") == 0 ) { + proj->indexing_params.pinkindexer_use_refl_radius = parse_int(val); + } + + if ( strcmp(key, "indexing.pinkindexer.refl_radius") == 0 ) { + proj->indexing_params.pinkindexer_refl_radius = parse_float(val); + } + + if ( strcmp(key, "indexing.pinkindexer.max_imbalance") == 0 ) { + proj->indexing_params.pinkindexer_max_imbalance = parse_float(val); + } } @@ -956,6 +992,27 @@ int save_project(struct crystfelproject *proj) be->write_indexing_opts(be->indexing_opts_priv, fh); } + /* PinkIndexer-specific */ + fprintf(fh, "indexing.pinkindexer.cpeaks %i\n", + proj->indexing_params.pinkindexer_cpeaks); + fprintf(fh, "indexing.pinkindexer.use_max_res %i\n", + proj->indexing_params.pinkindexer_use_max_res); + fprintf(fh, "indexing.pinkindexer.max_res %f\n", + proj->indexing_params.pinkindexer_max_res); + fprintf(fh, "indexing.pinkindexer.angle_density %i\n", + proj->indexing_params.pinkindexer_angle_density); + fprintf(fh, "indexing.pinkindexer.refinement_type %i\n", + proj->indexing_params.pinkindexer_refinement_type); + fprintf(fh, "indexing.pinkindexer.tolerance %f\n", + proj->indexing_params.pinkindexer_tolerance); + fprintf(fh, "indexing.pinkindexer.use_refl_radius %i\n", + proj->indexing_params.pinkindexer_use_refl_radius); + fprintf(fh, "indexing.pinkindexer.refl_radius %f\n", + proj->indexing_params.pinkindexer_refl_radius); + fprintf(fh, "indexing.pinkindexer.max_imbalance %f\n", + proj->indexing_params.pinkindexer_max_imbalance); + + /* Integration */ fprintf(fh, "integration.method %s\n", proj->indexing_params.integration_method); fprintf(fh, "integration.overpredict %i\n", @@ -1215,6 +1272,16 @@ int default_project(struct crystfelproject *proj) proj->indexing_params.use_fix_profile_radius = 0; proj->indexing_params.fix_divergence = 0.0; + proj->indexing_params.pinkindexer_cpeaks = 4; + proj->indexing_params.pinkindexer_use_max_res = 0; + proj->indexing_params.pinkindexer_max_res = 2.5; /* Angstroms */ + proj->indexing_params.pinkindexer_angle_density = 2; + proj->indexing_params.pinkindexer_refinement_type = 1; + proj->indexing_params.pinkindexer_tolerance = 0.06; + proj->indexing_params.pinkindexer_use_refl_radius = 0; + proj->indexing_params.pinkindexer_refl_radius = 0.003; + proj->indexing_params.pinkindexer_max_imbalance = 0.4; + proj->ambi_params.use_res = 1; proj->ambi_params.res_min = 20; /* Angstroms */ proj->ambi_params.res_max = 4; /* Angstroms */ diff --git a/src/gui_project.h b/src/gui_project.h index 556bc0f2..45ced0c9 100644 --- a/src/gui_project.h +++ b/src/gui_project.h @@ -80,6 +80,17 @@ struct index_params { float tols[6]; int min_peaks; + /* PinkIndexer-specific */ + int pinkindexer_cpeaks; + int pinkindexer_use_max_res; + double pinkindexer_max_res; + int pinkindexer_angle_density; + int pinkindexer_refinement_type; + double pinkindexer_tolerance; + int pinkindexer_use_refl_radius; + double pinkindexer_refl_radius; + double pinkindexer_max_imbalance; + /* Integration */ char *integration_method; int overpredict; -- cgit v1.2.3