ORCA Overview

ORCA also uses many ideas that were developed at the Center for Experimental Nuclear Physics and Astrophysics for the SNO Hardware Acquisition and Real-time Control (SHaRC) DAQ software that is used to read out the PMT array of the SNO experiment.
The ORCA software architecture is based on the Model-View-Controller (MVC) design pattern that is common in object-oriented design. In this case, the models are sets of independent object-oriented software modules that correspond directly to hardware objects, data acquisition tasks, control modules, or data analysis modules. The views are associated dialogs or user interface elements that only deal with displaying a model’s data or state. The controllers arbitrate between the models and the views by passing data from the models to the views and passing user interactions from the views back to the models. Just one model, view, and controller generally represent each piece of hardware, but in some cases models may have multiple views and controllers.
Each one of these objects is comprised of its own fully encapsulated data structures and support and diagnostic code. ORCA provides an application framework in which these software models can be connected together to represent systems of hardware, and can hence be thought of as being parts of an “Object-oriented Software Bus” (OSB), analogous to a standard hardware bus. This analogy is particularly useful when one of the objects represents a VME crate, for example, into which one can plug VME card objects.
A key design feature of ORCA is the design of the internal, acquired data stream and how this stream is written out for permanent storage. Each hardware object is responsible for writing out both its hardware parameter settings as well as the actual data it acquires. A supervisory data collection object controls which hardware objects are used in the experiment and the order and hierarchy of the read-out scheme. In this fashion a user can completely reconfigure the experimental hardware and the data read-out without rewriting any code or re-compiling the application.
ORCA has a typical mouse-controlled drag and drop graphical user interface that allows a user to select objects from an object catalog and drag them into a configuration window at run time. The following shows a screen shot of the main ORCA configuration dialog configured for use fairly complex experiment (the NCD experiment).