aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2013-02-05 18:05:30 +0100
committerThomas White <taw@physics.org>2013-02-05 18:05:30 +0100
commit2f06e6a1abf28a22cf78a6c3d89596bec2a6a8c5 (patch)
treec7c8beda3593ae1dfe31a646f51787c992f59eef /src
parent2ce85a95d86e350b785d206405e97d7317672188 (diff)
Fixes for indexing pipeline
Diffstat (limited to 'src')
-rw-r--r--src/im-sandbox.c50
-rw-r--r--src/im-sandbox.h2
-rw-r--r--src/indexamajig.c10
3 files changed, 32 insertions, 30 deletions
diff --git a/src/im-sandbox.c b/src/im-sandbox.c
index 825f2d6a..d476c72d 100644
--- a/src/im-sandbox.c
+++ b/src/im-sandbox.c
@@ -305,6 +305,8 @@ static void process_image(const struct index_args *iargs,
/* Index the pattern */
index_pattern(&image, indm, iargs->ipriv);
+ pargs->n_crystals = image.n_crystals;
+
/* Default beam parameters */
image.div = image.beam->divergence;
image.bw = image.beam->bandwidth;
@@ -328,22 +330,20 @@ static void process_image(const struct index_args *iargs,
crystal_set_reflections(image.crystals[i], reflections);
- if ( reflections != NULL ) {
-
- integrate_reflections(&image,
- iargs->config_closer,
- iargs->config_bgsub,
- iargs->min_int_snr,
- iargs->ir_inn,
- iargs->ir_mid,
- iargs->ir_out,
- iargs->integrate_saturated);
- }
-
}
- write_chunk(st, &image, hdfile, iargs->include_peaks,
- iargs->include_reflections);
+ /* Integrate all the crystals at once - need all the crystals so that
+ * overlaps can be detected. */
+ integrate_reflections(&image, iargs->config_closer,
+ iargs->config_bgsub,
+ iargs->min_int_snr,
+ iargs->ir_inn,
+ iargs->ir_mid,
+ iargs->ir_out,
+ iargs->integrate_saturated);
+
+ write_chunk(st, &image, hdfile,
+ iargs->include_peaks, iargs->include_reflections);
for ( i=0; i<image.n_crystals; i++ ) {
crystal_free(image.crystals[i]);
@@ -485,15 +485,17 @@ static int pump_chunk(FILE *fh, FILE *ofh)
}
- if ( strcmp(line, "END\n") == 0 ) {
+ fprintf(ofh, "%s", line);
+
+ if ( strcmp(line, CHUNK_END_MARKER"\n") == 0 ) {
chunk_finished = 1;
- } else {
+ }
+ if ( strcmp(line, CHUNK_START_MARKER"\n") == 0 ) {
chunk_started = 1;
- fprintf(ofh, "%s", line);
}
- } while ( !chunk_finished );
+ } while ( !chunk_finished );
return 0;
}
@@ -711,7 +713,7 @@ static void handle_zombie(struct sandbox *sb)
void create_sandbox(struct index_args *iargs, int n_proc, char *prefix,
int config_basename, FILE *fh, char *use_this_one_instead,
- Stream *st)
+ FILE *ofh)
{
int i;
int allDone;
@@ -738,6 +740,7 @@ void create_sandbox(struct index_args *iargs, int n_proc, char *prefix,
pthread_mutex_init(&sb->lock, NULL);
+ sb->ofh = ofh;
sb->stream_pipe_read = calloc(n_proc, sizeof(int));
sb->stream_pipe_write = calloc(n_proc, sizeof(int));
if ( sb->stream_pipe_read == NULL ) {
@@ -950,15 +953,12 @@ void create_sandbox(struct index_args *iargs, int n_proc, char *prefix,
tNow = get_monotonic_seconds();
if ( tNow >= sb->t_last_stats+STATS_EVERY_N_SECONDS ) {
- STATUS("Total so far: %i images processed, "
+ STATUS("%i images processed so far, "
"%i had crystals, %i crystals overall. "
- "Since the last message: %i images processed,"
- "%i had crystals, %i crystals overall.\n",
+ "%i images processed since the last message\n",
sb->n_processed, sb->n_hadcrystals,
sb->n_crystals,
- sb->n_processed - sb->n_processed_last_stats,
- sb->n_hadcrystals - sb->n_hadcrystals_last_stats,
- sb->n_crystals - sb->n_crystals_last_stats);
+ sb->n_processed - sb->n_processed_last_stats);
sb->n_processed_last_stats = sb->n_processed;
sb->n_hadcrystals_last_stats = sb->n_hadcrystals;
diff --git a/src/im-sandbox.h b/src/im-sandbox.h
index 176bfde0..96311056 100644
--- a/src/im-sandbox.h
+++ b/src/im-sandbox.h
@@ -76,4 +76,4 @@ struct index_args
extern void create_sandbox(struct index_args *iargs, int n_proc, char *prefix,
int config_basename, FILE *fh,
- char *use_this_one_instead, Stream *st);
+ char *use_this_one_instead, FILE *stream);
diff --git a/src/indexamajig.c b/src/indexamajig.c
index 3076ea86..5d57d336 100644
--- a/src/indexamajig.c
+++ b/src/indexamajig.c
@@ -180,7 +180,7 @@ int main(int argc, char *argv[])
char *filename = NULL;
char *outfile = NULL;
FILE *fh;
- Stream *st;
+ FILE *ofh;
char *rval = NULL;
int config_noindex = 0;
int config_cmfilter = 0;
@@ -264,6 +264,7 @@ int main(int argc, char *argv[])
{"peaks", 1, NULL, 2},
{"cell-reduction", 1, NULL, 3},
{"min-gradient", 1, NULL, 4},
+ {"record", 1, NULL, 5},
{"cpus", 1, NULL, 6},
{"cpugroup", 1, NULL, 7},
{"cpuoffset", 1, NULL, 8},
@@ -352,6 +353,7 @@ int main(int argc, char *argv[])
case 5 :
ERROR("The option '--record' is no longer used.\n");
+ /* FIXME: Translate to new style */
break;
case 6 :
@@ -526,8 +528,8 @@ int main(int argc, char *argv[])
cell = NULL;
}
- st = open_stream_for_write(outfile);
- if ( st == NULL ) {
+ ofh = fopen(outfile, "w");
+ if ( ofh == NULL ) {
ERROR("Failed to open stream '%s'\n", outfile);
return 1;
}
@@ -600,7 +602,7 @@ int main(int argc, char *argv[])
iargs.include_reflections = 1; /* FIXME! */
create_sandbox(&iargs, n_proc, prefix, config_basename, fh,
- use_this_one_instead, st);
+ use_this_one_instead, ofh);
free(prefix);