32. SESANS calculation routines

sasmodels.sesans

Conversion of scattering cross section from SANS (I(q), or rather, ds/dO) in absolute units (cm-1)into SESANS correlation function G using a Hankel transformation, then converting the SESANS correlation function into polarisation from the SESANS experiment

Everything is in units of metres except specified otherwise (NOT TRUE!!!) Everything is in conventional units (nm for spin echo length)

Wim Bouwman (w.g.bouwman@tudelft.nl), June 2013

class sasmodels.sesans.SesansTransform(z: ndarray, SElength: float, lam: float, zaccept: float, Rmax: float, log_spacing: float = 1.0003)

Bases: object

Spin-Echo SANS transform calculator. Similar to a resolution function, the SesansTransform object takes I(q) for the set of q_calc values and produces a transformed dataset

SElength (A) is the set of spin-echo lengths in the measured data.

zaccept (1/A) is the maximum acceptance of scattering vector in the spin echo encoding dimension (for ToF: Q of min(R) and max(lam)).

Rmax (A) is the maximum size sensitivity; larger radius requires more computation time.

_H: ndarray = None
_H0: ndarray = None
__class__

alias of type

__delattr__(name, /)

Implement delattr(self, name).

__dict__ = mappingproxy({'__module__': 'sasmodels.sesans', '__doc__': '\n    Spin-Echo SANS transform calculator.  Similar to a resolution function,\n    the SesansTransform object takes I(q) for the set of *q_calc* values and\n    produces a transformed dataset\n\n    *SElength* (A) is the set of spin-echo lengths in the measured data.\n\n    *zaccept* (1/A) is the maximum acceptance of scattering vector in the spin\n    echo encoding dimension (for ToF: Q of min(R) and max(lam)).\n\n    *Rmax* (A) is the maximum size sensitivity; larger radius requires more\n    computation time.\n    ', 'q': None, 'q_calc': None, '_H': None, '_H0': None, '__init__': <function SesansTransform.__init__>, 'apply': <function SesansTransform.apply>, '_set_hankel': <function SesansTransform._set_hankel>, '__dict__': <attribute '__dict__' of 'SesansTransform' objects>, '__weakref__': <attribute '__weakref__' of 'SesansTransform' objects>, '__annotations__': {'q': 'np.ndarray', 'q_calc': 'np.ndarray', '_H': 'np.ndarray', '_H0': 'np.ndarray'}})
__dir__()

Default dir() implementation.

__doc__ = '\n    Spin-Echo SANS transform calculator.  Similar to a resolution function,\n    the SesansTransform object takes I(q) for the set of *q_calc* values and\n    produces a transformed dataset\n\n    *SElength* (A) is the set of spin-echo lengths in the measured data.\n\n    *zaccept* (1/A) is the maximum acceptance of scattering vector in the spin\n    echo encoding dimension (for ToF: Q of min(R) and max(lam)).\n\n    *Rmax* (A) is the maximum size sensitivity; larger radius requires more\n    computation time.\n    '
__eq__(value, /)

Return self==value.

__format__(format_spec, /)

Default object formatter.

__ge__(value, /)

Return self>=value.

__getattribute__(name, /)

Return getattr(self, name).

__getstate__()

Helper for pickle.

__gt__(value, /)

Return self>value.

__hash__()

Return hash(self).

__init__(z: ndarray, SElength: float, lam: float, zaccept: float, Rmax: float, log_spacing: float = 1.0003) None
classmethod __init_subclass__()

This method is called when a class is subclassed.

The default implementation does nothing. It may be overridden to extend subclasses.

__le__(value, /)

Return self<=value.

__lt__(value, /)

Return self<value.

__module__ = 'sasmodels.sesans'
__ne__(value, /)

Return self!=value.

classmethod __new__(*args, **kwargs)
__reduce__()

Helper for pickle.

__reduce_ex__(protocol, /)

Helper for pickle.

__repr__()

Return repr(self).

__setattr__(name, value, /)

Implement setattr(self, name, value).

__sizeof__()

Size of object in memory, in bytes.

__str__()

Return str(self).

classmethod __subclasshook__()

Abstract classes can override this to customize issubclass().

This is invoked early on by abc.ABCMeta.__subclasscheck__(). It should return True, False or NotImplemented. If it returns NotImplemented, the normal algorithm is used. Otherwise, it overrides the normal algorithm (and the outcome is cached).

__weakref__

list of weak references to the object

_set_hankel(SElength: ndarray, lam: float, zaccept: float, Rmax: float) None
apply(Iq: ndarray) ndarray

Apply the SESANS transform to the computed I(q).

q: ndarray = None

SElength from the data in the original data units; not used by transform but the GUI uses it, so make sure that it is present.

q_calc: ndarray = None

q values to calculate when computing transform