aboutsummaryrefslogtreecommitdiff
path: root/libcrystfel
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2015-10-05 13:13:39 +0200
committerThomas White <taw@physics.org>2015-10-05 18:03:18 +0200
commit48145b59b3a0f160a9f4b24df958f6ac8bc1fc86 (patch)
treebf1af36e4f7b52c23bc9e428638a7765ff95d28e /libcrystfel
parent001e13fa14b7c68319ef8a40569380c90c117d3e (diff)
Add find_orig_panel_number()
Diffstat (limited to 'libcrystfel')
-rw-r--r--libcrystfel/src/detector.c21
-rw-r--r--libcrystfel/src/detector.h2
2 files changed, 15 insertions, 8 deletions
diff --git a/libcrystfel/src/detector.c b/libcrystfel/src/detector.c
index ddb05f3a..505e2d48 100644
--- a/libcrystfel/src/detector.c
+++ b/libcrystfel/src/detector.c
@@ -561,9 +561,7 @@ struct panel *find_panel(struct detector *det, double fs, double ss)
}
-/* Like find_panel(), but uses the original panel bounds, i.e. referring to
- * what's in the HDF5 file */
-struct panel *find_orig_panel(struct detector *det, double fs, double ss)
+signed int find_orig_panel_number(struct detector *det, double fs, double ss)
{
int p;
@@ -571,13 +569,20 @@ struct panel *find_orig_panel(struct detector *det, double fs, double ss)
if ( (fs >= det->panels[p].orig_min_fs)
&& (fs < det->panels[p].orig_max_fs+1)
&& (ss >= det->panels[p].orig_min_ss)
- && (ss < det->panels[p].orig_max_ss+1) )
- {
- return &det->panels[p];
- }
+ && (ss < det->panels[p].orig_max_ss+1) ) return p;
}
- return NULL;
+ return -1;
+}
+
+
+/* Like find_panel(), but uses the original panel bounds, i.e. referring to
+ * what's in the HDF5 file */
+struct panel *find_orig_panel(struct detector *det, double fs, double ss)
+{
+ signed int pn = find_orig_panel_number(det, fs, ss);
+ if ( pn == -1 ) return NULL;
+ return &det->panels[pn];
}
diff --git a/libcrystfel/src/detector.h b/libcrystfel/src/detector.h
index 582f82b8..b184e1ae 100644
--- a/libcrystfel/src/detector.h
+++ b/libcrystfel/src/detector.h
@@ -205,6 +205,8 @@ extern struct panel *find_panel(struct detector *det, double fs, double ss);
extern signed int find_panel_number(struct detector *det, double fs, double ss);
extern struct panel *find_orig_panel(struct detector *det,
double fs, double ss);
+extern signed int find_orig_panel_number(struct detector *det,
+ double fs, double ss);
extern struct detector *get_detector_geometry(const char *filename,
struct beam_params *beam);