Reading Point Spectra

A point spectrum, from the hardware point of view, is just a regular scan where the fast axis is the monochromator and the size of the slow axis is one. The locations on the fast axis (returned by fast_dist_um are wavelengths in microns. You can easily convert them to eV by doing

    IDL> ev = nm2ev(1000. * fast_dist_um)

or even easier, you can get it directly from read_stxm5 by setting the keyword ev to a named variable.

Along with a point spectrum, you should definitely have a reference, or $I_0$, spectrum. We don't have the option to store an $I_0$ spectrum in the data file at this point (not even an $I_0$ filename), so you have to take notes which reference spectrum goes with which file.

So, to plot the normalized spectrum, you would do something like

    IDL> read_stxm5, i_filename, sm_par, raw_spec, ev=ev
    IDL> read_stxm5, i0_filename, sm_par, ref_spec, ev=ev0
    IDL> od = -alog(raw_spec/ref_spec) ;; optical density
    IDL> iPlot, ev, od, xtitle='Photon Energy (eV)', $
         ytitle='Optical Density'

If the spectrum and the reference weren't taken over the exactly same energy range with the exactly same number of pixels, you'll have to remap after reading the files and before calculating od:

    IDL> raw_spec = interpol(raw_spec, ev, ev0, /quad)

In SM_GUI, you can just open the reference spectrum, set it to $I_0$, the open the raw spectrum and click "Show $I/I_0$. See Sec. 5.6 for details.

Note that if you took the spectra on inboard STXM with the segmented silicon detector, they only make sense if you look at the "BF total" signal for both the raw and the reference spectrum (see Chapter 9 for details)!

Holger Fleckenstein 2008-07-08