spec

Software for Diffraction

4.12. - Zone Macros



Zone mode is controlled with the cz (calculate zone), sz (set zone) and mz (move zone) macros. Given two Bragg reflections, cz will calculate and display the values of χ and φ necessary to put both of these reflections in the scattering plane. To find the angles needed to put (0,0,2) and (0,2,2) in the scattering plane, type
1.FOURC> cz 0 0 2 0 2 2
Chi = 45 Phi = 90 2.FOURC>


Once appropriate values of χ and φ have been calculated, the scattering plane can be set using the pl (plane) macro, which moves the 2θ and θ motors together,
1.FOURC> pl 45 90
2.FOURC>

Alternatively, you can use the mz macro, which calculates the necessary χ and φ, moves there, sets zone mode, if not already in it, and saves the values of the zone vectors in the G[] geometry parameter array.
1.FOURC> mz 0 0 2 0 2 2
2.FOURC> p A[chi], A[phi]
45 90 3.FOURC>



The sz macro calculates and displays the χ and φ values, sets zone mode, if not already in it, saves the values of the zone vectors, sets the frozen values of zone -mode χ and φ, but does not move the diffractometer.

The cz, sz and mz macros make use of the Z[] array variables to pass the zone vectors to the geometry code.
1.FOURC> prdef cz
def cz ' if ($# != 6) { eprint "Usage: cz h0 k0 l0 h1 k1 l1" exit } Z[0]=$1; Z[1]=$2; Z[2]=$3; Z[3]=$4; Z[4]=$5; Z[5]=$6 calcZ printf("Chi = %g Phi = %g\n", A[chi], A[phi]) waitmove; get_angles; calcHKL ' 2.FOURC>