Added Example Matlab script with most common during beamtime processing

This commit is contained in:
bartels-rausch committed 2025-12-05 15:35:30 +01:00
1 parent 53dd8c6080
commit bbfab45787
7 files changed
+658 -22

No files matched your search

@@ -0,0 +1,58 @@
%% Fitting spectra with Gauss
%
% The nappFitGaussXps.m allows to set-up your own model reflecting the
% physics of your peaks. Here is an example. Check the documentation. This
% needs some test-and try.
%% SES #0157 Ar2p (gas-phase reference)
%
% * Core level: Ar 2p, file 0157157_Ar2p_850eV.
% * Model: Gaussian spin–orbit doublet, splitting fixed at 2.2 eV, area ratio 0.5.
% * Peak 1 area: initial 1e5; lower bound 10; upper bound Inf.
% * Peak 1 width: initial 0.5 eV; bounds 0.5–3 eV.
% * Peak 1 position: initial 603 eV; bounds 602–604 eV.
% * Background: linear, 8 eV window below and 5 eV above the peak.
clc
close all
tmpDataSelection = month(FileList.lastModifiedDatenum) == 11 ...
& year(FileList.lastModifiedDatenum) == 2025 ...
& ~contains(FileList.sample,"(bad data)") ...
& ~contains(FileList.name,"Survey") ...
& ~contains(FileList.name,"Resonant") ...
& startsWith(FileList.name,"0157") ...
& contains(FileList.name, "Ar2p");
FileList = nappGenerateSpectra(FileList,tmpDataSelection);
disp(FileList(tmpDataSelection,{'name','lastModifiedDatestr','scientaPassEnergy_eV'}))
% Defining the mode as 'widthPositionAreaRatio', the first element of the input
% parameters defines the first peak (initial value, upper and lower bond for
% fitting) in absolute terms. The second element is then the area ratio
% relative to the first, and the position relative to the first.
tmpFitParameters.peakArea = [1e5 0.5 0.1 0.1 0.1] ;
tmpFitParameters.peakWidth = 0.5;
tmpFitParameters.peakPos = [603 -2.2 10 10 10];
tmpFitParameters.peakAreaUpperBond = [Inf 0.5 0.1 0.1 0.1];
tmpFitParameters.peakWidthUpperBond = [3 NaN NaN NaN NaN];
tmpFitParameters.peakPosUpperBond = [604 -2.2 10 10 10];
tmpFitParameters.peakAreaLowerBond = [10 0.5 0.1 0.1 0.1];
tmpFitParameters.peakWidthLowerBond = [0.5 NaN NaN NaN NaN];
tmpFitParameters.peakPosLowerBond = [602 -2.2 0.1 0.1 0.1];
% spectrum range
tmpFitParameters.backgroundRange = [8 5];
FileList= nappFitGaussXps(FileList,tmpFitParameters,tmpDataSelection,...
'energyScale','kinetic','mode','widthPositionAreaRatio','showFigures','on');
%% RESULTS – SES 0157 Ar2p (gas-phase reference)
% The gas‑phase Ar2p reference is well described by the doublet: peak 1 at
% 603.0 eV and peak 2 at 600.8 eV (FWHM ≈ 1.2 eV, width 1.0 eV) match both
% the height and the base of the experimental lines. The residuals are very small and essentially
% structureless over the full fit range, indicating that, in contrast to
% the Cl2p fits, a simple Gaussian doublet provides an excellent and
% internally consistent description of the Ar2p line shape.