aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2019-09-23 15:26:43 +0200
committerThomas White <taw@physics.org>2019-09-23 15:26:43 +0200
commitf300428f9c04ea306eecd9093b2c2e85b5b37b3a (patch)
tree3dbd53fec18b6916c9b076383c40703355602e27
parent9530a39509e7ff61ba091766978b0e201f88c993 (diff)
Get rid of "rescut" integration flag
Its behaviour is 100% covered by the push-res parameter, which can be set to infinity for no cutoff.
-rw-r--r--doc/man/indexamajig.16
-rw-r--r--libcrystfel/src/integration.c12
-rw-r--r--libcrystfel/src/integration.h3
-rw-r--r--src/indexamajig.c15
4 files changed, 11 insertions, 25 deletions
diff --git a/doc/man/indexamajig.1 b/doc/man/indexamajig.1
index 9dfdd70d..2e9e4e76 100644
--- a/doc/man/indexamajig.1
+++ b/doc/man/indexamajig.1
@@ -149,10 +149,6 @@ Center the peak boxes iteratively on the actual peak locations. The opposite is
.PD
Normally, reflections which contain one or more pixels above max_adu (defined in the detector geometry file) will not be integrated and written to the stream. Using this option skips this check, and allows saturated reflections to be passed to the later merging stages. This is not usually a good idea, but might be your only choice if there are many saturated reflections. The opposite is \fB-nosat\fR, which is the default for all integration methods.
-.IP \fB-rescut\fR
-.PD
-Normally, reflections are integrated all the way to the edge of the detector, even if the crystal diffracts to a lower resolution. With this option, integration will be performed up to the apparent diffraction limit of the crystal. You can use \fB--push-res\fR (see below) to integrate to a slightly higher or lower resolution. The resolution limit is determined by comparing the peaks found by the peak search to the indexing results, so good peak detection is essential when using this option (as it is always). The opposite is \fB-norescut\fR, which is the default.
-
.IP \fB-grad\fR
.PD
Fit the background around the reflection using gradients in two dimensions. This was the default until version 0.6.1. Without the option (or with its opposite, \fB-nograd\fR, which is the default), the background will be considered to have the same value across the entire integration box.
@@ -505,7 +501,7 @@ Show detailed information about reflection integration when \fIcondition\fR is m
.PD 0
.IP \fB--push-res=\fIn\fR
.PD
-When \fBrescut\fR is in the integration method, integrate \fIn\fR nm^-1 higher than the apparent resolution limit of each individual crystal. If \fBrescut\fR is not used, this option has no effect. \fIn\fR can be negative to integrate \fIlower\fR than the apparent resolution limit. The default is \fB--push-res=0\fR, but note that the default integration method does \fInot\fR include \fBrescut\fR, so no per-pattern resolution cutoff is used. Note that you can also apply this cutoff at the merging stage using \fBprocess_hkl --push-res\fR.
+Integrate \fIn\fR nm^-1 higher than the apparent resolution limit of each individual crystal. \fIn\fR can be negative to integrate \fIlower\fR than the apparent resolution limit. The default is \fB--push-res=infinity\fR, which means that no cutoff is applied. Note that you can also apply this cutoff at the merging stage using \fBprocess_hkl/partialator --push-res\fR, which is usually better: reflections which are thrown away at the integration stage cannot be brought back later. However, applying a resolution cutoff during integration will make the stream file significantly smaller and faster to merge.
.PD 0
.IP \fB--overpredict\fR
diff --git a/libcrystfel/src/integration.c b/libcrystfel/src/integration.c
index a1655aab..1384c20b 100644
--- a/libcrystfel/src/integration.c
+++ b/libcrystfel/src/integration.c
@@ -1670,8 +1670,6 @@ void integrate_all_5(struct image *image, IntegrationMethod meth,
int i;
int *masks[image->det->n_panels];
- if ( !(meth & INTEGRATION_RESCUT) ) push_res = +INFINITY;
-
/* Predict all reflections */
for ( i=0; i<image->n_crystals; i++ ) {
@@ -1818,10 +1816,16 @@ IntegrationMethod integration_method(const char *str, int *err)
meth &= ~INTEGRATION_CENTER;
} else if ( strcmp(methods[i], "rescut") == 0 ) {
- meth |= INTEGRATION_RESCUT;
+ ERROR("'rescut'/'norescut' in integration method is no "
+ "longer used. Set --push-res instead.\n");
+ if ( err != NULL ) *err = 1;
+ return INTEGRATION_NONE;
} else if ( strcmp(methods[i], "norescut") == 0 ) {
- meth &= ~INTEGRATION_RESCUT;
+ ERROR("'rescut'/'norescut' in integration method is no "
+ "longer used. Set --push-res instead.\n");
+ if ( err != NULL ) *err = 1;
+ return INTEGRATION_NONE;
} else if ( strcmp(methods[i], "grad") == 0 ) {
meth |= INTEGRATION_GRADIENTBG;
diff --git a/libcrystfel/src/integration.h b/libcrystfel/src/integration.h
index 7a230daf..99945198 100644
--- a/libcrystfel/src/integration.h
+++ b/libcrystfel/src/integration.h
@@ -98,8 +98,7 @@ typedef enum {
/** Center the peak in the box prior to integration */
INTEGRATION_CENTER = 512,
- /** Stop integrating at the diffraction limit of the crystal */
- INTEGRATION_RESCUT = 1024,
+ /* 1024 was INTEGRATION_RESCUT, which is no longer used */
/** Fit a gradient to the background */
INTEGRATION_GRADIENTBG = 2048,
diff --git a/src/indexamajig.c b/src/indexamajig.c
index e607ec29..9a1e6e81 100644
--- a/src/indexamajig.c
+++ b/src/indexamajig.c
@@ -676,7 +676,7 @@ int main(int argc, char *argv[])
}
args.iargs.ipriv = NULL; /* No default */
args.iargs.int_meth = integration_method("rings-nocen-nosat-nograd", NULL);
- args.iargs.push_res = -1.0;
+ args.iargs.push_res = +INFINITY;
args.iargs.highres = +INFINITY;
args.iargs.fix_profile_r = -1.0;
args.iargs.fix_divergence = -1.0;
@@ -884,19 +884,6 @@ int main(int argc, char *argv[])
args.iargs.hdf5_peak_path = args.command_line_peak_path;
}
- /* Check for push-res without rescut */
- if ( args.iargs.push_res > 0.0 ) {
- if ( !(args.iargs.int_meth & INTEGRATION_RESCUT) ) {
- ERROR("WARNING: You used --push-res, but not -rescut, "
- "therefore --push-res will have no effect.\n");
- ERROR("WARNING: Add --integration=rings-rescut or "
- "--integration=prof2d-rescut.\n");
- }
- } else {
- /* Set default value */
- args.iargs.push_res = 0.0;
- }
-
/* If no integration radii were given, apply the defaults */
if ( args.iargs.ir_inn < 0 ) {
STATUS("WARNING: You did not specify --int-radius.\n");