Unordered notes

Task 1: calibrationEDD

Purpose: calibration of the conversion from channels to energy with X-ray source

\[\text{E} = p_0 x^2 + p_1 x + p_2\]

Procedure:

  • fit peaks in channels

  • fit energies (e.g. Ba or Am fluorescence source) vs peak positions to obtain coefficients \(p_i\).

Data:

  • /detectorCalibration/fit_0001_2_1/fitLine_{ROIi}/horizontal: NXdata plot of peak fit

  • /detectorCalibration/fit_0001_2_1/fitLine_{ROIi}/vertical: NXdata plot of peak fit

  • /detectorCalibration/fit_0001_2_1/fitParams/fitParamsHD: results of peak fit
    • columns: [height, position, fwhm1, fwhm2, eta, goodness of fit]

    • rows are the peaks

  • /detectorCalibration/fit_0001_2_1/fitParams/fitParamsVD: results of peak fit
    • columns: [height, position, fwhm1, fwhm2, eta, goodness of fit]

    • rows are the peaks

  • /detectorCalibration/fit_0001_2_1/curveCalibration: NXcollection of energy fit

  • /detectorCalibration/fit_0001_2_1/calibCoeffs/calibCoeffsHD: results of energy fit
    • \(p_i\) stored in numpy.polyval order

  • /detectorCalibration/fit_0001_2_1/calibCoeffs/calibCoeffsVD: results of energy fit
    • \(p_i\) stored in numpy.polyval order

Task 2: angleCalibEDD

Purpose: calibration of the diffraction angle with known sample

\[2d\sin\theta = \frac{hc}{E}\]

Procedure:

  • fit peaks in channels

  • fit d-spacings vs. peak positions (using energy calibration) to obtain \(2\theta\).

Data:

  • /angleCalibration/fit_0001_3/fitLine_{ROIi}/horizontal: NXdata plot of peak fit

  • /angleCalibration/fit_0001_3/fitLine_{ROIi}/vertical: NXdata plot of peak fit

  • /angleCalibration/fit_0001_3/fitParams/fitParamsHD: results of peak fit
    • columns: [height, position, fwhm1, fwhm2, Lorentzian fraction, goodness of fit]

    • rows are the peaks

  • /angleCalibration/fit_0001_3/fitParams/fitParamsVD: results of peak fit
    • columns: [height, position, fwhm1, fwhm2, Lorentzian fraction, goodness of fit]

    • rows are the peaks

  • /angleCalibration/fit_0001_3/curveAngleCalibration: NXcollection of angle fit

  • /angleCalibration/fit_0001_3/calibratedAngle/calibratedAngleHD: results of angle fit
    • \(2\theta\) of the horizontal detector

  • /angleCalibration/fit_0001_3/calibratedAngle/calibratedAngleVD: results of angle fit
    • \(2\theta\) of the vertical detector

Task 3: fitEDD

Purpose: peak positions in channels for unknown sample

Procedure:

  • fit peaks in channels

Data:

  • /BAIII_AB_4_1_0001_42.1/fit/0000/fitLine_{ROIi}: NXdata plot of fit

  • /BAIII_AB_4_1_0001_42.1/fit/0000/fitParams/fitParamsHD: results of peak fit
    • columns: [height, position, fwhm1, fwhm2, eta, goodness of fit]

    • rows are the peaks

  • /BAIII_AB_4_1_0001_42.1/fit/0000/fitParams/fitParamsVD: results of peak fit
    • columns: [height, position, fwhm1, fwhm2, eta, goodness of fit]

    • rows are the peaks

  • /BAIII_AB_4_1_0001_42.1/positioners:
    • ex, ey, ez, ephi, echi, sy

  • /BAIII_AB_4_1_0001_42.1/tthPositionsGroup/peak_{i}: combine positioners and fit results
    • columns: [ex, ey, ez, ephi, echi, sy, delta (azimuth), 2theta, position (in channel), intensity, (FWHM1+FWHM2)/2, Lorentzian fraction, goodness of fit]

    • rows: [horizontal, vertical]

delta is -90 degrees for the horizontal detector (det0) and 0 degrees for the vertical detector (det1).

theta is fixed to zero but should really be the detector angle from angleCalibEDD.

Task 4: coordTransformation

Transformation of the coordinates from the motor to the goniometer reference frame.

Data:

  • /global/peak_{ROIi}: data in motor frame
    • columns: [ex, ey, ez, ephi, echi, sy, delta (azimuth), 2theta, position (in channel), intensity, (FWHM1+FWHM2)/2, Lorentzian fraction, goodness of fit]

    • rows: [horizontal, vertical]

  • /global/inSample_peak_{ROIi}: data in goniometer frame
    • columns: [x, y, z, rot_Z, rot_X, rot_Y, delta, 2theta, position (in channel), intensity, (FWHM1+FWHM2)/2, Lorentzian fraction, goodness of fit]

    • rows: [horizontal, vertical]

x = -ex, y = -ey, z = 9 - ez, rot_Z = ephi, rot_X = echi, rot_Y = sy

Task 5: regroupPoints

Merge data from 2 different sample orientations (2 scans)

Data:

  • /coordInSample_Peak_{ROIi}: data in goniometer frame
    • columns: [x, y, z, rot_Z, rot_X, rot_Y, delta, 2theta, position (in channel), intensity, (FWHM1+FWHM2)/2, Lorentzian fraction, goodness of fit]

    • rows: [horizontal scan1, vertical scan1, horizontal scan2, vertical scan2]

Task 6: preStraind0cstEDD

Calculate the strain in the measurement direction.

Data:

  • /STRAIN_with_d0/peak_{ROIi}/point_00000: data in goniometer frame
    • columns: [x, y, z, rot_minZ, rot_X, rot_minY, delta, 2theta, epsilon_sample, qx, qy, qz]

    • rows: [horizontal scan1, vertical scan1, horizontal scan2, vertical scan2]

epsilon_sample is the strain in the direction of the scattering vector. [qx, qy, qz] is the normalized scattering vector in cartesian coordinates calculated from spherical coordinates [delta, 2theta] and goniometer rotations rot_minZ, rot_X, rot_minY.

Task 7: strainStressd0cstEDD

Calculate the strain and stress tensors.

Data:

  • /peak_{ROIi}/point_00000/position:
    • x, y, z

  • /peak_0000/point_00000/strain_tensor_fit:
    • ???

  • /peak_0000/point_00000/stress_tensor_fit:
    • ???