Q.R. Ahmad, J.C. Beck, Y. Chan,* S.R. Elliott, M.A. Howe, M. Isaac,* R. Meijer Drees, F. McGirt,¤ A.W. Myers, T.D. Van Wechel and J.F. Wilkerson
Our group is responsible for providing the SNO data acquisition (DAQ) system which will be capable of reading out the signals from the nearly 9500 photomultiplier tubes used in SNO. The electronics and DAQ system must be able to handle modest background rates in excess of 1 kHz and burst rates in excess of 1 MHz. An additional goal is to keep the detector acquiring data essentially continuously throughout the life of the experiment, in case of a possible galactic supernova occurrence. The DAQ system is written in an object-oriented programming language (C++), supports the VME bus, and utilizes multiple VME embedded processors (Motorola MVME 167) for control of the experiment.
The DAQ software has been developed using an innovative approach that we term the Object Oriented Software Bus (OSB).1 It utilizes the current techniques of Object Oriented Software Development (OOSD) to develop a set of data acquisition and analysis software tools according to a common specification, in a manner that is analogous to the way computer hardware has been developed since the advent of the bus structures of minicomputers and microcomputers. The approach allows one to write independent object oriented programming (OOP) based software objects that correspond directly to hardware objects, acquisition tasks, and analysis tools. Software objects have been written for numerous CAMAC, GPIB, and VME based hardware modules. These software objects are then utilized in acquisition task objects to meet a specific experiment's requirements.
The SNO DAQ system supports the readout of the 9500 individual channels via 19 custom 9U 'SNO Crates' each containing 16 32-channel front-end cards and a crate trigger card. Each SNO Crate is controlled via SNO Crate translator/controller cards that connect the SNO Crate backplane to a 6U VME card located in a standard VME crate, termed an interface crate.
The interface crate contains additional SNO translator/controller cards as well as VME embedded processors directing readout of each crate. Event information is shipped from these crates via VME-to-VME controllers to a VME embedded processor located in the primary VME data crate where event building, data recording, and shipment of data to the surface is handled. We are currently developing code using Metrowerks' CodeWarrior C++ compiler and the Symantec TCL 1.1.3 class library.