-
Notifications
You must be signed in to change notification settings - Fork 0
/
SliceAnalysesNum.m
59 lines (47 loc) · 1.86 KB
/
SliceAnalysesNum.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
function [argout] = SliceAnalysesNum(varargin)
%SLICEANALYSESNUM Numercial analyses of cw-EPR spectrum.
%
% Numerically integrates a cw-EPR spectrum to determine the magnetic
% susceptibility and the number of spins.
%
% WARNING: Using numerical integration may underestimate the tails of EPR
% spectra. This can lead to significant errors for long-tailed resonance
% shapes, such as Lorentzians, if the SNR ratio is small or the
% measurement range is less than 5 times the peak-to-peak linewidth.
%
% SYNTAX:
% SLICEANALYSESNUM() - opens GUI for file selection
% SLICEANALYSESNUM(dset) - uses data given by dset
% ...(x,o,pars) - uses data given by [x,o,pars]
% ...('sigPath') - reads data from file
% ...('sigPath', 'bgPath') - reads data and background from file
%
% OUTPUT:
% argout - structure containing the measurement data and fit results
%
% $Author: Sam Schott, University of Cambridge <ss2151@cam.ac.uk>$
import esr_analyses.*
import esr_analyses.utils.*
dset = load_spectrum_dialog(varargin{:});
[x,o,pars] = slice_experiment(dset);
yes = input('Would you like to perform a baseline correction? y/[n] ', 's');
if strcmp(yes, 'y')
o = baseline_corr(x, o);
end
%% Perform numercial analyses
%%=========================================================================
pars.GFactor = gfactor_determination(x, o, pars, 'plot', 'y');
intArea = double_int_num(x, o);
dA = intArea*pars.QValueErr/pars.QValue;
[Chi, dChi] = susceptibility_calc(intArea, pars, 'dA', dA);
[NSpin, dNSpin] = spincounting(intArea, pars, 'dA', dA);
%% Output
%%=========================================================================
argout.x = x;
argout.o = o;
argout.pars = pars;
argout.Chi = Chi;
argout.dChi = dChi;
argout.NSpin = NSpin;
argout.dNSpin = dNSpin;
end