Added Gauss Fit to determine peak positions. Uses nappFitGaussXps.m

This commit is contained in:
bartels-rausch committed 2023-11-16 07:16:11 +01:00
1 parent 3a0a97fe88
commit 4ad9ccbd35
1 file changed
+14 -8
+14 -8
View File
@@ -21,6 +21,8 @@ function DataTable = nappDetermineShiftXps(DataTable, varargin)
% binEnReference: Reference BE in eV for spectra energy scale
% kinEnReference: Sequence iteration to which the image should be
% aligned, default is 1.
% refPeak: Peak number the position of which will be used to compute the
% BE shift. Only for Gauss fit. Default 1.
% minPeakWidth: findpeak parameter, default 0.1
% minPeakHeight: findpeak parameter, default 0.1
% movMeanWindow: findpeak parameter, default 1
@@ -39,17 +41,18 @@ function DataTable = nappDetermineShiftXps(DataTable, varargin)
defaultKinEnReference = 1;
defaultTableVariable = 'spectrum_countsPerSecond';
expectedTableVariable = {'spectrum_counts','spectrum_countsPerSecond','image','imageRoh'};
expectedTableVariable = {'spectrum_counts','spectrum_countsPerSecond','spectrum_countsNorm','image','imageRoh'};
defaultTableSelection = true(size(DataTable,1));
defaultMinPeakWidth = 0.1;
defaultMinPeakHeight = 0.1;
defaultMovMeanWindow = 1;
defaultRefPeak = 1;
defaultShowFigures = 'off';
expectedShowFigures = {'on','off'};
defaultMode = 'gaussFit';
defaultMode = 'findPeak';
expectedMode = {'gaussFit','findPeak'};
defaultFitMode = 'widthPosition';
expectedFitMode = {'unconstrained','widthPosition','position','width','unconstrainedAndWidthPosition'};
% defaultFitMode = 'widthPosition';
% expectedFitMode = {'unconstrained','widthPosition','position','width','unconstrainedAndWidthPosition'};
%%
@@ -71,7 +74,8 @@ addParameter(p,'tableVariable',defaultTableVariable,...
addParameter(p,'showFigures',defaultShowFigures,...
@(x) any(validatestring(x,expectedShowFigures)));
addParameter(p,'mode',defaultMode, @(x) any(validatestring(x,expectedMode)));
addParameter(p,'fitMode',defaultFitMode, @(x) any(validatestring(x,expectedFitMode)));
% addParameter(p,'fitMode',defaultFitMode, @(x) any(validatestring(x,expectedFitMode)));
addParameter(p,'refPeak',defaultRefPeak,@isnumeric);
parse(p,DataTable,varargin{:});
@@ -329,10 +333,12 @@ else
elseif matches(p.Results.mode,'gaussFit')
tmpFitResults = nappFitGaussXps(DataTable,p.Results.tableSelection,p.Results.FitParameter,'tableSelection',p.Results.tableSelection,...
'energyScale','kinetic','mode',p.Results.fitMode,'showFigures','on');
'energyScale','kinetic','mode',p.Results.FitParameter.fitMode,'showFigures','on','tableVariable',p.Results.tableVariable);
DataTable.bindingEnergyShift(p.Results.tableSelection) = tmpFitResults(p.Results.tableSelection,:).xRayEkinRange_eV(:,1) - tmpFitResults(p.Results.tableSelection,:).peakPosition(:,1) - repmat(p.Results.binEnReference,size(DataTable.bindingEnergyShift(p.Results.tableSelection)));
DataTable.bindingEnergyShift(p.Results.tableSelection) = tmpFitResults(p.Results.tableSelection,:).xRayEkinRange_eV(:,1) - tmpFitResults(p.Results.tableSelection,:).peakPosition(:,p.Results.FitParameter.refPeak) - repmat(p.Results.binEnReference,size(DataTable.bindingEnergyShift(p.Results.tableSelection)));
DataTable.peakPosition(p.Results.tableSelection,:) = tmpFitResults(p.Results.tableSelection,:).peakPosition;
DataTable.peakArea(p.Results.tableSelection,:) = tmpFitResults(p.Results.tableSelection,:).peakArea;
DataTable.peakFWHM(p.Results.tableSelection,:) = tmpFitResults(p.Results.tableSelection,:).peakFWHM;
%%