Computing

Your local contact will provide you with the latest version of our package of Matlab macros upon the start of your beamtime, or you can request them earlier from your local contact. These macros provide the basic functionality for reading and displaying the detector frames and for example for azimuthal integration. A zip-file with these macros can be downloaded here as well. The macros are provided as-is without any guarantees or liability on our part. An introduction is available in the cSAXS notes (see under manuals). Besides the basic Matlab codes below you can find other packages for example to analyze and visualize orientation and degree of orientation of scanning SAXS, reconstruct and visualize SAS tensor tomography, and ptychography reconstruction code. The codes are provided "as they are" and without any guarantee of results, performance, or support. The user of the codes should always take responsibility to ensure the correctness of the results.

Note: If these codes, or subfunctions or parts of it, is used for research in a publication or if it is fully or partially rewritten for another computing language the authors and institution should be acknowledged in written form in the publication. For example "Data processing was carried out using the "cSAXS matlab package" developed by the CXS group, Paul Scherrer Institut, Switzerland." Variations on this text can be incorporated, upon discussion with the CXS group, if needed to more specifically reflect the use of the package, or function, for the published work. A publication that focuses on describing features, or parameters, that are already existing in the code should be first discussed with the authors.

Matlab base package

Basic functionalities for file reading and radial integration and plotting. Also provides a lot of functions used in the other packages.
For testing the macro package a CBF file as written by the PILATUS 2M control program camserver is available as e12612_1_00024_00000_00000.cbf. For comparison a JPEG file of the Matlab plot as displayed by image_show.m is available as well:

silver behenate.

Scanning SAXS package

Analysis and plotting of scanning SAXS, main orientation of scattering, degree of orientation. Please cite Bunk et. al. New J. Phys. 11, 123016 (2009). Uses the Matlab base package above.

SASTT package

Reconstruction of small-angle scattering tensor tomography (SASTT), which provides information about 3D anisotropic nanostructure within a bulk sample. Please cite Liebi et. al. Nature 527, 349 (2015) and Liebi et. al. Acta Cryst. A74, 12 (2018). Uses the Matlab base and scanning SAXS packages above.

LSQ-ML - Iterative least-squares maximum-likelihood ptychography solver

This source code provides an implementation of the LSQ-ML method described in Opt. Express 26, 3108 (2018) in a simple Matlab-based framework. The reference implementation includes an artificial data generator and implementations of the ePIE, ePIE-OPRP and difference-map codes that were used in the article. Note that this is not the cSAXS ptychography package (which is planned to be published here at a later date), but rather a simplified version intended to showcase the LSQ-ML algorithm.
The code is using Matlab-based GPU acceleration, however seamless fallback CPU option is available as well.