Top | ![]() |
![]() |
![]() |
![]() |
struct detector * | copy_geom () |
void | fill_in_adu () |
void | free_detector_geometry () |
struct detector * | get_detector_geometry () |
struct detector * | get_detector_geometry_2 () |
int | write_detector_geometry () |
int | write_detector_geometry_2 () |
int | panel_number () |
struct panel * | find_panel_by_name () |
struct detector * | simple_geometry () |
void | record_image () |
void | get_pixel_extents () |
struct rvec | get_q_for_panel () |
double | get_tt () |
double | smallest_q () |
int | reverse_2d_mapping () |
double | largest_q () |
int | in_bad_region () |
void | mark_resolution_range_as_bad () |
struct panel * | find_orig_panel () |
signed int | find_orig_panel_number () |
int | panel_is_in_rigid_group () |
int | rigid_group_is_in_collection () |
int | single_panel_data_source () |
struct rg_collection * | find_rigid_group_collection_by_name () |
int | detector_has_clen_references () |
void | adjust_centering_for_rail () |
struct | detector |
struct | panel |
struct | badregion |
struct | rigid_group |
struct | rg_collection |
struct detector * get_detector_geometry (const char *filename
,struct beam_params *beam
);
struct detector * get_detector_geometry_2 (const char *filename
,struct beam_params *beam
,char **hdf5_peak_path
);
int write_detector_geometry (const char *geometry_filename
,const char *output_filename
,struct detector *det
);
int write_detector_geometry_2 (const char *geometry_filename
,const char *output_filename
,struct detector *det
,const char *additional_comment
,int write_panel_coffset
);
void record_image (struct image *image
,int do_poisson
,double background
,gsl_rng *rng
,double beam_radius
,double nphotons
);
void get_pixel_extents (struct detector *det
,double *min_x
,double *min_y
,double *max_x
,double *max_y
);
struct rvec get_q_for_panel (struct panel *p
,double fs
,double ss
,double *ttp
,double k
);
int reverse_2d_mapping (double x
,double y
,struct detector *det
,struct panel **pp
,double *pfs
,double *pss
);
void mark_resolution_range_as_bad (struct image *image
,double min
,double max
);
Flags, in the bad pixel mask for image
, every pixel whose resolution is
between min
and max
.
signed int find_orig_panel_number (struct detector *det
,double fs
,double ss
);
int panel_is_in_rigid_group (const struct rigid_group *rg
,struct panel *p
);
int rigid_group_is_in_collection (struct rg_collection *c
,struct rigid_group *rg
);
int single_panel_data_source (struct detector *det
,const char *element
);
struct rg_collection * find_rigid_group_collection_by_name (struct detector *det
,const char *name
);
struct detector { struct panel *panels; int n_panels; struct badregion *bad; int n_bad; unsigned int mask_bad; unsigned int mask_good; struct rigid_group **rigid_groups; int n_rigid_groups; struct rg_collection **rigid_group_collections; int n_rg_collections; /* Location of the pixel furthest away from the beam position, which * will have the largest value of 2theta regardless of camera length * and wavelength */ struct panel *furthest_out_panel; double furthest_out_fs; double furthest_out_ss; /* As above, but for the smallest 2theta */ struct panel *furthest_in_panel; double furthest_in_fs; double furthest_in_ss; int path_dim; int dim_dim; struct panel defaults; };
struct panel { char name[1024]; /* Name for this panel */ double cnx; /* Location of corner (min_fs,min_ss) in pixels */ double cny; double coffset; double clen; /* Camera length in metres */ char *clen_from; char *mask; char *mask_file; char *satmap; char *satmap_file; double res; /* Resolution in pixels per metre */ char badrow; /* 'x' or 'y' */ int no_index; /* Don't index peaks in this panel if non-zero */ double adu_per_photon; /* Number of ADU per photon */ double max_adu; /* Treat pixel as unreliable if higher than this */ char *data; double adu_per_eV; /* Number of ADU per eV */ struct dim_structure *dim_structure; double fsx; double fsy; double fsz; double ssx; double ssy; double ssz; double rail_x; double rail_y; double rail_z; double clen_for_centering; double xfs; double yfs; double xss; double yss; /* Position of the panel in the data block in the file. The panels may * get moved around when the file is loaded (see hdf5_read2()), * especially if the panels come from different HDF5 elements. */ int orig_min_fs; int orig_max_fs; int orig_min_ss; int orig_max_ss; int w; /* Width, calculated as max_fs-min_fs+1 */ int h; /* Height, calculated as max_ss-min_ss+1 */ };
Text name for the panel (fixed length array) |
||
Location of corner, in pixels, x coordinate |
||
Location of corner, in pixels, y coordinate |
||
The offset to be applied from |
||
The distance from the interaction point to the corner of the first pixel |
||
Location to get |
||
Location of mask data |
||
Filename for mask data |
||
Location of per-pixel saturation map |
||
Filename for saturation map |
||
Resolution of panel in pixels per metre |
||
Readout direction (for filtering out clusters of peaks) |
||
Non-zero if panel is entirely "bad" |
||
Number of detector intensity units per photon |
||
Saturation value |
||
Location of data in file |
||
Number of detector intensity units per eV of photon energy |
||
struct dim_structure * |
Dimension structure |
|
Real-space x-direction of data fast-scan direction |
||
Real-space y-direction of data fast-scan direction |
||
Real-space z-direction of data fast-scan direction |
||
Real-space x-direction of data slow-scan direction |
||
Real-space y-direction of data slow-scan direction |
||
Real-space z-direction of data slow-scan direction |
||
x direction of camera length "rail" |
||
y direction of camera length "rail" |
||
z direction of camera length "rail" |
||
Value of clen (without coffset) at which beam is centered |
||
Data fast-scan direction of real-space x-direction |
||
Data fast-scan direction of real-space y-direction |
||
Data slow-scan direction of real-space x-direction |
||
Data slow-scan direction of real-space y-direction |
||
Minimum fs coordinate of data in file |
||
Maximum fs coordinate of data in file |
||
Minimum ss coordinate of data in file (inclusive) |
||
Maximum ss coordinate of data in file (inclusive) |
||
Width of panel |
||
Height of panel |
struct badregion { char name[1024]; int is_fsss; char *panel; double min_x; double max_x; double min_y; double max_y; /* Specified INCLUSIVELY */ int min_fs; int max_fs; int min_ss; int max_ss; };
struct rigid_group { char *name; struct panel **panels; int n_panels; /* Updates to panel position calculated during integration */ double d_fsx; double d_ssx; double d_cnx; double d_fsy; double d_ssy; double d_cny; int have_deltas; };