[next page (Sect 2.7)] | [previous page (Sect 2.5)] | [index] | [top]
2.6 Extensions to the SNO DAQ software

Q.R. Ahmad, M.A. Howe, F. McGirt* and J.F. Wilkerson

The Sudbury Neutrino Observatory will use a data acquisition program that has been under development for several years by Frank McGirt and John Wilkerson. This program (SNO DAQ) is now undergoing extensive modifications here at NPL.

Written in C++, SNO DAQ runs on Macintosh computers. The object-oriented nature of C++ allows all possible operations associated with a particular hardware module to be encapsulated into an object class and for the hardware to have a corresponding software module that allows one complete control and testing of the functions supported by the hardware. A large number of VME, Camac, and NuBus based hardware modules are supported. Interactions between multiple hardware modules take place by way of software 'Tasks', which are also self-contained objects. Currently, 'Tasks' are hard-coded objects that must be compiled into the code by someone who is quite familiar with the object classes and C++ programming.

To overcome this limitation, the program is being converted into a data-flow model similar to the SControl1 and GORDO2 programs with a new user-interface that allows objects to be visually represented as icons. Data packets are directed from one object to another by drawing a line between the objects on screen using the mouse. The data packets are objects that contain either event data, header information, or run control information. Data processing objects developed include event filters, histograms, viewers and disk files. Complex hierarchies of interacting objects are constructed using container objects. The result is a dramatic improvement in the way that the user interacts with the program as well as an enhanced set of hardware development tools. Simple Tasks can be constructed at run time. In addition the user also has flexible control of data flow options.

Further upgrades include simplifying the process of adding new objects to the code. In the new version, a module is added by placing a configuration resource into a folder and registering the object itself in the code. The object's dialogs are automatically registered and the construction of the default configuration resource is done at run-time. While the addition of new modules must still be done by a programmer who is familiar with the code, it is much simpler than in the original version.

The SNO DAQ code is currently being tested and developed using the miniSNO facility at NPL.


* Los Alamos National Laboratory, Los Alamos, NM.
1 Nuclear Physics Laboratory Annual Report, University of Washington (1995) p. 57.
2 Nuclear Physics Laboratory Annual Report, University of Washington (1995) p. 89.
[next page (Sect 2.7)] | [previous page (Sect 2.5)] | [index] | [top]