diff --git a/beamtime/nappDetermineShiftXps.m b/beamtime/nappDetermineShiftXps.m index b5415c0..cc56364 100644 --- a/beamtime/nappDetermineShiftXps.m +++ b/beamtime/nappDetermineShiftXps.m @@ -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; %%