Mono calibration is performed by measuring the angular positions of a bunch of metal foils over a broad energy range. Values for d-spacing and an angular offset of the Bragg axis are fitted by comparing the measured angles of the edge positions to the energy values tabulated in High resolution x‐ray absorption spectroscopy with absolute energy calibration for the determination of absorption edge energies, S. Kraft, J. Stümpel, P. Becker, and U. Kuetgens, Review of Scientific Instruments 67, 681 (1998); DOI: 10.1063/1.1146657.

The angular values for the edges are measured by hand. (This is hard to automate as the angular offset can be quite wrong, leading to increasingly large discrepancies between reported and actual energies.)

The angular positions of the edges are taken as the first peak of the first derivative of the measured μ(E) spectra.

The values are recorded in a text file in /home/xf06bm/Data/Staff/mono_calibration/. There is one file for the Si(111) calibration (edges111.ini) and another for the Si(311) calibration (edges311.ini).

Once the edgesHKL.ini file is made, the calibration is done in BlueSky with the calibrate_mono() command.

In the plots below, the blue line – representing the tabulated edge energies – is plotted with cubic interpolation between the tabulated values.

Updated Jan 30-31, 2019.




Si (111)

From the edges111.ini file and calibrate_mono('111') command:

Results:

  • d-spacing = 3.13536646 +/- 1.3731e-04
  • angular offset:  0.00242489 +/- 3.1917e-04
  • dcm.bragg.user_offset.value is 16.05684



Si(111) calibration curve
Element
Tabulated
Measured
Difference
Fe
7111.383
7111.222
0.633
Co
7709.391
7709.366
0.611
Ni
8331.834
8331.704
0.344
Cu
8980.645
8980.522
0.165
Zn
9660.817
9660.996
0.057
Pt
11562.503
11562.673
-0.257
Au
11919.290
11919.251
-0.410
Pb
13033.994
13034.046
-1.076
Nb
18982.453
18982.808
-0.517
Mo
20001.239
20000.884
0.879

Si (311)

From the edges311.ini file and  calibrate_mono('311') command:

Results:

  • d-spacing = 1.63758053 +/- 2.8726e-05
  • angular offset: -0.00203830 +/- 2.5022e-04
  • dcm.bragg.user_offset.value is 15.99235495


Si(311) calibration curve
Element
Tabulated
Measured
Difference
Fe
7110.750
7111.073
0.323
Co
7708.780
7709.139
0.358
Ni
8331.490
8331.448
-0.042
Cu
8980.480
8980.297
-0.183
Zn
9660.760
9660.561
-0.199
Pt
11562.760
11562.875
0.115
Au
11919.700
11919.523
-0.177
Pb
13035.070
13034.872
-0.198
Nb
18982.970
18983.044
0.074
Mo
20000.360
20000.401
0.041

 

Calibration Procedure

(Updated May 29, 2019) These are the steps for calibrating the Si(111) mono. The procedure for the Si(311) mono is exactly the same, substituting 311 for 111 throughout.

  1. Load the reference holder with (top to bottom) Fe, Co, Ni, Cu, Zn.
  2. In BlueSky, run RE(calibrate_low_end('111'))
  3. For each of the five elements, Fe, Co, Ni, Cu, Zn, use Athena to determine the energy position of the inflection point.
  4. When the low-end macro finishes, edit the edges111.ini file to include the energy positions of the inflection points in the first column.
  5. Using dcm.e2a(energy_value), compute the angular positions of the inflection points and add those to the third column of edges111.ini
  6. Load the reference holder with (top to bottom) Pt, Au, Pb, Nb, Mo.
  7. In BlueSky, run RE(calibrate_high_end('111'))
  8. Repeat steps 4 and 5, editing the edges111.ini file in the same way for Pt, Au, Pb, Nb, Mo.
  9. In BlueSky, run calibrate_mono('111')
  10. Edit 19-dcm-parameters.py with the new d-spacing value
  11. Add the fitted angular offset to the current value found in the 19-dcm-parameters.py file
  12. Move the DCM to the found energy value of the inflection point for the Mo foil, something like RE(mv(dcm.energy, 20009.4))
  13. Do %run -i '/home/xf06bm/.ipython/profile_collection/startup/19-dcm-parameters.py'
  14. Do dcm.set_crystal('111')
  15. Run a Mo XANES scan to verify your handiwork.