
FitXPS: an XPS curve fitting macro/IgorPro

1. Quick How-to-start

	(a) Open the Igor procedure file FitXPS.ipf in IgorPro 6.0 or later version, and 
		press the compile button, then you will have "Fit XPS" in the menu bar.
		
	(b) Press the "XPS spectrum" popup menu in the first row, and select an XPS spectrum to fit.
		You will see the spectrum graph drawn with black open circles in the bottom panel.
		
	(c) Check a check box named with "Curve 1 ~ 6", and put a number into each parameter input box.
		Each parameter name can be guessed by the titles in the parameter title boxes.
		
		B.E. = energy relative to the Fermi level, i.e. negative binding energy.
		INT = Intensity (or weight) of a peak.
		LorW = Lorentzian width in FWHM, representing a core hole lifetime.
		GauW = Gaussian width in FWHM, representing an instrumental resolution.
		LSE = spin orbit splitting energy relative to E(L+S) in eV. i.e. E_(L-S)-E(L+S).
		LSI = spin orbit split peak weight ratio, i.e. 0.5 for 2p level, 0.66667 for 3d, 0.75 for 4f.
		LSW = addition Lorentzian width of J=L-S peak. You can use 0 for normal cases.
		ASY = asymmetric parameter alpha in Doniac-Sunjic line shape model.
		BGD = background. You can select Shirley type or Tougaard type in the right column.
		BLine = base line for zero intensity, i.e. constant background.
		
	(d) Press "View" button to view the calculated spectrum by the parameters you put in (c)

	(e) If you want to set the fitting range, click the checkbox with "Use Cursors to ..."
	
	(f) Click the checkbox at the right side of each parameter input box
		if you want to use a free fitting parameter in the fitting process.
		You can check them upto six at one time, but the fitting algorithm
		will have less chance to get a local minimun. 1 ~ 3 parameters seem to be appropriate.
		
	(g) If you have a satisfactory result, press the "Save" button the result.
		FitXPS saves the parameter matrix and all the spectra.
		
	(h) If you have a worse result, you can use the "Undo" button to restore the previous parameters.
	
	(i) If you want to re-input all the parameters, use the "Clear" button to reset.
	

2. Check the following things before using FitXPS/Igor

	(a) The experimental XPS spectrum to fit should be a wave as defined in IgorPro.
		FitXPS does not support an XY-type spectrum. 
		You can easily convert an XY-type data to a wave by using 'setscale' command.
		Also, the experimental spectrum has to have an enough number of points, i.e. 
		the delta E should be much smaller than the peak widths.
		If your data do not satisfy this condition, use 'interpolate' command to increase the data points.	
	
	(b) Do not use a positive binding energy scale in the experimental data.
		The x value of the first data point should be the minimum of x values, and deltaE > 0.
		I don't know how FitXPS behaves in the other cases.
	
	(c) FitXPS uses Voight profiles to simulate XPS spectra by default, 
		but Doniac-Sunjic line shape can be used if you put a non-zero number in ASY field.
		
	(d) Do not check free fitting parameters more than 10 at one time. FitXPS/Igor allows upto 10 free parameters.
		If you have experiences on fitting, setting many fitting parameters never works effectively.
		Turn on 2~3 parameters at one time, and press 'Fit!' button. When you get a local minimum, select others
		as free parameters, then do the iterative process.

		
3. Some technical notes in FitXPS

	(a) Levenberg-Marquardt algorithm for fitting
		See "Numerical Recipes in Fortran (or C)". Chapter 15 "Modelling of Data" deals with the method in detail.
	
	(b) Shirley-type background
		See the reference paper by D. A. Shirley [Phys. Rev. B 5, 4709 (1972)].
	
	(c) Tougaard-type background
		See the reference paper by S. Tougaard [Surf. Interface Anal. 25, 137 (1997)].
	
	(d) Doniac-Sunjic line shape
		See the reference papaer by S. Doniach and M. Sunjic [J. Phys. C 3, 285 (1969)].

	
4. Miscellaneous Info.

	(a) Author: Prof. Han-Jin Noh (Ph.D., Department of Physics, Chonnam National University, South Korea).
		E-mail: hanjinnoh@gmail.com
		
	(b) latest version: 0.9 (2015.1.20)
