Menu

data structures

Anonymous

Data Structures

Most of these items should map onto data which can be stored in ImageCIF or Nexus format files. Where possible we should try to translate or like these parameters to the same ones in Nexus/ImageCIF/EDNA etc. Please compare to: 1

Experimental Parameters:

Lambda: AA, double. Wavelength of the radiation
Energy: keV, double [should be 12.3985/Lambda for x-rays.]
radiation_type: x-ray is assumed. Could be neutrons or electrons too.

Optional but sometimes useful parameters:
beam_divergence, beam polarisation
bandpass (did you do a laue experiment?)

Facilities to treat extinction/absorbtion?
Facilities to record incident beam profiles.

Geometry:

 n_det_positions; number of detector positions
 *det_pos;

 Diffractometer_axes (translations+rotations)

Det_Pos:

 *det_type; Detector type, Detector

 t; tilt of detector 3x3 matrix, OR,
 tilt_x; tilt around the x laboratory axis (radians)
 tilt_y; tilt around the y laboratory axis (radians)
 tilt_z; tilt around the z laboratory axis (radians)

 r; translation of detector; 3x1 double, OR,
 distance; distance parallel to laboratory x from diffractometer
           rotation axis to detector plane

 R; Rotation of detector 3x3 matrix [is this implemented somewhere yet?]

 cen; beam centre (pixels and or mm)

 place detector with beam centre at diffractometer centre of rotation:
     tilt it with tilt matrix.
     translate it with vector.
     rotate it (eg: on a two theta arm).

Detector:

 npx: number of pixels in x
 npy: number of pixels in y
 psx: pixel size in x [length]
 psy: pixel size in y [length]

 spatial disortion, gain, overload, linearity, offset.
 active region.

Crystallography:

 sp_obj; space group object, spg;
 a;
 b;
 c;
 alpha;
 beta;
 gamma;
 B; B matrix 3x3, double
 B_type; Convention for B, string

 g; reciprocal space metric tensor (used for 1/d = h.g.h). 3x3 double.

 n_hkl_fam: number of hkl families
 *hklfam; hkl family
     or:
 d_star_limit; double. Give all hkls up to this limit. (units 1/d)
 hkls[] ; all hkl peaks (3x1 integer) up to d_star_limit

spg:

 function integer sp_id() ; id for graindex
 functions to get symmetry operations (rotations 3x3 + translations 3x1)
 functions to create from user info (eg Fm3m)

hklfam:

 d_spacing: double
 *hkl; list nx3, integers
 Bhkl; ????
 Bhkl_norm; ????

Grain:

 UB; matrix converting scattering vectors <---> hkls
 UBI; inverse of the UB matrix
 cms; center of mass of grain w.r.t center of rotation, double 3x1

 scale_factor ; double, to apply to compute intensities of reflections.

 n_rec_vec; number of reciprocal vectors, integer
 *rec_vec;  set of measurements assigned to the grain
 completeness;  found measurements/expected measurements, double
 uniqueness (maybe); double

 volume; grain volume, double

 r;  rodrigues vector 3x1 double
     ... which is defined as ...
 U;  orientation matrix, 3x3 double
     ... which is defined as ...
 phi; euler angles 3x1 double;
     ... which are defined as ...

rec_vec:

 gx,gy,gx ; g-vectors
 g_type; units, string, one of "2pi/d", "1/d", "sin(theta)/lambda" etc

 tth;   double
 eta;   double
 omega[]; list of diffractometer angles, double[]

 lor_fact; lorentz factor
 Integrated Intensity; double
 hkl[]; assigned during indexing; 3x1 integer
        list allows multiple grains to claim a peak (eg: twins)
 *diff_spot; pointer to diffaction spot; Diff_spot

Diff_spot:

 cms_det; centre of mass in the detector 2x1 double;
 cms_omega; centre of mass in omega, double;
 Int_tot; Integrated intensity, double

 max/min intensity, position in x/y/angle
 background
 shape

TODO:

  • add the peaksearch output columns and their definitions
  • add the columns which would go in a gff file
  • add/check the parameter definitions match fabric/fitallb/grainsweeper/ImageD11:transform.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.