diff options
author | Thomas White <taw@physics.org> | 2015-10-05 13:13:39 +0200 |
---|---|---|
committer | Thomas White <taw@physics.org> | 2015-10-05 18:03:18 +0200 |
commit | 48145b59b3a0f160a9f4b24df958f6ac8bc1fc86 (patch) | |
tree | bf1af36e4f7b52c23bc9e428638a7765ff95d28e | |
parent | 001e13fa14b7c68319ef8a40569380c90c117d3e (diff) |
Add find_orig_panel_number()
-rw-r--r-- | libcrystfel/src/detector.c | 21 | ||||
-rw-r--r-- | libcrystfel/src/detector.h | 2 |
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); |