Sqw_Bosify: apply the 'Bose' factor (detailed balance) to a classical data set. The initial data set should obey S(q,w) = S(q,-w), i.e. be 'classical'. The S(q,w) is a dynamic structure factor aka scattering function. Sqw_Bosify(Sqw, 0) makes a check of the input data set and returns. input: s: Sqw data set (classical, symmetric in energy, no T Bose factor) e.g. 2D data set with w as 1st axis (rows, meV), q as 2nd axis (Angs-1). T: when given, Temperature to use for Bose. When not given, the Temperature is searched in the object. The temperature is in [K]. 1 meV=11.605 K. type: 'Schofield' or 'harmonic' (default) or 'standard' conventions: omega = Ei-Ef = energy lost by the neutron omega > 0, neutron looses energy, can not be higher than Ei (Stokes) omega < 0, neutron gains energy, anti-Stokes Egelstaff, Eq (9.25) p189 S(q,-w) = exp(-hw/kT) S(q,w) S(q,w) = exp( hw/kT) S(q,-w) S(q,w) = Q(w) S*(q,w) with S*=classical limit for omega > 0, S(q,w) > S(q,-w) The semi-classical correction, Q, aka 'quantum' correction factor, can be selected from the optional 'type' argument: Q = exp(hw_kT/2) 'Schofield' or 'Boltzmann' Q = hw_kT./(1-exp(-hw_kT)) 'harmonic' or 'Bader' Q = 2./(1+exp(-hw_kT)) 'standard' or 'Frommhold' (default) The 'Boltzmann' correction leads to a divergence of the S(q,w) for e.g. w above few 100 meV. The 'harmonic' correction provides a reasonable correction but does not fully avoid the divergence at large energies. Bose factor: n(w) = 1./(exp(w*11.605/T) -1) ~ exp(-w*11.605/T) w in [meV], T in [K] References: B. Hehr, http://www.lib.ncsu.edu/resolver/1840.16/7422 PhD manuscript (2010). S. A. Egorov, K. F. Everitt and J. L. Skinner. J. Phys. Chem., 103, 9494 (1999). P. Schofield. Phys. Rev. Lett., 4, 239 (1960). J. S. Bader and B. J. Berne. J. Chem. Phys., 100, 8359 (1994). T. D. Hone and G. A. Voth. J. Chem. Phys., 121, 6412 (2004). L. Frommhold. Collision-induced absorption in gases, 1 st ed., Cambridge Monographs on Atomic, Molecular, and Chemical Physics, Vol. 2, Cambridge Univ. Press: London (1993). Example: s = Sqw_Bosify(s, 300); See also: Sqw_deBosify, Sqw_symmetrize, Sqw_dynamic_range, Sqw_scatt_xs (c) E.Farhi, ILL. License: EUPL.