blob: c32fd07b9a4121af25a1e787065c64790a88f412 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
/*
* detector.h
*
* Detector properties
*
* (c) 2006-2010 Thomas White <taw@physics.org>
*
* Part of CrystFEL - crystallography with a FEL
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#ifndef DETECTOR_H
#define DETECTOR_H
struct image;
#include "image.h"
struct panel
{
int min_fs; /* Smallest FS value considered to be in the panel */
int max_fs; /* Largest FS value considered to be in this panel */
int min_ss; /* ... and so on */
int max_ss;
float cx; /* Location of corner (min_fs,min_ss) in pixels */
float cy;
float clen; /* Camera length in metres */
float res; /* Resolution in pixels per metre */
char badrow; /* 'x' or 'y' */
int no_index; /* Don't index peaks in this panel if non-zero */
float peak_sep; /* Characteristic peak separation */
signed int fsx;
signed int fsy;
signed int ssx;
signed int ssy;
};
struct detector
{
struct panel *panels;
int n_panels;
int max_fs;
int max_ss; /* Size of overall array needed, minus 1 */
};
extern struct rvec get_q(struct image *image, double xs, double ys,
unsigned int sampling, float *ttp, float k);
extern double get_tt(struct image *image, double xs, double ys);
extern void record_image(struct image *image, int do_poisson);
extern struct panel *find_panel(struct detector *det, int x, int y);
extern struct detector *get_detector_geometry(const char *filename);
extern void free_detector_geometry(struct detector *det);
#endif /* DETECTOR_H */
|