libcrystfel 0.11.1
|
Data Structures | |
struct | reflection_contributions |
Typedefs | |
typedef struct _reflist | RefList |
typedef struct _reflection | Reflection |
typedef struct _reflistiterator | RefListIterator |
Functions | |
RefList * | reflist_new (void) |
void | reflist_free (RefList *list) |
Reflection * | reflection_new (signed int h, signed int k, signed int l) |
void | reflection_free (Reflection *refl) |
Reflection * | find_refl (const RefList *list, signed int h, signed int k, signed int l) |
Reflection * | next_found_refl (Reflection *refl) |
void | get_detector_pos (const Reflection *refl, double *fs, double *ss) |
int | get_panel_number (const Reflection *refl) |
double | get_partiality (const Reflection *refl) |
double | get_khalf (const Reflection *refl) |
double | get_kpred (const Reflection *refl) |
double | get_exerr (const Reflection *refl) |
double | get_lorentz (const Reflection *refl) |
void | get_indices (const Reflection *refl, signed int *h, signed int *k, signed int *l) |
void | get_symmetric_indices (const Reflection *refl, signed int *hs, signed int *ks, signed int *ls) |
double | get_intensity (const Reflection *refl) |
int | get_redundancy (const Reflection *refl) |
double | get_temp1 (const Reflection *refl) |
double | get_temp2 (const Reflection *refl) |
double | get_esd_intensity (const Reflection *refl) |
double | get_phase (const Reflection *refl, int *have_phase) |
double | get_peak (const Reflection *refl) |
double | get_mean_bg (const Reflection *refl) |
int | get_flag (const Reflection *refl) |
struct reflection_contributions * | get_contributions (const Reflection *refl) |
void | copy_data (Reflection *to, const Reflection *from) |
void | set_detector_pos (Reflection *refl, double fs, double ss) |
void | set_panel_number (Reflection *refl, int pn) |
void | set_kpred (Reflection *refl, double kpred) |
void | set_khalf (Reflection *refl, double khalf) |
void | set_exerr (Reflection *refl, double exerr) |
void | set_partiality (Reflection *refl, double p) |
void | set_lorentz (Reflection *refl, double L) |
void | set_intensity (Reflection *refl, double intensity) |
void | set_redundancy (Reflection *refl, int red) |
void | set_temp1 (Reflection *refl, double temp) |
void | set_temp2 (Reflection *refl, double temp) |
void | set_esd_intensity (Reflection *refl, double esd) |
void | set_phase (Reflection *refl, double phase) |
void | set_peak (Reflection *refl, double peak) |
void | set_mean_bg (Reflection *refl, double mean_bg) |
void | set_symmetric_indices (Reflection *refl, signed int hs, signed int ks, signed int ls) |
void | set_flag (Reflection *refl, int flag) |
void | set_contributions (Reflection *refl, struct reflection_contributions *contribs) |
Reflection * | add_refl (RefList *list, signed int h, signed int k, signed int l) |
void | add_refl_to_list (Reflection *refl, RefList *list) |
Reflection * | first_refl (RefList *list, RefListIterator **piter) |
Reflection * | next_refl (Reflection *refl, RefListIterator *iter) |
void | free_reflistiterator (RefListIterator *iter) |
const Reflection * | first_refl_const (const RefList *list, RefListIterator **piter) |
const Reflection * | next_refl_const (const Reflection *refl, RefListIterator *iter) |
int | num_reflections (RefList *list) |
int | tree_depth (RefList *list) |
void | lock_reflection (Reflection *refl) |
void | unlock_reflection (Reflection *refl) |
const char * | reflist_get_notes (RefList *reflist) |
void | reflist_add_notes (RefList *reflist, const char *notes_add) |
The fast reflection list stores reflections in an RB-tree indexed by the Miller indices h, k and l. Any reflection can be found in a length of time which scales logarithmically with the number of reflections in the list.
A RefList can contain any number of reflections, and can store more than one reflection with a given set of indices, for example when two distinct reflections are to be stored according to their asymmetric indices.
There are getters and setters which can be used to get and set values for an individual reflection. The reflection list does not calculate any values, only stores what it was given earlier. As such, you will need to carefully examine which fields your prior processing steps have filled in.
typedef struct _reflection Reflection |
A Reflection represents a single Bragg reflection.
This data structure is opaque. You must use the available accessor functions to read and write its contents.
typedef struct _reflist RefList |
A RefList represents a list of Bragg reflections.
This data structure is opaque. You must use the available accessor functions to read and write its contents.
typedef struct _reflistiterator RefListIterator |
A RefListIterator is an opaque data type used when iterating over a RefList.
|
extern |
list | A RefList |
h | The 'h' index of the reflection |
k | The 'k' index of the reflection |
l | The 'l' index of the reflection |
Adds a new reflection to list
. Note that the implementation allows there to be multiple reflections with the same indices in the list, so this function should succeed even if the given indices already feature in the list.
|
extern |
refl | Reflection |
list | A RefList |
Adds refl
to list
.
|
extern |
to | Reflection to copy data into |
from | Reflection to copy data from |
This function is used to copy the data (which is everything listed above in the list of getters and setters, apart from the indices themselves) from one reflection to another. This might be used when creating a new list from an old one, perhaps using the asymmetric indices instead of the raw indices for the new list.
|
extern |
list | The reflection list to search in |
h | The 'h' index to search for |
k | The 'k' index to search for |
l | The 'l' index to search for |
This function finds the first reflection in 'list' with the given indices.
Since a RefList can contain multiple reflections with the same indices, you may need to use next_found_refl() to get the other reflections.
|
extern |
list | A RefList to iterate over |
piter | Address at which to store a RefListIterator |
This function sets up the state required for iteration over the entire list, and then returns the first reflection in the list. An iterator object will be created and its address stored at the location given in piter.
|
extern |
list | A RefList to iterate over |
piter | Address at which to store a RefListIterator |
As first_refl(), except returns a const Reflection. Use this when you don't need to modify any of the reflections.
|
extern |
refl | Reflection |
|
extern |
refl | Reflection |
fs | Location at which to store the fast scan offset of the reflection |
ss | Location at which to store the slow scan offset of the reflection |
|
extern |
refl | Reflection |
|
extern |
refl | Reflection |
|
extern |
refl | Reflection |
The integer flag value can be used according to the needs of the calling program.
|
extern |
refl | Reflection |
h | Location at which to store the 'h' index of the reflection |
k | Location at which to store the 'k' index of the reflection |
l | Location at which to store the 'l' index of the reflection |
|
extern |
refl | Reflection |
|
extern |
get_khalf
refl | Reflection |
|
extern |
refl | Reflection |
|
extern |
refl | Reflection |
|
extern |
refl | Reflection |
|
extern |
refl | Reflection |
|
extern |
refl | Reflection |
|
extern |
refl | Reflection |
|
extern |
refl | Reflection |
have_phase | Place to store a non-zero value if the phase is set, or NULL. |
|
extern |
refl | Reflection |
The redundancy of the reflection is the number of measurements that have been made of it. Note that a redundancy of zero may have a special meaning, such as that the reflection was impossible to integrate. Note further that each reflection in the list has its own redundancy, even if there are multiple copies of the reflection in the list. The total number of reflection measurements should always be the sum of the redundancies in the entire list.
|
extern |
refl | Reflection |
hs | Location at which to store the 'h' index of the reflection |
ks | Location at which to store the 'k' index of the reflection |
ls | Location at which to store the 'l' index of the reflection |
This function gives the symmetric indices, that is, the "real" indices before squashing down to the asymmetric reciprocal unit. This may be useful if the list is indexed according to the asymmetric indices, but you still need access to the symmetric version. This happens during post-refinement.
|
extern |
refl | Reflection |
The temporary values can be used according to the needs of the calling program.
|
extern |
refl | Reflection |
The temporary values can be used according to the needs of the calling program.
|
extern |
refl | Reflection |
Acquires a lock on the reflection.
|
extern |
refl | A reflection returned by find_refl() or next_found_refl() |
This function returns the next reflection in refl's
list with the same indices.
|
extern |
refl | A reflection |
iter | A RefListIterator |
This function looks up the next reflection in the list that was given earlier to first_refl().
|
extern |
refl | A reflection |
iter | A RefListIterator |
As next_refl(), except returns a const Reflection. Use this when you don't need to modify any of the reflections.
|
extern |
list | A RefList |
list
.
|
extern |
refl | The reflection to free. |
Destroys an individual reflection.
|
extern |
h | The h index of the new reflection |
k | The k index of the new reflection |
l | The l index of the new reflection |
Creates a new individual reflection. You'll probably want to use add_refl_to_list() at some later point.
|
extern |
reflist | Reflection list |
notes_add | Notes to add |
Appends the string notes_add
to the notes field for reflist
. The notes will be stored in the reflection list file by, e.g., write_reflist(), and are meant to be for humans to read. Possible uses include making a record of the command line arguments used to create the reflection list.
|
extern |
list | The reflection list to free. |
Destroys a reflection list.
|
extern |
reflist | Reflection list |
reflist
, or NULL if there are no notes. See reflist_add_notes() for more details.
|
extern |
Creates a new reflection list.
|
extern |
refl | Reflection |
contribs | Pointer to the contribution list |
Note that the pointer will be stored, not the contents of the structure.
|
extern |
refl | Reflection |
fs | The fast scan offset of the reflection |
ss | The slow scan offset of the reflection |
|
extern |
refl | Reflection |
esd | New standard error for this reflection's intensity measurement |
|
extern |
refl | Reflection |
exerr | The excitation error for the reflection |
|
extern |
refl | A Reflection |
flag | New flag value |
flag | is an integer value which can be used according to the needs of the calling program. |
|
extern |
refl | Reflection |
intensity | The intensity for the reflection. |
Set the intensity for the reflection.
|
extern |
refl | Reflection |
khalf | The wavenumber at which the reflection should be predicted |
Sets the wavenumber at the centre of the reflection.
|
extern |
refl | Reflection |
kpred | The wavenumber at which the reflection should be predicted |
Sets the wavenumber at which the reflection should be predicted. Used by predict_to_res() and update_predictions()
|
extern |
refl | Reflection |
L | The Lorentz factor for the reflection. |
Set the Lorentz factor for the reflection. To "scale up" a partial reflection, divide by this multiplied by the partiality.
|
extern |
refl | Reflection |
mean_bg | New peak height for the reflection |
|
extern |
refl | Reflection |
pn | Panel number (index in detgeom/DataTemplate structure) of the panel on which the reflection appears. |
|
extern |
refl | Reflection |
p | The partiality for the reflection. |
Set the partiality for the reflection. See set_lorentz().
|
extern |
refl | Reflection |
peak | New peak height for the reflection |
|
extern |
refl | Reflection |
phase | New phase for the reflection |
|
extern |
refl | Reflection |
red | New redundancy for the reflection |
The redundancy of the reflection is the number of measurements that have been made of it. Note that a redundancy of zero may have a special meaning, such as that the reflection was impossible to integrate. Note further that each reflection in the list has its own redundancy, even if there are multiple copies of the reflection in the list. The total number of reflection measurements should always be the sum of the redundancies in the entire list.
|
extern |
refl | Reflection |
hs | The 'h' index of the reflection |
ks | The 'k' index of the reflection |
ls | The 'l' index of the reflection |
This function gives the symmetric indices, that is, the "real" indices before squashing down to the asymmetric reciprocal unit. This may be useful if the list is indexed according to the asymmetric indices, but you still need access to the symmetric version. This happens during post-refinement.
|
extern |
refl | A Reflection |
temp | New temporary value for the reflection |
The temporary values can be used according to the needs of the calling program.
|
extern |
refl | A Reflection |
temp | New temporary value for the reflection |
The temporary values can be used according to the needs of the calling program.
|
extern |
list | A RefList |
If the depth of the tree is more than about 20, access to the list will be slow. This should never happen.
list
.
|
extern |
refl | Reflection |
Releases a lock on the reflection.