


Calculate sqw for a model scattering function
>> wout = disp2sqw_eval(win,dispreln,pars,fwhh,opt)
Input:
------
win Dataset, or array of datasets, that provides the axes and points
for the calculation
dispreln Handle to function that calculates the dispersion relation w(Q) and
spectral weight, s(Q)
Must have form:
[w,s] = dispreln (qh,qk,ql,p)
where
qh,qk,ql Arrays containing the coordinates of a set of points
in reciprocal lattice units
p Vector of parameters needed by dispersion function
e.g. [A,js,gam] as intensity, exchange, lifetime
w Array of corresponding energies, or, if more than
one dispersion relation, a cell array of arrays.
s Array of spectral weights, or, if more than
one dispersion relation, a cell array of arrays.
More general form is:
[w,s] = dispreln (qh,qk,ql,p,c1,c2,..)
where
p Typically a vector of parameters that we might want
to fit in a least-squares algorithm
c1,c2,... Other constant parameters e.g. file name for look-up
table.
pars Arguments needed by the function. Most commonly, a vector of parameter
values e.g. [A,js,gam] as intensity, exchange, lifetime. If a more general
set of parameters is required by the function, then
package these into a cell array and pass that as pars. In the example
above then pars = {p, c1, c2, ...}
fwhh Full-width half-height of Gaussian broadening to dispersion relation(s)
'all' [option] Requests that the calculated sqw be returned over
the whole of the domain of the input dataset. If not given, then
the function will be returned only at those points of the dataset
that contain data.
Applies only to input with no pixel information - it is ignored if
full sqw object.
'ave' [option] Requests that the calculated sqw be computed for the
average values of h,k,l of the pixels in a bin, not for each
pixel individually. Reduces cost of expensive calculations.
Applies only to the case of sqw object with pixel information - it is
ignored if dnd type object.
Output:
-------
wout Output dataset or array of datasets