XPS for Beginners

Data Analysis 5

Open the dataset by downloading from the link above and opening in CasaXPS.

Use online resources such as HarwellXPS Guru, or XPS Fitting, to obtain doublet fitting parameters (doublet separation energies) to use in peak fitting.

  1. S 2p (see sulfur details here) and Zr 3d (see zirconium details here)
  2. Ag 3d (see silver details here)
  3. Si 2p (see silicon details here), Cl 2p (see chlorine details here) and Al 2p (see aluminium details here)
  4. P 2p (see phosphorous details here)
  5. S 2p and W 4f (see Tungsten details here)
  6. Ca 2p (see calcium details here) and P 2p
  7. Ti 2p (caution! see Titanium details here – note FWHM difference)
  8. Mg 2p (see magnesium details here)
  9. Si 2p and Pt 4f (see platinum details here)

Lets start with Zirconium. First we need to put in 2 peaks. So do this either by using the ‘Create’ button twice to create 2 peaks, or alternatively use the ‘Create x2’ function to put in a doublet. Using this function will automatically populate the Area constraint and FWHM constraint functions.

Checking out the reference page we can see that the doublet separation is 2.4 eV. This means we need to tell CasaXPS to put the second peak (Zr 3d 3/2) at 2.4 eV higher than the first peak (Zr 3d 5/2). This goes into the ‘Position Constraint’ box. We can do this by typing ‘A+2.4’ into the ‘Position Constraint’ box in column B.

Since this is a d-orbital, we know that the area ratio should be 3:2 (see our page on spin-orbit splitting for a refresher if you need it) – so in our area constraint box in column B we should have A*0.666667. If you used the create x2 function this will already be in place.

Finally, we know that in almost all cases, the FWHM of the 2 peaks should be equivalent. So in the ‘FWHM constraint’ box in column B, we can type ‘A*1’. If you used the create x2 function this will already be in place.

Finally, hit fit components to fit the components to the data!


Lets do the same for Sulfur. This time we have a doublet separation of 1.16 eV and an area ratio of 2:1.


The first thing we need to do is create a region of interest, but hang on, if we put a region across both peaks the background crosses the data! This is not good!



So what shall we do? We can split the regions into 2! One for each peak. Now the background remains underneath the data trace.



Now, since we have 2 regions, we find that putting in components is not quite as simple as previously. If you try and use the create x2 function you’ll see Casa will put both peaks into one region. There are 2 ways to get around this, and one way is to just add the components separately.

Go to the region tab. Select the first region by clicking anywhere on the column. Go to the components tab and click create.

Then, go back to the region tab, click the second region and then go back to the component tab and create a second component. You should now have components in each region.

We can see from the silver resource page than the doublet separation is 6 eV. And the alternative way to get the peaks in the right place is to just use the position constraint to set the second peak at 6 eV as we would normally. However this quirk of Casa is useful to know about if you start to work on data with multiple regions.

A nice and easy example here.



Did you try and fit Cl…? This data is too noisy to suggest any Cl!

Just phosphorous here, we can see the doublet separation is 0.86 eV.


W 4f:


S 2p:


P 2p:



Ca 2p:


Titanium is a curious case – it is one of a small number of systems where the FWHM of the two peaks are not equivalent. This is due to Coster-Kronig broadening.

So in this case, we avoid using the createx2 function since it automatically sets the FWHM to be equivalent. Instead, add the 2 peaks separately and set the area ratio manually (A*0.5).


Mg 2p:


Pt 4f has a doublet separation of 3.35 eV. But when we put the peaks in they don’t look good? Why is this?


Find out in the next section…