iData_Sqw2D [from iData]
```  iData_Sqw2D: create a 2D S(q,w) data set (iData flavour)

The iData_Sqw2D class is a 2D data set holding a S(q,w) dynamic structure factor
aka scattering function/law.
The first  axis (rows)    is the Energy   transfer [meV].
The second axis (columns) is the Momentum transfer [Angs-1] (wavevector).

This quantity usually derives from the double differential neutron cross section

d2 sigma
---------   = N kf/ki [ sigma /4pi S(q,w)]
dOMEGA dEf

conventions:
w = omega = Ei-Ef = energy lost by the neutron [meV]
omega > 0, neutron looses energy, can not be higher than Ei (Stokes)
omega < 0, neutron gains energy, anti-Stokes

Example: s=iData_Sqw2D('SQW_coh_lGe.nc')

Useful methods for this iData flavour:

methods(iData_Sqw2D)
all iData methods can be used.
iData_Sqw2D(s)
convert input [e.g. a 2D iData object] into an iData_Sqw2D to give access to
the methods below.
Sqw = ddcs2Sqw(s)
convert a double differential neutron scattering cross section to a S(q,w) [Kf/Ki]
ddcs = Sqw2ddcs(s)
convert a S(q,w) to a double differential neutron scattering cross section [Kf/Ki]
spw = qw2phiw(s, lambda)
Convert a S(q,w) into a S(phi,w) iData (scattering angle)
sqt = qw2qt(s, lambda)
Compute S(q,tof) from S(q,w) for given wavelength [Angs]
[spt,spc] = qw2phi(s, lambda)
Compute S(phi,tof) from S(q,w) for given wavelength [Angs].
Also return the S(phi,channel) as 2nd arg.
sab = Sab(s, M, T)
Compute S(alpha,beta) [iData_Sab] from S(q,w) for given mass and temperature

d   = dos(s)
Compute the vibrational density of states.

t   = thermochemistry(s)
Compute and display thermochemistry quantities from the density of states.

m   = moments(s)
Compute the S(q,w) moments/sum rules (harmonic frequencies).

sym = symmetrize(s)
Extend the S(|q|,w) in both energy sides.

sb  = Bosify(s)
Apply the 'Bose' factor (detailed balance) to a classical data set.

s   = deBosify(sb)
Remove Bose factor (detailed balance) from an 'experimental/quantum' data set.

p   = parseparams(s)
Search for physical quantities in S(q,w) data set.

sab = Sab(s)
Convert to an S(alpha,beta) [iData_Sab] suitable for nuclear data bases (ENDF, etc).

xs  = scattering_cross_section(s)
Compute the total integrated scattering cross section

dr  = dynamic_range(s, Ei, angles)
Compute the dynamic range restricted to given incident energy and detector angles

sq  = structure_factor(s)
Compute the structure factor S(q)

[inc, multi] = incoherent(s, q, T, m, n)
Compute an estimate of the incoherent neutron scattering law in the gaussian approximation (Sjolander)

[coh] = coherent(inc, sq)
Compute an estimate of the coherent S(q,w) from an incoherent S(q,w) and a structure factor (Skold)

[gDOS,M]     = iData_Sab(s)
Compute the integrated multi-phonon DOS terms from an initial density of states (Sjolander)

saveas(s, filename, 'McStas'|'Sqw'|'inx'|'spe')
Save the S(q,w) as a McStas Sqw, INX or ISIS SPE file format

syntax:    sqw2d = iData_Sqw2D(s)  input:
s: can be a 2D iData or filename to generate a 2D Sqw object.

output: an iData_Sqw2D object```