Working with maps using Emile's procedures
Download the Igor procedure here (later can be a link to repository):
Extract everything in the same place, then load InclAll.ipf and compile it. We recommend to use a separate Igor experiment for maps and load this procedure first. After it is loaded, you can drag and drop the wave containing the map inside the experiment window. After the wave is loaded a three-panel interactive window should appear:
energy -vs- slit angle ("front-view");
energy -vs- polar angle ("side-view");
slit angle -vs- polar angle ("top-view")
In the top row of the panel there are boxes (with up-down arrows), the values in these boxes control the third coordinate for each corresponding panel.
Troubleshooting: If the panels are blank, please check that the wavename in the data browser starts with a letter (e.g. "001r" is not a valid wavename). If not, you can add some letters in front (e.g. "001" -> "w001"), then go to Macros -> "Create Slice Panel ..." and select your wave.
Use cursors (Ctrl+i) and put them in "top-view" image to determine the high-symmetry direction that you want to be parallel to the slit. The following code will give you the angle of rotation.
! Important ! If you are using mapping to orient the sample and in the third image it looks like map is rotated azimuthally clockwise, then actually you need to rotate azimuth counter-clockwise by the same value (subtract misorientation angle from the current value).
From the Igor command line you can call function kWarp(w, Ek0, alpha)
wave w // name of your map-wave (3D (phi, Ek, theta) wave)
variable Ek0 // kinetic energy at which k-range boundaries are defined
variable alpha // tilt angle in degrees
You can put Ek0 equal to max. kinetic energy and alpha should be equal to the angular position of Г point along the slit.
Normal emission is supposed to be at polar angle = 0, if it is not the case, you can shift it by changing the Start value of the polar angle axis of the map wave.
The converted wave will have the same name as the original one, but with "kw" on the end, you can plot it using Macros -> "Create Slice Panel ..." -> select this wave.
Maps measured in fixed mode have very small step in energy, which makes it difficult to work with them. It is possible to "condense" such maps summing up the values in each N energy steps to one single point.
This can be done from Igor command line with function condensefixed(wname, Nrows, Ncolumns, Nlayers)
It will condense the wave corresponding number of times along three directions. Rows=angle along slit; Columns=kinetic energy; Layers=polar angle.
Example: condensefixed(w001r,1,10,1)
will condense wave w001r 10 times along energy axis while keeping two other directions intact.
The Slice Panel with condensed wave should appear. The condensed wave will have the same name as the original one, but with "rdx" on the end.
Tip: To reduce disk space occupied by the maps experiment one can use Killmaps(map_wave_name)
to get rid of the non-compressed map measured in fixed mode. All the panels displaying this wave should be closed in advance.
Press Ctrl+I when Slice Panel is in focus to show the cursors panel.
Put A and B cursors in the first image to specify energy range that you are interested in (for example somewhere at the top and somewhere at the bottom to have full range).
Right-click the cursors panel -> "Show cursors pair" -> "C D".
Put C and D cursors in the third ("top-view") image to specify the cut direction.
After that in Igor command line write ExtractCsrSlice()
This should produce a window with spectrum extracted along C-D in energy range specified by A-B.