diff options
author | Thomas White <taw@physics.org> | 2022-10-05 15:57:11 +0200 |
---|---|---|
committer | Thomas White <taw@physics.org> | 2022-10-05 15:57:11 +0200 |
commit | bc70fa1a15da172172a97a097de9141b97e3a9e2 (patch) | |
tree | 15865b7de5ffe603ce58e32e236c1fe460027342 /src | |
parent | 862fa2485c77611532d21e18c92595b34f767ff7 (diff) | |
parent | 46d4aab96fd1703a0c4d7ea36b6c1cfd315857d9 (diff) |
Merge branch 'pf8_faster'
Diffstat (limited to 'src')
-rw-r--r-- | src/gui_peaksearch.c | 2 | ||||
-rw-r--r-- | src/indexamajig.c | 20 | ||||
-rw-r--r-- | src/process_image.c | 4 | ||||
-rw-r--r-- | src/process_image.h | 2 |
4 files changed, 26 insertions, 2 deletions
diff --git a/src/gui_peaksearch.c b/src/gui_peaksearch.c index 6af0b3a6..976e08ec 100644 --- a/src/gui_peaksearch.c +++ b/src/gui_peaksearch.c @@ -80,7 +80,7 @@ void update_peaks(struct crystfelproject *proj) proj->peak_search_params.local_bg_radius, proj->peak_search_params.min_res, proj->peak_search_params.max_res, - 1); + 1, 0, NULL); break; case PEAK_PEAKFINDER9: diff --git a/src/indexamajig.c b/src/indexamajig.c index 461b2216..ea66630b 100644 --- a/src/indexamajig.c +++ b/src/indexamajig.c @@ -61,6 +61,8 @@ #include <integration.h> #include <image.h> #include <datatemplate.h> +#include <detgeom.h> +#include <peakfinder8.h> #include "im-sandbox.h" #include "im-zmq.h" @@ -211,6 +213,7 @@ static void write_harvest_file(struct index_args *args, write_float(fh, 1, "min_squared_gradient_adu2", args->min_sq_gradient); write_float(fh, 1, "min_snr", args->min_snr); write_bool(fh, 1, "check_hdf5_snr", args->check_hdf5_snr); + write_bool(fh, 1, "peakfinder8_fast", args->peakfinder8_fast); write_bool(fh, 1, "half_pixel_shift", args->half_pixel_shift); write_int(fh, 1, "min_res_px", args->min_res); write_int(fh, 1, "max_res_px", args->max_res); @@ -593,6 +596,10 @@ static error_t parse_arg(int key, char *arg, struct argp_state *state) args->iargs.check_hdf5_snr = 1; break; + case 322: + args->iargs.peakfinder8_fast = 1; + break; + /* ---------- Indexing ---------- */ case 400 : @@ -906,6 +913,8 @@ int main(int argc, char *argv[]) args.iargs.min_sig = 11.0; args.iargs.min_peak_over_neighbour = -INFINITY; args.iargs.check_hdf5_snr = 0; + args.iargs.peakfinder8_fast = 0; + args.iargs.pf_private = NULL; args.iargs.dtempl = NULL; args.iargs.peaks = PEAK_ZAEF; args.iargs.half_pixel_shift = 1; @@ -1024,6 +1033,7 @@ int main(int argc, char *argv[]) "locations by 0.5 pixels"}, {"check-hdf5-snr", 321, NULL, OPTION_NO_USAGE, "Check SNR for peaks from HDF5, " "CXI or MsgPack (see --min-snr)"}, + {"peakfinder8-fast", 322, NULL, OPTION_NO_USAGE, "peakfinder8 fast execution"}, {NULL, 0, 0, OPTION_DOC, "Indexing options:", 4}, {"indexing", 400, "method", 0, "List of indexing methods"}, @@ -1355,11 +1365,21 @@ int main(int argc, char *argv[]) gsl_set_error_handler_off(); + struct pf8_private_data *pf8_data = NULL; + struct detgeom *detgeom = NULL; + if ( args.iargs.peaks == PEAK_PEAKFINDER8 ) { + detgeom = data_template_get_2d_detgeom_if_possible(args.iargs.dtempl); + pf8_data = prepare_peakfinder8(detgeom, args.iargs.peakfinder8_fast); + args.iargs.pf_private = pf8_data; + } + r = create_sandbox(&args.iargs, args.n_proc, args.prefix, args.basename, fh, st, tmpdir, args.serial_start, &args.zmq_params, &args.asapo_params, timeout, args.profile); + if ( pf8_data != NULL ) free_pf8_private_data(pf8_data); + if ( detgeom != NULL) detgeom_free(detgeom); cell_free(args.iargs.cell); free(args.prefix); free(args.temp_location); diff --git a/src/process_image.c b/src/process_image.c index de2d8792..f1ddb7f0 100644 --- a/src/process_image.c +++ b/src/process_image.c @@ -322,7 +322,9 @@ void process_image(const struct index_args *iargs, struct pattern_args *pargs, iargs->local_bg_radius, iargs->min_res, iargs->max_res, - iargs->use_saturated) ) { + iargs->use_saturated, + iargs->peakfinder8_fast, + iargs->pf_private) ) { ERROR("Failed to find peaks in image %s" "(event %s).\n", image->filename, image->ev); diff --git a/src/process_image.h b/src/process_image.h index e2f792a5..166f6cd5 100644 --- a/src/process_image.h +++ b/src/process_image.h @@ -81,6 +81,8 @@ struct index_args float min_snr_peak_pix; float min_sig; float min_peak_over_neighbour; + int peakfinder8_fast; + void *pf_private; /* Hit finding */ int min_peaks; |