Added a model where Shirley and PV eta are shared for peaks with shared width and relative position. This is usefull for adv. Carbon.

This commit is contained in:
bartels-rausch committed 2026-05-08 20:43:17 +02:00
1 parent 2a22d2dbea
commit d72e8b4ddc
2 files changed
+1036 -874

No files matched your search

@@ -1026,6 +1026,71 @@ FitList = nappFitGaussXps(FitList,tmpFitParameters,tmpDataSelection,...
quickPlotBinding(FitList,tmpDataSelection)
xlim([34,39])
%% TEST 3.13: widthPosition kinetic PV Shirley & Eta Shared
% Pseudo-Voigt + Shirley, shared width, first peak position free, other peaks offset fixed, shared Shirley K, shared PV eta
clearvars tmpFitParameters;
clc
tmpFitParameters.peakArea = [5e5 100];
tmpFitParameters.peakWidth = 1.6;
tmpFitParameters.peakPos = [113 -2.32];
% Bounds for areas (lower and upper)
tmpFitParameters.peakAreaLowerBound = [1e3 1e3];
tmpFitParameters.peakAreaUpperBound = [Inf Inf];
% Bounds for widths
tmpFitParameters.peakWidthLowerBound = 1.0;
tmpFitParameters.peakWidthUpperBound = 2.0;
% Bounds for positions
tmpFitParameters.peakPosLowerBound = 112;
tmpFitParameters.peakPosUpperBound = 114;
tmpFitParameters.backgroundRange = [12 6];
% PSEUDO-VOIGT:
tmpFitParameters.peakEta = 1;
tmpFitParameters.peakEtaLowerBound = 0.0;
tmpFitParameters.peakEtaUpperBound = 1.0;
% SHIRLEY variant:
tmpFitParameters.peakShirleyK = 0.1;
tmpFitParameters.peakShirleyKLowerBound = 0.001;
tmpFitParameters.peakShirleyKUpperBound = 10;
tmpFitParameters.peakShirleyOffset = 1E4;
FitList = nappFitGaussXps(FitList,tmpFitParameters,tmpDataSelection,...
'tableVariable','spectrum_countsNorm','energyScale','kinetic',...
'mode','widthPositionShirleyEta','backgroundMode','shirley','showFigures','on');
%% TEST 3.14: widthPosition binding PV Shirley & Eta Shared
% Pseudo-Voigt + Shirley, shared width, first peak position free, other
% peaks offset fixed, shared Shirley K and PV eta
clearvars tmpFitParameters;
clc
tmpFitParameters.peakArea = [1e5 100];
tmpFitParameters.peakWidth = 1.6;
tmpFitParameters.peakPos = [38 -1.8];
% Bounds for areas (lower and upper)
tmpFitParameters.peakAreaLowerBound = [0.01 0.01];
tmpFitParameters.peakAreaUpperBound = [Inf Inf];
% Bounds for widths
tmpFitParameters.peakWidthLowerBound = 0.2;
tmpFitParameters.peakWidthUpperBound = 2.0;
% Bounds for positions
tmpFitParameters.peakPosLowerBound = 37;
tmpFitParameters.peakPosUpperBound = 39;
tmpFitParameters.backgroundRange = [12 6];
% PSEUDO-VOIGT
tmpFitParameters.peakEta = 1;
tmpFitParameters.peakEtaLowerBound = 0;
tmpFitParameters.peakEtaUpperBound = 1.0;
% SHIRLEY variant:
tmpFitParameters.peakShirleyK = 0.01;
tmpFitParameters.peakShirleyKLowerBound = 0.001;
tmpFitParameters.peakShirleyKUpperBound = 100;
tmpFitParameters.peakShirleyOffset = 80;
FitList = nappFitGaussXps(FitList,tmpFitParameters,tmpDataSelection,...
'tableVariable','spectrum_counts','energyScale','binding',...
'mode','widthPositionShirleyEta','backgroundMode','shirley','showFigures','off');
quickPlotBinding(FitList,tmpDataSelection)
xlim([34,39])
%% TEST 4.1: Width kinetic Gauss linear
% Gaussian + Linear, shared width, individual areas and positions