From dcd0a59fe7d3a1a2ae509ac19b35134afb3c3526 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Tue, 6 Sep 2011 12:00:40 +0200 Subject: Add --hdf5-peaks parameter to indexamajig and assemble_detector Conflicts: contrib/assemble_detector.c --- src/indexamajig.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'src/indexamajig.c') diff --git a/src/indexamajig.c b/src/indexamajig.c index e69025e0..c94ad959 100644 --- a/src/indexamajig.c +++ b/src/indexamajig.c @@ -75,6 +75,7 @@ struct static_index_args int cellr; struct beam_params *beam; const char *element; + const char *hdf5_peak_path; /* Output stream */ pthread_mutex_t *output_mutex; /* Protects the output stream */ @@ -142,8 +143,9 @@ static void show_help(const char *s) " --peaks= Use 'method' for finding peaks. Choose from:\n" " zaef : Use Zaefferer (2000) gradient detection.\n" " This is the default method.\n" -" hdf5 : Get from /processing/hitfinder/peakinfo\n" -" in the HDF5 file.\n" +" hdf5 : Get from a table in HDF5 file.\n" +" --hdf5-peaks=

Find peaks table in HDF5 file here.\n" +" Default: /processing/hitfinder/peakinfo\n" "\n\n" "You can control what information is included in the output stream using\n" "' --record=,,' and so on. Possible flags are:\n\n" @@ -294,7 +296,9 @@ static void process_image(void *pp, int cookie) { case PEAK_HDF5 : /* Get peaks from HDF5 */ - if ( get_peaks(&image, hdfile) ) { + if ( get_peaks(&image, hdfile, + pargs->static_args.hdf5_peak_path) ) + { ERROR("Failed to get peaks from HDF5 file.\n"); } break; @@ -527,6 +531,7 @@ int main(int argc, char *argv[]) int cpu_groupsize = 1; int cpu_offset = 0; char *endptr; + char *hdf5_peak_path = NULL; /* Long options */ const struct option longopts[] = { @@ -560,6 +565,7 @@ int main(int argc, char *argv[]) {"cpuoffset", 1, NULL, 8}, {"bg-sub", 0, &config_bgsub, 1}, /* Compat */ {"no-bg-sub", 0, &config_bgsub, 0}, + {"hdf5-peaks", 1, NULL, 9}, {0, 0, NULL, 0} }; @@ -670,6 +676,10 @@ int main(int argc, char *argv[]) } break; + case 9 : + hdf5_peak_path = strdup(optarg); + break; + case 0 : break; @@ -714,6 +724,10 @@ int main(int argc, char *argv[]) } free(outfile); + if ( hdf5_peak_path == NULL ) { + hdf5_peak_path = strdup("/processing/hitfinder/peakinfo"); + } + if ( speaks == NULL ) { speaks = strdup("zaef"); STATUS("You didn't specify a peak detection method.\n"); @@ -879,6 +893,7 @@ int main(int argc, char *argv[]) qargs.static_args.beam = beam; qargs.static_args.element = element; qargs.static_args.stream_flags = stream_flags; + qargs.static_args.hdf5_peak_path = hdf5_peak_path; qargs.fh = fh; qargs.prefix = prefix; @@ -901,6 +916,7 @@ int main(int argc, char *argv[]) free_detector_geometry(det); free(beam); free(element); + free(hdf5_peak_path); cell_free(cell); if ( fh != stdin ) fclose(fh); if ( ofh != stdout ) fclose(ofh); -- cgit v1.2.3