Abstract
The Spallation Neutron Source (SNS) at Oak Ridge National Laboratory currently holds the Guinness World Record as the world most powerful pulsed spallation neutron source. Neutrons scattered off atomic nuclei in a sample yield important information about the position, motions, and magnetic properties of atoms in materials.
A neutron scattering experiment usually involves sample environment control (temperature, pressure, etc.), mechanical alignment (slits, sample and detector position), magnetic field controllers, neutron velocity selection (choppers) and neutron detectors.
The SNS Data Acquisition System (DAS) consists of real-time sub-system (detector read-out with custom electronics, chopper interface), data preprocessing (soft real-time) and a cluster of control and ancillary PCs. The real-time system runs FPGA firmware and programs running on PCs (C++, LabView) typically perform one task such as motor control and communicate via TCP/IP networks.
PyDas is a set of Python modules that are used to integrate various components of the SNS DAS system. It enables customized automation of neutron scattering experiments in a rapid and flexible manner. It provides wxPython GUIs for routine experiments as well as IPython command line scripting. Matplotlib and numpy are used for data presentation and simple analysis.
We will present an overview of SNS Data Acquisition System and PyDas architectures and implementation along with the examples of use. We will also discuss plans for future development as well as the challenges that have to be met while maintaining PyDas for 20+ different scientific instruments.