I. user-guide

Table of Contents
1. NSCLDAQ In a Nut Shell
1.1. Basics of Data Flow in NSCLDAQ
1.2. Pipeline Building, Run Control, and DAQ Modularization
1.3. Built-in Diagnostics
1.4. Extensibility and Openness
2. The Ring Buffer
2.1. Overview
2.2. Data Transfer and Flow Control
2.3. Proxy Rings, Ring Masters, and Network Transparency
2.3.1. Proxy Rings
2.3.2. The RingMaster server
2.4. Ring buffer utilities
3. NSCLDAQ Data Format : The Ring Item
3.1. Generic Ring Item Traits
3.2. The Body Header
3.3. The Ring Item Types
3.3.1. State Change Items
3.3.2. Text Items
3.3.3. Scaler Items
3.3.4. Event Data Items
3.3.5. Event count items
3.3.6. Data format
3.3.7. Event Builder Fragment
3.3.8. Event Builder Parameter
4. VMUSBReadout
4.1. Introduction
4.2. Basic Tenets of VM-USB Operation
4.3. Writing the Configuration Script
4.4. The Slow-Controls Subsystem
4.4.1. Using Remote Procedure Calls To Execute Stacks
4.5. Running the VMUSBReadout program
4.6. Understanding VMUSBReadout Output
4.7. Developing a Timestamp Extractor Library
4.7.1. Implementing a getEventTimestamp() function
4.7.2. Implementing the getScalerTimestamp() function
4.7.3. Implementing an onBeginRun() function
4.8. Extending the Supported Readout Hardware
4.8.1. Writing C++ device support software
4.8.2. Writing device support software in Tcl
4.9. Extending the slow controls subsystem
4.9.1. Writing slow control drivers in C++
4.9.2. Writing slow control drivers in Tcl
4.10. Pushing external data into the event stream
4.10.1. Specifying variables to be monitored.
5. CCUSBReadout
5.1. How the CCUSB readout framework works
5.2. Writing DAQ configuration files
5.3. Writing device support software
5.3.1. The driver onAttach method
5.3.2. The driver Initialize method
5.3.3. The driver addReadoutList method
5.3.4. Initializing the driver with the framework.
5.4. Tcl device driver support
5.4.1. Conceptual background
5.4.2. A sample snit Tcl CCUSB framework driver
5.4.3. A sample Incr-Tcl Tcl CCUSB framework driver
5.4.4. Using Tcl drivers in the DAQ configuration file.
5.5. The slow controls subsystem
5.6. Running CCUSBReadout
5.7. Writing C++ slow controls device drivers
5.7.1. Obtaining the sample driver and its Makefile
5.7.2. Modifying the sample driver and Makefile.
5.8. Writing Tcl slow controls device drivers
5.9. The ccusbcamac Tcl package
5.9.1. Incorporating ccusbcamac in your scripts.
5.9.2. Using ccusbcamac
6. ReadoutGUI & ReadoutShell
6.1. Principles of operation
6.2. Operating the user interface
6.2.1. The Menu bar
6.2.2. The Run Management segment
6.2.3. The Output Log window
6.2.4. The Status Bar
6.3. The event logger and ReadoutShell
6.4. Customizing the ReadoutShell
6.4.1. Environment variables
6.4.2. ReadoutCallouts.tcl
6.4.3. Integrating Tcl scripts
6.4.4. Libraries and Data source providers
6.4.5. Using the ReadoutGUI in your own container script
6.4.6. ReadoutGUI API packages
6.5. Remote control package
7. Event Builder
7.1. Introduction
7.2. Using the event builder
7.3. More detail on when the fragments are ouptutted
7.4. Fragments and Data Format
7.4.1. Anatomy of a fragment
7.4.2. Output Format
8. ScalerDisplay
8.1. What is the ScalerDisplay?
8.2. Why does it exist?
8.3. What does it do?
8.4. How to set up the ScalerDisplay
8.4.1. Single Readout Experiment Example
8.4.2. Two Readout Program Example
8.4.3. Run Summary Output of ScalerDisplay