spec

Software for Diffraction

4.9. - Four-Circle Variables



The four-circle coordinate variables (H, K and L, in particular) are stored in a built-in array named Q[]. The four-circle geometry calculations either use the motor positions contained in the A[] array to calculate values for the Q[] parameters or place motor positions in A[] based on the current values in Q[]. Each four-circle variable has a descriptive macro definition as an alias, such as def OMEGA 'Q[6]'.
 Variable   Alias   Description 

 Q[0]   H   x component of the scattering vector. 
 Q[1]   K   y component of the scattering vector. 
 Q[2]   L   z component of the scattering vector. 
 Q[3]   LAMBDA   Incident X-ray wavelength λ. 
 Q[4]   ALPHA   Incident angle α. 
 Q[5]   BETA   Exiting angle β. 
 Q[6]   OMEGA   ω = θ - (2θ)/2. 
 Q[7]   AZIMUTH   Azimuthal angle. 
 Q[8]   F_ALPHA   Frozen value of α for alpha-fixed mode. 
 Q[9]   F_BETA   Frozen value of β for beta-fixed mode. 
 Q[10]   F_OMEGA   Frozen value of ω for omega-fixed mode. 
 Q[11]   F_AZIMUTH   Frozen value of ψ for azimuth-fixed mode. 
 Q[12]   F_PHI   Frozen value of φ for phi-fixed mode. 
 Q[13]   F_CHI_Z   Frozen value of χ for zone mode. 
 Q[14]   F_PHI_Z   Frozen value of φ for zone mode. 




The geometry parameters in the table below affect the geometry calculations in various ways. Although the parameters can be changed by assignment, the preferred method is to use the indicated macro for setting the parameters.
 Variable   Alias   Related Macro   Description 

 G[0]   g_mode   setmode   Specifies the four-circle mode
 G[1]   g_sect   setsector   Specifies the sector
 G[2]   g_frz   freeze   Nonzero when an angle is frozen
 G[3]   g_haz   setaz   H of the azimuthal reference vector. 
 G[4]   g_kaz   setaz   K of the azimuthal reference vector. 
 G[5]   g_laz   setaz   L of the azimuthal reference vector. 
 G[6]   g_zh0   mz, sz   H of first zone-mode vector. 
 G[7]   g_zk0   mz, sz   K of first zone-mode vector. 
 G[8]   g_zl0   mz, sz   L of first zone-mode vector. 
 G[9]   g_zh1   mz, sz   H of second zone-mode vector. 
 G[10]   g_zk1   mz, sz   K of second zone-mode vector. 
 G[11]   g_zl1   mz, sz   L of second zone-mode vector. 
  
 U[0]   g_aa   setlat   a lattice constant in Angstroms. 
 U[1]   g_bb   setlat   b lattice constant. 
 U[2]   g_cc   setlat   c lattice constant. 
 U[3]   g_al   setlat   α lattice angle. 
 U[4]   g_be   setlat   β lattice angle. 
 U[5]   g_ga   setlat   γ lattice angle. 
 U[6]   g_aa_s   setrlat   a reciprocal lattice constant. 
 U[7]   g_bb_s   setrlat   b reciprocal lattice constant. 
 U[8]   g_cc_s   setrlat   c reciprocal lattice constant. 
 U[9]   g_al_s   setrlat   α reciprocal lattice angle. 
 U[10]   g_be_s   setrlat   β reciprocal lattice angle. 
 U[11]   g_ga_s   setrlat   γ reciprocal lattice angle. 
  
 U[12]   g_h0   or0, setor0   H of primary reflection. 
 U[13]   g_k0   or0, setor0   K of primary reflection. 
 U[14]   g_l0   or0, setor0   L of primary reflection. 
 U[15]   g_h1   or1, setor1   H of secondary reflection. 
 U[16]   g_k1   or1, setor1   K of secondary reflection. 
 U[17]   g_l1   or1, setor1   L of secondary reflection. 
  
 U[18]   g_u00   or0, setor0   Observed 2θ of primary reflection. 
 U[19]   g_u01   or0, setor0   Observed θ of primary reflection. 
 U[20]   g_u02   or0, setor0   Observed χ of primary reflection. 
 U[21]   g_u03   or0, setor0   Observed φ of primary reflection. 
 U[24]   g_u10   or1, setor1   Observed 2θ of secondary reflection. 
 U[25]   g_u11   or1, setor1   Observed θ of secondary reflection. 
 U[26]   g_u12   or1, setor1   Observed χ of secondary reflection. 
 U[27]   g_u13   or1, setor1   Observed φ of secondary reflection. 

The first three parameters select modes and set flags. The next three parameters describe the components of the azimuthal reference vector. The six after that describe the zone-mode vectors.

The next sets of parameters describe the orientation matrix, including the lattice constants of the sample and the parameters of the primary and secondary orientation reflections. Remember that the calcG macro, described below, must be called to make sure the orientation matrix is recalculated after changing any of these related values above. The or0, setor0, or1, setor1, or_swap and setlat macros do just that.