XPS Peak Fitting Program for WIN95
XPSPEAK95 Version 2.0

Introduction
	I had spent >1000 hours on XPS peak fitting when I was a 
graduate student.  During that time, I have dreamed of many 
features in the XPS peak fitting software that could help to obtain 
more information from the XPS peaks and reduce my processing 
time.  Last year, I wrote a program that converts the Kratos XPS 
spectral files to ASCII data. Kratos's VISION software only 
generates peak parameters, not the peak intensity at each binding 
energy.  That program can convert the peak parameters to a list of 
peak intensities. Once this program was finished, I found that the 
program could be easily converted to a peak fitting program.  Then 
I added the features into the program, e.g., a better way to locate a 
point at a noise baseline for the Shirley background calculations, 
combine the two peaks of 2p3/2 and 2p1/2, fitting different XPS 
regions at the same time.
	Version 2.0 of the program has been extensively tested and 
debugged.  A file conversion program is also included to convert 
the older file format to this one.  In addition, Tougaard background 
subtraction was added.  Because this subtraction requires a large 
scan range, the maximum number of points in each spectrum has 
been increased to 2000.  Many checking codes are added so that 
the program will not end so easily.
	This version of the program was written in Visual Basic 4.0 
and uses 32 bit processes.  This is a freeware.  You may ask for the 
source program if you really want to.  I hope this program will be 
useful for people without a modern XPS software.  I also hope that 
the new features in this program can be adopted by the XPS 
manufacturers in the later versions of their software.  If you have 
any questions/suggestions, please send an email to me.
	Raymund W.M. Kwok
	Department of Chemistry
	The Chinese University of Hong Kong
	Shatin, Hong Kong
	Tel: (852)-2609-6261
	Fax:(852)-2603-5057
	email: rmkwok@cuhk.edu.hk

	Finally, I would like to thank the comments and suggestions 
of many people, e.g. Francois Gaillard, Gerard Tourillon.  I hope I 
will add other features into the program in the next future.

Program Installation
	Run Setup.exe program.

Features of the program
(1)	Background
	Shirley, Linear and Tougaard background.  For Tougaard 
background, the program can optimize the B1 parameter by 
minimizing the ‘square of the difference ‘ of the intensities of ten 
data points in the high binding energy side of the range with the 
intensities of the calculated background.
	We can choose None (1 point), 3, 5, 7, and 9 point average.  
This will average the intensities around the binding energy you 
selected.  Hence, we do not need to locate a point with intensity at 
the middle of a noisy baseline.

(2)	Peak types: p, d and f.
	Each of these peaks combines the two splitting peaks.  The 
FWHM is the same for both the splitting peaks, e.g. a p-type peak 
with FWHM=0.7eV is the combination of a p3/2 with FWHM at 
0.7eV and a p1/2 with FWHM at 0.7eV, and with an area ratio of 2 
to 1.  If the theoretical area ratio is not true for the splitted peaks, 
the old way of setting two s-type peaks and adding the constraints 
should be used.  The “s.o.s.” stands for spin orbital splitting.

(3)	Peak constraints
	This program uses four parameters for each peak, i.e., peak 
position, area, FWHM, and the %Gaussian-Lorentzian.  Since peak 
area depends on peak height, FWHM and %GL, use peak height as 
a peak parameter cannot directly reflect concentration.  Thus, peak 
area is used as a better way of correlating the concentration ratios.  
The optimisation of the %GL value is allowed in this program.  A 
suggestion to use this feature is to find a nice peak for a certain 
setting of your instrument and optimise the %GL for this peak.  
Then we can fix the %GL in the later peak fitting process when the 
same instrument settings were used.
	For setting constraints, each parameter can only be the 
following three types: “referenced by others”, “reference to another 
parameter”, and “not involved in referencing”.  The parameter 
cannot be both “referenced by another parameter” and “reference to 
another parameter”. You can set the constraints in the follow way,
	Position: Peak 2 = Peak 1 + 1.6
	Position: Peak 3 = Peak 1 + 15
but you cannot
	Position: Peak 2 = Peak 1 + 1.6
	Position: Peak 3 = Peak 2 + 13.4.

(4)	Optimisation
	You can optimise a single peak parameter, the peak (the 
peak position, area, FWHM, and the %GL if the “fix” box is not 
ticked), a single region (all the parameters of all the peaks in that 
region if the “fix” box is not ticked), or all the regions.  During 
optimisation, you can press the “Cancel” button and the program 
will stop the process in the next cycle.

(5)	Option
	The %tolerence allows the optimisation routine to stop if 
the change in the "difference" after one loop is less that the 
%tolerence.  The optimisation routine will also stop if the maximum 
number of loop is reached.  We may also confirm the search range 
by selecting “medium” or “small”.  The “difference” means the sum 
of the square of the difference between each point in the calculated 
and the experimental curve.  This is a little bit faster that using 
Chi^2 since Chi^2 requires an additional division calculation for 
each point.

(6)	Import
	The program can read the Kratos's *.DES files.  The peak 
fitting parameters in the file will also be read.  It can also import 
ASCII file in the following format:

	Binding Energy Value 1 	Intensity Value 1
	Binding Energy Value 2 	Intensity Value 2
 		    ..			  	..
The B.E. list must be in ascending or descending order.  However, 
the file cannot have other lines before and after the data, and 
sometimes, TAB may cause reading error.

Limitations
	This program limits the maximum number of points for each 
spectrum to 2000 and the maximum of peaks for all the regions to 
21.  

Sample Files:
(i)	gaas.xps:  a file contains 10 spectra
	Use Open to retrieve the file.  It includes ten regions, 1-4 
for Ga 3d, 5-8 for Ga 3d and 9-10 for S 2p.  For the Ga 3d 
and As 3d, the peaks are d-type with s.o.s.=0.3 and 0.9 
respectively.  Regions 4 and 8 are the sample just after S-
treatment.  Other regions are after annealing.  Peak width of 
Ga 3d and As 3d are constrained to those in regions 1 and 
5.  Because of the Fermi level shift, the peak positions are 
not constrained.

(ii)	As3d1.des: a Kratos DES file
Use import Kratos to retrieve the file.  Note that the four 
peaks are all s-type.  You may delete peak 2, 4 and change 
the peak 1,3 to d-type with s.o.s. =0.7.

(iii)	As3d.prn: a ASCII file
Use import ASCII to retrieve the file.  In order to fit the 
spectra, you need to first add the background and then add 
two d-type peaks with s.o.s.=0.7.

Have Fun!		July 22,1996.
