NSCL DAQ Software Documentation

Table of Contents
I. introduction
1. Introduction
1.1. How does the ring buffer data acquisition system work
1.2. Overview of ring buffer utilities
1.3. Documentation roadmap
II. commands
2. The ringbuffer command
3. Ring piping utilities
4. Command line access to CAMAC via the SBS interface
5. Tcl access to the VME via the SBS interface
5.1. Incorporating Vme Tcl in your scripts
5.2. Sample programs that use the package
III. utilities
6. CAEN Firmware loaders
7. glom
7.1. Format of glom's output
8. unglom
9. ReadoutShell
9.1. Principles of operation
9.2. Operating the user interface
9.3. The event logger and ReadoutShell
9.4. Customizing the ReadoutShell
9.5. Remote control package
10. Epics Channel logging
11. Providing EPICS channel information to Tcl Servers
12. The epics display utility
epicsdisplay NSCLRingDAQ 10.0+ Ron Fox -- Display epics channels
13. cratelocator
14. CAEN V812 Constant Fraction Discriminator
15. N568B CAENnet shaping amplifier
16. VHS-40xxx SBS support.
17. The tcl server application
17.1. Tcl server package
18. VM/CCUSB Firmware loaders
19. Mesytec MCFD-16 Controls
19.1. Overview
19.2. Starting the GUI for USB communication
19.3. Starting the GUI for the RC-bus through an MxDC device
19.4. Saving and restoring state
20. Mesytec MSCF-16 Controls
20.1. Overview
20.2. Synchronization Paradigm
20.3. Starting the GUI for USB communication
20.4. Saving and restoring state
21. Wiener MDGG-16 Controls
21.1. Overview
21.2. How to use the MDGG16Control GUI
21.3. Saving and Restoring The State of the GUI Between Sessions
22. The Boot utility
22.1. Details of operation
23. Dumping events from ringbuffer or from file
23.1. Item dump formats and examples
24. Compatibility utilities
24.1. Format conversion with compatibilitybuffer
24.2. Writing event files with compatibilitylogger
24.3. Converting NSCLDAQ-V10.x data to NSCLDAQ-11.x data
24.4. Convenience scripts
24.5. BufferToRing
25. The state manager control panel
26. daqstart - Starting programs with logging and monitoring
27. DvdBurner - Using Tcl to burn runs to DVD
28. Utilities for burning data to DVD
29. The Event log program
30. Experiment Configuration utility
30.1. Starting the program and choosing a configuration
30.2. Defining, deleting and editing nodes
30.3. Creating, deleting and editing ring buffer definitions
30.4. Creating, deleting and editing program definitions
31. Filter framework
31.1. Overview
31.2. Getting Started
31.3. Defining a primitive filter
31.4. Building a composite filter
31.5. The main function
31.6. Building the filter program
32. The Scaler Display Program.
32.1. Running the scaler display program.
32.2. The configuration file
33. The ringselector application
34. The Scaler Display Client
35. Sequencing runs
35.1. Configuring the sequencer.
35.2. Using the sequencer.
36. The state manager
36.1. Application Programming Interfaces to the state manager
IV. libraries
37. Integer byte order conversion library
37.1. Using the conversion library in your code
37.2. Byte order signatures and conversion blocks
37.3. Data conversion
38. Ring master class library.
39. Networked ring buffer access
40. Ring Buffer Primitives
40.1. Incorporating ring buffer software
40.2. Overview and Examples of ring buffers in action.
41. The Tcl ring package
42. Shared memory
42.1. Overview of the API, and using it from within your C++ software
42.2. Compiling/Linking your software with the shared memory API
43. Access control and security
43.1. Incorporting the software into your code
43.2. Authenticators
43.3. Interactors
44. NSCL DAQ Thread Library
44.1. The thread and synchronization model
44.2. Incorporating the library into an application.
44.3. Using CGaurdedObject to implement synchronized methods
44.4. Thread safe queues (CBufferQueue).
44.5. Pointers to the reference material
45. Parsing and URIs
46. Event builder client API
46.1. C++ Client API
46.2. Incorporating the event builder client library
46.3. Connecting to the event builder.
46.4. Disconnecting from the event builder.
46.5. Sending data to the event builder.
46.6. The Event orderer/event builder API
46.7. Callbacks
47. Format of Event Data In Ring Buffers
47.1. The basic data formats
47.2. Selecting Data From a Ring Buffer
47.3. Incorporating the headers and libraries into your applications.
47.4. Generic ring data sinks
47.5. Creating ring items
48. S800 ReadoutCallouts
48.1. S800 Data acquisition system
48.2. Scope of the integration problem.
48.3. Using the S800 integration package
49. The NSCL Exception class library
49.1. Incorporating the library in your programs
49.2. Exception classes
50. C++ encapsulation of a Tcl API subset
51. SBS Base interface classes to the VME
51.1. The classes
51.2. Incorporating headers and libraries into your program.
52. Tcl CAENet package
53. The CES CBD 8210 Tcl CAMAC Package
53.1. Incorporating camac into your scripts
53.2. An overview of the use of the camac package
54. The Wienercamac Tcl package
54.1. Incorporating wienercamac in your scripts.
54.2. Using wienercamac
55. SBS VME Module level device support software
56. The ccusbcamac tcl package
56.1. Overview
56.2. A simple example
57. Tcl ring access package.
57.1. An overview of the Tcl ring access package.
57.2. Usage patterns
V. servers
58. The RingMaster server
58.1. The RingMaster Protocol
59. Service Port Manager.
VI. frameworks
60. The actions library
60.1. Introduction
60.2. How does it work?
60.3. Run Control and Command Execution
60.4. Examplified Usage of the Actions package
61. Event orderer and its user interface
61.1. Event orderer design philosophy.
61.2. Using the standard event orderer startup script
61.3. Writing an event orderer startup script
61.4. Event orderer packages
62. Event builder client framework
62.1. Application specific code for the event builder
62.2. Building event builder clients.
62.3. Running event builder clients
62.4. ringFragmentSource - a prepackaged client for ringbuffer data sources
63. Event builder Readout Callouts
63.1. API layer
63.2. EZBuilder
63.3. EVBC state manager callback bundle.
EVBC::start -- Start the event builder pipeline.
EVBC::stop -- Stop the event builder pipeline.
EVBC::reset -- Reset timestamp history
EVBC::flush -- Flush event builder event queues.
EVBC::startRingSource -- Start a ring fragment source for the event builder.
EVBC::startS800Source -- Start S800 data source
EVBC::initialize -- Initialize the EZBuilder layer.
EVBC::onBegin -- EZBuilder begin run actions
EVBC::onEnd -- EZBuilder end run actions.
Event builder callback bundle
Eventbuilder callback bundle -- Event builder callback bundle.
Event builder client framework -- Event builder cilent framework
EVB::handleFragment -- Submit event fragments.
EVB::inputStats -- Event builder input statistics
EVB::outputStats -- Get orderer output statistics
EVB::dlatestats -- Get the late fragment statistics.
EVB::onDataLate -- Bind scripts to data late events.
EVB::barriertrace -- Supply a script to invoke on barrier events.
EVB::source -- Create event source queues.
EVB::deadsource -- Mark a data source dead.
EVB::reviveSocket -- Revive all dead data sources associated with a socket
EVB::flush -- Empty all input queues.
EVB::reset -- Reset timestamp clocks.
64. Offline Event Builder and Orderer
64.1. Overview
64.2. Using the Offline EVB and Orderer
65. The SBS Readout framework
65.1. SBS Readout concepts
65.2. Obtaining and building the skeleton application
65.3. Modifying the skeleton application to meet your needs
65.4. Readout commands
65.5. Embedded Tcl server
65.6. Running a readout application
65.7. Using SBSReadout with the state manager
66. SBS Scripted Readout Framework
66.1. Introduction to the SBS Scripted Readout Framework
66.2. Writing a driver
66.3. Hybrid scripted readouts
67. Injecting variables into the USB data taking frameworks
68. CCUSB Readout framework
68.1. How the CCUSB readout framework works
68.2. Writing DAQ configuration files
68.3. Writing device support software
68.4. Tcl device driver support
68.5. The slow controls subsystem
68.6. Running CCUSBReadout
68.7. Writing C++ slow controls device drivers
68.8. Writing Tcl slow controls device drivers
68.9. The ccusbcamac Tcl package
68.10. Integrating CCUSBReadout with the statemanager
69. VMUSB readout
69.1. How the VMUSB readout framework works
69.2. Writing DAQ configuration files
69.3. Writing C++ device support software
69.4. Writing device support software in Tcl
69.5. The slow controls subsystem
69.6. Pushing external data into the event stream
69.7. Running VMUSBReadout
69.8. Using VMUSBReadout with the state/boot managers
VII. Reference Pages
I. 1compatibility
compatibilitybuffer -- Filter ring items to spectrodaq buffers
convert10to11 -- Filter converting NSCLDAQ10.x to NSCLDAQ11.x data.
compatibilitylogger -- Create spectrodaq formatted event log files.
eventlog-compat -- Provide event logger pipeline for use with ReadoutGUI.
spectcldaq -- Pipe data source for SpecTcl in spectrodaq buffer mode.
spectcldaq.server -- TCP/IP server of ring data in spectrodaq format.
BufferToRing -- Convert old buffered data to ring buffer format.
bufdump -- Dump NSCLDAQ event files earlier than version 10.0
II. 1daq
ringbuffer -- Manage ring buffers.
ringtostdout -- Transmit data from a ring buffer to stdout.
stdintoring -- Pipe stdin to a ring buffer.
frag2ring -- Filter flattened fragments to ring items.
glom -- Glue event fragments together into events
S800 Ring fragment data source -- Event builder ring fragment source from s800
teering -- Tee data to stdout and a ringbuffer.
unglom -- Break up an event file into event fragments
ReadoutShell -- Shell wrapper for readout programs.
ReadoutGUIOutputClient -- Readout gui output monitor client.
evttclsh -- Tcl interpreter that always runs an event loop
ccusbloader -- CC-USB Firmware loader
vmusbloader -- VM-USB Firmware loader
boot -- Start and stop experiment components.
dumper -- Produce a formatted dump of event data.
cpanel -- Control panel for state manager
daqstart -- Monitor essential programs
eventlog -- Record Event Data to Disk.
Scaler Display program  -- Display counts and rates in scalers.
ringselector -- Provide selected ring data to non NSCL DAQ aware clients
sclclient -- Maintain scaler state in a tclserver
tkdumper -- GUI Dump of ring buffer items.
III. 1epics
chanlog -- Write a set of channels to file
controlpush --  Push epics data into a Tcl Server (e.g. production readout).
IV. 1evb
EVB::BarrierStats::incomplete -- Display incomplete barrier statistics
EVB::BarrierStats::queueBarriers -- Displays per queue barrier statistics
EVB::BarrierStats::Summary -- UI element to summarize barrier statistics.
EVB::CallbackManager -- Object that manages callback sets.
EVB::connectionList -- List event builder connections
EVB::GUI procs -- Standard monitor UI procs.
EVB::inputStatistics::statusDisplay -- Widget to display input statitics
EVB::inputStatistics::queueStats -- Per queue input statistics widget
::EVB::inputStatistics::queueDisplay -- Display input queue statistics
EVB::inputStatistics::summaryDisplay -- Summary of input statistics.
EVB::lateFragments -- Late fragment statistics
EVB::lateSummary -- Widget to display summar of data late fragments.
::EVB::outputStatistics -- Complete output statistics widget
::EVB::outputSummary -- Summarize output statistics
::EVB::utility::sortedPair -- Key value pair widget
::EVB::utility::sortedWidget -- General key/widget sorted list
EventBuilder -- Event builder utility procs
Observer -- Support the Observer pattern
EvbOrderer -- Event orderer compiled commands.
V. 1tcl
cratelocator -- locate specific SBS VME crate controllers.
cesbcnaf -- CAMAC operation via a CES CAMAC interface
wienerbcnaf -- CAMAC operation via a Wiener VC32/CC32 board set
bcnaf -- bcnaf via SBS VME CAMAC interfaces
canev812control -- GUI for controlling CAEN V812 CFD modules
loadcfd -- Load settings in to a CAEN V812 CFD module.
loadshaper -- Load setttings into an N568 shaper via SBS/V288.
n568Control -- GUI for the n568 shaper.
vhqControl -- Control panel application for VHQ bias supply modules.
vhsPanel -- Canned VHS Control panel
SBS Vme Tcl package -- Provide access to VME crates to Tcl scripts.
DaqPortManager -- Manage TCP/IP service ports and advertise their allocations
tclserver -- Start a Tcl Server.
serverauth -- Control tcl server authorization.
ledph7106.tcl -- PH7106 Control application for CCUSBReadout
!ModuleName! -- Tabbed notebook for multiple GDG-8 controllers.
VMUSB vmetcl -- VME access via VM-USB for Tcl scripts.
dvdburn -- Command line tool to burn NSCLDAQ data DVDs.
burngui -- Graphical front end to dvdburn
VI. 1sbsReadout
Readout -- Start an event readout program.
VII. 1utilities
sbscaenupgrader -- CAEN's cvUpgrader for the SBS VME interface
vmusbcaenupgrader -- CAEN cvUpgrade ported to VM-USB interface
VIII. 3daq
CopyrightNotice -- Generate license/author credits.
cvt -- Integer byte order conversions
CRingMaster Ron Fox NSCLDAQ  -- RingMaster access.
CRingAccess -- Remote Ring Access
CRingBuffer -- Low level ring buffer primitives
CDAQShm -- class description
CAuthenticator -- Abstract base authenticator class.
CPasswordCheck -- Authenticate against a stored password.
CUnixUserCheck -- Authenticate against a unix user name and password.
CTclAccessListCheck -- Authenticate against a Tcl List.
CAccessListCheck -- Authenticate against a list of allowed credentials.
CHostListCheck -- Authenticate from a list of TCP/IP hosts
CInteractor -- Base class for security interactions.
CStringInteractor -- Provide an interactor that processes strings.
CFdInteractor -- Interact with file descriptor
CIOInteractor -- Separate prompt and input interactors.
Thread -- Abstract base class for thread objects.
Synchronizable -- Wait queue for threads
SyncGuard -- Provide Critical Regions, Monitors
CMutex -- C++ encapsulation of pthread mutexes.
CriticalSection -- Simple, safe critical section
CCondition -- Encapsulate POSIX condition variables.
CGaurdedObject -- Provide entry/exit guards for object critical regions.
CBufferQueue -- Templated class for safe inter-thread messaging.
URL -- Parse Uniform Resource Identifiers (URI)
CEvbClientApp -- Framework event builder client application.
CEVBClientFramework -- Event builder client framework.
CEventOrderClient -- Client of the event orderer
CRingItem -- Encapsulates an item in a ring buffer.
CRingScalerItem -- Encapsulate ring buffer scaler items.
CRingStateChangeItem -- Encapsulate a ring buffer state change item.
CRingTextItem -- Encapsulate ring items that are lists of text strings.
CPhysicsEventItem -- Response to trigger.
CRingPhysicsEventCountItem -- Provides statistics regarding the number of events produced.
CRingFragmentItem -- Encapsulate a EVB_FRAGMENT ring item
CUnknownFragment -- Event fragment likley not containing a ring item
CDataFomatItem -- Describe the format of a stream of ringitems.
CGlomParameters -- Reports event building parameters.
CAbnormaEndItem -- Abnormal end of run.
CRingSelectionPredicate -- Base class for predicates that select items from ring buffers.
CAllButPredicate -- Select all ring items except some.
CDesiredTypesPredicate -- Only accept specified ring item types.
DataFormat.h -- Format of ring items.
format Functions -- Functions to create ring items.
CDataSource -- Abstract base class of data source for ring items.
CRingDataSource -- Ringbuffer data source for ring items.
CFileDataSource -- Ring item data source from a file
CDataSourceFactory" -- Create data sources given a URI
CRingItemFactory -- Upcast ring items to specific ring item objects.
CDataSink -- Abstract base class for data sinks.
CFileDataSink -- Data sink to a disk file.
CRingDataSink -- Data sink that writes to a CRingBuffer
CDataSinkFactory -- Create an appropriate CDataSink object
CException -- Abstract base class for the exception class hierarchy.
CErrnoException -- Exceptions that wrap the Unix errno
CRangeError -- Reports and exception for a value out of allowed range.
CStateException -- Exception for invalid state transitions.
CStreamIOError -- I/O error on a C++ stream.
CURIFormatException -- Report errors in universal resource identifiers (uri)s.
CMonitorException -- Exceptions for synchronization class abuse.
CInvalidArgumentException -- Report invalid function arguments.
CTCLApplication 3 --  Base class for TCL/Tk applications.
CTCLException --  Class for reporting exceptional conditions in Tcl applications via the C++ try/catch mechanism.
CTCLInterpreter --  Encapsulate a Tcl interpreter.
CTCLInterpreterObject 3 --  Base class for objects that are associated with a Tcl Interpreter.
CTCLList --  Provide access to Tcl List parsing.
CTCLObject --  Encapsulate Tcl Dual ported objects.
CTCLObjectProcessor --  Abstract base class to encapsulate the Tcl object command interface exposed by Tcl_CreateObjCommand.
CTCLVariable --  Encapsulate Tcl interpreter variables.
CTCLProcessor --  Provide argc, argv extension commands to Tcl.
CTCLChannel --  Provide a C++ abstraction wrapper for Tcl Channels.
CTCLCommandPackage --  Group several related Tcl command extensions and common services they may require together.
CTCLCompatibiltyProcessor --  Adaptor between CTCLOjbectProcessor and CTCLProcessor.
CTCLFileHandler --  Base class for building object oriented Tcl File event handlers.
CTCLHashTable --  Object oriented interface to Tcl's hash table functions.
CTCLHashTableItem --  Encapsulation of an entry in a Tcl Hash table as encapsulated in CTCLHashTable
CTCLHashTableIterator --  Iterator for visiting all elements of a CTCLHashTable
CTCLIdleProcess --  Allows the establishment of an executable object that can be scheduled to be invoked when the Tcl/Tk intperpreter has no events that require processing.
CTCLPackagedCommand --  Base class for a command that lives in a CTCLCommandPackage
CTCLResult --  Provide an object oriented interace to the Tcl interpreter result.
CTCLString --  Provide a wrapper for the Tcl_DString data type and its API
CTCLTimer --  Abstract base class for C++ objects attached to timer events.
CTCLLiveEventLoop -- Run Tcl with event loop.
CTCLChannelCommander -- Accept commands on a Tcl channel from the event loop.
CTCLStdioCommander -- Event driven command input on stdin/stdout
CTCLServer -- Listener for a Tcl server.
CTCLTcpServerInstance -- Channel commander that is a server instance for CTCLServer
CTCLObjectPackage -- Provide common functionality for a set of related commands.
CTCLPackagedObjectProcessor -- Base class for commands living in a CTCLObjectPackage
CItemConfiguration -- Hold a configuration
CConfigurableObject -- Base class for objects tht have a configuration.
CVMEInterface -- Class wrapping of the SBS VME library.
CSBSBit3VmeInterface -- Provide access to SBS/Bit3 driver parameters.
CVME<T> -- Reference counted pointer like object to VME address segments.
CVMEModule -- Provide a base set of services for a VME module driver class.
CMmapError -- Report errors in memory mapping requests.
CADC2530 -- Support the Hytec NADC 2530 Peak sensing ADC.
CAENcard -- Support for the CAEN 32 bit digitizers
CBD8210 -- CES CBD 8210 CAMAC branch highway driver (obsolete)
CCAENV1x90 -- Support for the CAEN V1190 and V1290 multihit, complicated TDC.
CCAENV560 -- Support the CCAENV560 non-latching scaler.
CCAENV830 -- Support driver for the CAEN V820/V830 latching scaler module.
CCAENV977 -- Software support for the CAEN V977 I/O register.
CCAMACScalerLRS2551 -- Support software for the LeCroy LRS 2551 12 channel CAMAC scaler
CCAMACScalerLRS4434 -- High level support software for the 32 channel LeCroy LRS 4434 CAMAC scaler module
CCAMACStatusModule -- Provide computer busy status support for the BiRA CAMAC NIM out module.
CCAMACTrigger -- Trigger module for the CES CBD 8210 VME CAMAC Parallel Branch Highway Driver
CCamac -- Manages CAMAC memory maps.
CCamacModule -- Provide support for a generic CAMAC module.
CCamacNimout -- Provides low level support for the BiRa CAMAC Nim output module.
CCrateController -- Encapsulation of a BiRa 1302 CAMAC controller via CES CBS8210.
CSIS3600 -- Support for the SIS 3600 VME latch module.
CSIS3820 -- Low level support for SIS 3820 32 channel latching scaler module
CScaler -- Abstract base class for reading scalers into a vector
CStatusModule -- Abstract base class for status modules.
CTrigger -- Abstract base class for triggers
CVME -- Pointer like object for accessing the VME
CVMEScalerLRS1151 -- High level support for the LeCroy LRS 1151 VME scaler.
CVMEStatusModule -- Implement a status module using the CAEN V262 module.
CVMETrigger -- VME trigger class based on the CAEN V262 I/O module.
CVMEptr -- 
CaenIO -- Support for the CAEN V262 I/O register module.
CMmapError -- Exception that can be thrown in the event of memory mapping errors.
CNimout -- Low level support for the BiRa VME nim output module
CVmeModule -- Convenience base class for implementing VME module support
CSIS3300 -- Low Level support for the SIS 3300 Flash ADC module
CPortManager -- Provide a C++ interface to the server port manager daemon.
CPortManagerException -- Report errors conditions in port manager transactions
CFilter -- Base class for primitive filters
CCompositeFilter -- A composite filter composed of primitive filters
CZMQEventLoop -- Event loop for fd's and zmq sockets
classname -- Base class for state monitor classess
CStateMonitor -- State monitor with callbacks.
IX. 3ccusb
addtcldriver -- Register Tcl command ensemble as a device module
ad811 -- Support the Ortec AD811 ADC
c1205 -- Manage CAEN C1205 QDC modules.
c257 -- Manages the C257 scaler module
ccusb (command) -- Configure and read scalers from CC-USB module
lrs2228 -- Manages the LRS2228 TDC
lrs2249 -- Manage LeCroy 2249 QDC modules
lrs2551 -- Manage LRS 2551 modules
marker -- Create/manipulate marker instances
ph7xxx -- Define Phillips ADC/TDC/QDC modules
stack -- Create and configure CC-USB stacks.
Module -- Create and manipulate slow control device instances
CamacCrate -- group modules into a crate
LeCroy4300B -- control a LeCroy 4300B FERA
LeCroy4434 -- control a LeCroy 4434 Scaler
LeCroy2551 -- control a LeCroy 2551 Scaler
ULMTrigger -- control a LeCroy 2637 ULM running trigger firmware
Slow controls protocol -- TCP/IP slow control protocol
CCCUSB -- Provide access to a CC-USB device.
CCCUSBusb -- Provide access to a connected CC-USB device.
CCCUSBRemote -- Provide remote access to a CC-USB device through CCUSBReadout's slow-controls server.
CCCUSBReadoutList -- Create lists of CAMAC commands for CC-USB controllers.
CConfigurableObject -- base class for devices that have a configuration
cccusb -- Swig wrapping of the CCCUSB C++ class.
cccusbreadoutlist -- Tcl wrapping of CCCUSBReadoutList
CModuleFactory -- Creates specific slow control drivers
CModuleCreator -- Object creational ABC for CModuleFactory
CControlHardware -- Base class (ABC) of a slow controls driver
CControlModule -- Configuration and wrapper for CControlHardware
CCCUSBControl -- A slow-controls driver for receiving and executing remote commands
ccusbcamac -- Tcl Script CAMAC access CCUSBReadout slow-controls server
ph7106Widget -- Control panel for Ph7106 LED
X. 3rdogui
Introduction -- ReadoutGUI API introduction
bells -- Provide audible alarm bells.
Configuration -- Configuration variable management
DAQParameters -- Cluster of configuration parameters for data acquisition
DataSourceManager -- Data source manager and its API
DataSourceUI -- Data source parameter user interface
Diagnostics -- Provide error warning and message dialogs
ExpFileSystemConfig -- Configuration cluster for event directory tree
ReadoutGui -- ReadoutGui elements.
ReadoutGUIPanel -- ReadoutGUI Convenience commands
RunStateMachine -- Run control state machine
StateManager -- Save restore program state variables.
ui -- ReadoutGUI graphical user interface elements.
OutputWindowSettings -- Prompter for OutputWindow settings.
StatusArea -- Status area megawidget
XI. 3provider
Introduction -- Data source providers
parameters -- Describe data source parameterization
start -- Start a data source
check -- Check Data Source Liveness
stop -- Stop data sources
begin -- Start data taking in a data source
pause -- Pause a data taking run (optional)
resume -- Resume a Paused Run
end -- End a Data Taking Run
init -- On-demand initialize procedure
capabilities -- Get Provider Capabilities Dict
SSHPipe -- SSHPipe data source provider.
s800 -- s800 data source provider.
Delay -- Inserts a delay between data provider begins
XII. 3python
PortManager -- Python bindings to port manager
State manager utilities -- State Manager utilities
StateMonitor -- State transition dispatching
XIII. 3vmusb
adc -- Create/configure CAEN V775, V785, V792, V862 modules.
caenchain -- Aggregate adc modules into CBLT readout chains.
vmusb -- Control VM-USB resources and read internal scalers
sis330x -- Driver for SIS3300/1 FADC
sis3820 -- Create and configure SIS 3820 scaler modules
v830 -- Create and configure CAEN V830 32 channel scalers.
v977 -- Create and configure CAEN V977 Input registers
sis3804 -- Create and configure SIS 3804 scalers
hira -- Pair up to 2 XLMs and FADC for HiRA
hytec -- Support the Hytec NADC 2530 adc module.
tcl driver support -- tcl driver support functions.
madc -- Acquire events from Mesytec MADC32 ADC.
madcchain -- Support CBLT chains of MADC32 modules.
madcscaler -- Support dead-time counters in MADC32 as scalers.
mase -- Support for XLM with MASE firmware.
tdc1x90 -- Provide support for the CAEN V1x90 TDC family.
v1729a -- CAENV1729a waveform digitizer.
stack -- Compose and configure VM-USB readout stacks.
CVMUSB -- Interface with VM-USB controller.
CVMUSBReadoutList -- Construct VM-USB stacks
CVMUSBRemote -- Execute lists remotely on VMUSBReadout
CConfigurableObject -- Configuration database
CControlHardware -- Base class for slow controls drivers
cvmusb -- SWIG Tcl wrapping of CVMUSB
cvmusbreadoutlist -- SWIG wrappers for CVMUSBReadoutList
Module -- control config command: create/configure modules.
watch -- Watch variables (slow controls)
delay -- Insert a stack delay.
CBDCamacBranch -- run a CAMAC branch through a CES CBD8210 bridge
CBDCamacCrate -- group CBD8210 compatible modules into a crate
CBDLeCroy4300B -- control a LeCroy 4300B FERA on a CAMAC branch
CBDLeCroy4434 -- control a LeCroy 4434 Scaler on a CAMAC branch
CBDLeCroy2551 -- control a LeCroy 2551 Scaler on a CAMAC branch
CBDULMTrigger -- control a LeCroy 2637 ULM running trigger firmware on a CAMAC branch
XLMTimestamp -- control an XLM running 64-bit latching scaler firmware
marker -- Insert a constant into the VMUSB data stream
XLMFERA -- control an XLM72V running firmware to readout FERA via ECL ports
AXLM72ScalerControl -- slow-controls driver for controlling an XLM72 running 32-ch scaler firmware
XLM72ScalerGUI -- Diagnostics GUI for controlling an XLM72 running 32 ch scaler firmware
AXLM72 -- TCL base class for JTech XLM72 family of devices
AXLM72Scaler -- Driver for an XLM72 running 32-channel scaler firmware
controlClient -- Object to interact with VM/CCusb control server
USB Control operations -- connect, controlOp, listUSBControlServers
slowControlsPrompter -- Prompt for slow controls server host and port
gdgcontrol -- Slow control client of Wiener/JTec MGGD8
gdgwidget -- Widget to control/display GDG-8.
V6533Driver -- Driver for CAEN V6533 HV modules
XIV. 3tcl
TCL Ring package. Ron Fox NSCLDAQ  -- Access Rings from tcl.
RingStatus -- Widget that shows ring status.
s800 -- s800 Readout Callouts module
caennet -- Access CAENnet from Tcl scripts.
camac -- Provide access to CES CBD8210 CAMAC to Tcl scripts
wienercamac -- Tcl Script CAMAC access via VC32/CC32 boardset.
CFD812 -- low level control of the CAEN V812 CFD
caenv812gui -- Megawidget control panel for the CAEN V812 CFD
n568b -- Support package for the CAEN N568B shaper.
n568Panel -- Control panel megawidget for N568 shaping amplifier
vhq -- Low level Tcl access to iSEG VHQ2xxx units.
vhqPanel -- Control widget for iSeg vhq2xx VME bias supply.
iSegVhs -- SBS support for VHS 404 modules.
VhsWidgets -- User interface components for VHS 404 power supplies.
portAllocator -- Tcl API for the DaqPortManager daemon.
TclServer -- Embeddable Tcl Server script object
DvdBurner -- Burn NSCL Data to DVD
ring --  Tcl ring buffer access package.k
sequencer --  Provide a ReadoutGui plugin for nscldaq 8.1 and later that can automate several data taking runs.
statemanager -- Tcl interface to state manager
XV. 3sbsReadout
CBusy -- Abstract base class for Busy module management.
CCAENV262Busy -- Concrete busy class for the CAEN V262 input module.
CCAENV262Triger -- Trigger module with CAEN V262
CCompoundEventSegment -- Container for other event segments
CDocumentedPacket -- Encapsulate event data in a packet that is documented.
CEventPacket -- Encapsulate an event segment in a documented packet.
CEventSegment -- Base class for all event segments.
CEventTrigger -- Abstract base class for triggers.
CExperiment -- Encapsulate the experiment.
CInvalidPacketStateException -- Exception thrown by documented packets.
CNullTrigger -- A trigger that never fires.
CReadoutException -- Base class for readout specific exceptions
CScalerBank -- Container for individual Scaler objects.
CTimedTrigger -- CEventTrigger that fires periodically
CV977Busy -- Concrete busy class using the CAEN V977 module
CV977Trigger -- Concrete Trigger class using CAEN V977 module.
RunState -- Encapsulate important state of the software.
CScaler -- Base class for scaler readout classes
module -- Create list and delete scripted readout modules.
Module Subcommands -- Subcommands recognized by all modules
readout -- Maintain list of modules to readout
caenv775 -- CAENV775 module type
caenv785 -- CAENV775 module type
caenv792 -- CAENV792 module type
caenv830 -- CAEN V830 scaler support
packet -- Scripted readout packet encapsulator
sis3300 -- Scripted Readout SIS 3300 support.
v1x90 -- Scripted readout support for CAEN V1190/V1290 TDC
CDigitizerModule -- Scripted readout base class for module support.
CConfigurationParameter -- Configuration parameters
SConfigurableObject -- Scripted Readout Configuration database
CModuleCreator -- Scripted readout base class for module creators
CScriptedSegment -- Scripted readout event segment
CScriptedScalers -- Scaler class that is scriptably configured.
XVI. 5daq
eventorderer -- Event orderer protocol
XVII. 5tcl
caen812configfile -- Format of configuration files for CAENV 812 software.
n568configfile -- N568 shaper configuration file
vhqconfig --  Config file for
XVIII. 5vmusb
VMUSB slow controls protocol -- VMUSB Slow controls protocol
List of Tables
9-1. Event logger environment variables
9-2. Experiment file systems environment variables
9-3. SSHPipe prompter environment variables
54-1. Wiener CC32 addressing convention
List of Figures
9-1. ReadoutShell's state diagram
9-2. ReadoutShell's GUI
9-3. The Eventlog settings dialog
9-4. Readout GUI Directory tree
19-1. The MCFD16Control Graphical User Interface for USB
19-2. MCFD16Control Graphical User Interface for MxDC-RCbus
20-1. The MSCF16Control Graphical User Interface for USB
21-1. MDGG16Control Graphical User Interface
30-1. experimentConfiguration utility initial display
30-2. Empty host definition table
30-3. A filled in host table
30-4. Experiment editor empty ring table
30-5. Rings defined in the experiment configuratino editor.
30-6. Empty program table.
30-7. Program definition dialog.
30-8. Filled in program definition
30-9. Filled in program definition editor.
36-1. Experiment (State manager) State Diagram
64-1. The Offline Orderer's job configuration interface
List of Examples
2-1. Adding ringbuffer's directory to bash's search path:
2-2. Adding command paths to csh
5-1. Appending the NSCLDAQ Tcl Package repository to Tcl's search path
5-2. Appending NSLCDAQ's TclPackage repository to Tcl's search path
5-3. Requesting the VME Tcl package be loaded.
5-4. Using VME Tcl to locate all 2530 modules
8-1. Using unglom and glom to re-build events
9-1. Custom ReadoutGUI startup script
17-1. Using serverauth to authorize a node
23-1. Dumping data from the ring buffer named 0400x on spdaq22
23-2. Dumping data from the event file segment /user/0400x/complete/run-1234-00.evt
23-3. State Transition items
23-4. Text List items
23-5. Incremental Scalers dump
23-6. Event count items
23-7. Physics Event items
23-8. Unknown item types
24-1. Converting a ring buffer event file with compatibilitybuffer
24-2. Converting ring buffer data to a 8Kword (16Kbyte) old style event file
24-3. Using compatibilitylogger to convert event files
24-4. convert10to11 - converting event files
24-5. Attaching SpecTcl to ring buffers in compatibility mode
26-1. Logging errors and informing on exit
27-1. Requesting the DvdBurner package
27-2. Writing runs to DVD using DvdBurner
27-3. Writing all runs to DVD
29-1. Taking data from a remote ring
32-1. Scaler Definition files
33-1. Dumping state changes and sampled event data with od
33-2. Dumping all but packet types
33-3. Attaching SpecTcl
35-1. Loading the sequencer package
36-1. Tcl client of the state manager
36-2. C++ client for the state manager.
36-3. Monitoring the state manager in Python
36-4. Command line state changer
37-1. Including the cvt header
37-2. Compiling a C or C++ source file that includes cvt.h
37-3. A makefile rule that builds a C++ program using the cvt package
37-4. Creating a DaqConversion
38-1. Including the header
38-2. Compiling code
38-3. Linking code to the library
39-1. A sample ring specification in URI form
39-2. Substituting local host for the hostname in URI's
39-3. Including the header
39-4. Compiling code that uses CRingAccess
39-5. Linking code that uses CRingAccess
40-1. Compilation line for ring buffer primitives
40-2. Including the ring buffer primitives header
40-3. Linking to the ring buffer primitives
40-4. Sample ring buffer consumer
40-5. A sample Ring Buffer producer program
41-1. Incorporating the ring package in your scripts
42-1. Shared memory library example
42-2. Compiling a C++ source that includes daqshm.h
42-3. Linking C++ object files that use the daqshm library
43-1. Compilation switches for the security includes
43-2. Link switches for the security library
43-3. Boilerplate DAQ Authorization code
44-1. The life of a thread
44-2. Why synchonization is needed
44-3. Using SyncGuard to implement a monitor
44-4. Compiling and linking NSCLDAQ threaded software
44-5. Using CGaurdedObject
44-6. Sending data to a CBufferQueue
44-7. Consumer of data from a CBufferQueue
45-1. Sample URI library program
45-2. Building urltst.cpp
46-1. Connecting to the event builder as a data source.
46-2. Closing an event builder connection
46-3. Starting the event builder
46-4. Establishing the connection callback
46-5. Setting up the disconnect callback
47-1. Including a ring item class
47-2. Telling the compiler where to find Ring Item headers
47-3. Linking the ring item format libraries
48-1. A ReadoutCallouts.tcl for the s800
49-1. Catching CException and exiting
54-1. Enabling a module Lam with wienercamac
57-1. Incorporating the ring access package into a Tcl script
57-2. Simple usage of the Tcl Ring access package.
57-3. Setting up a ring readout thread in Tcl
58-1. The CONNECT message format
58-2. Format of the DISCONNECT message
58-3. Format of the LIST command
58-4. Format of the REGISTER command
58-5. Format of the UNREGISTER message
58-6. Format of the REMOTE message
61-1. The standard startup script explained
62-1. CEVBClientApp definition
62-2. The CEVBRingClientApp class definition.
62-3. The CEVBRingClientApp initialize and shutdown methods.
62-4. The CEVBRingClientApp dataReady method.
62-5. The EVBRingClientApp getEvents implementation.
62-6. Configuring the event builder client framework
62-7. S800 timestamp extractor (s800timestamp.c
63-1. Using the EVBC state manager callback bundle
65-1. Passing the ring buffer to the construction of an Event segment.
65-2. Creating Events
65-3. Obtaining the SBS readout skeleton
65-4. Script to attach SBSReadout to the state manager
66-1. Scripted readout module command for a CAEN V775
66-2. Scripted readout readout command
67-1. The watch command.
68-1. Creating and configuring devices
68-2. Configuring an event stack
68-3. Setting up a scaler stack
68-4. Obtaining the ccusb driver development kit
68-5. Using a user written CCUSB driver
68-6. A snit CCUSB device driver module
68-7. CCUSB device support example writtin in Incr Tcl
68-8. DAQ config script fragment with tcl drivers.
68-9. Obtaining the sample CCUSB slow controls driver
68-10. Headers for the CCUSB sample slow controls driver
68-11. CCUSB Slow control driver class definition
68-12. The constructor and destructor
68-13. CCUSB Slow controls driver OnAttach
68-14. CCUSB Slow controls driver initialize method
68-15. CCUSB Slow controls driver Update
68-16. CCUSB Slow controls driver Set method
68-17. CCUSB slow controls Get method
68-18. CCUSB Slow controls clone method
68-19. Module creator for the CCUSB Sample slow controls driver
68-20. CCUSB Slow control driver initialization function
68-21. CCUSB Slow controls driver Skeleton Makefile
68-22. CCUSB Tcl slow controls driver skeleton
68-23. CCUSB Tcl slow controls driver construction
68-24. CCUSB Tcl slow controls initialization
68-25. CCUSB Tcl Slow Controls Update
68-26. CCUSB Tcl Slow controls driver Set
68-27. CCUSB Tcl Slow Control driver Get
68-28. CCUSB Slow controls Tcl driver option validation
68-29. Using the Tcl sample driver in a configuration script.
68-30. Enabling a module Lam with ccusbcamac
68-31. Script to incorporate ReadoutStateHook
69-1. Creating and configuring devices
69-2. Configuring an event stack
69-3. Configuring a VM-USB scaler stack
69-4. Obtaning the VM-USB device driver development kit
69-5. Using a user written VMUSB driver
69-6. The template driver Initialize method
69-7. Template Driver addReadoutList method
69-8. The VMUSB driver Xxxx_Init function.
69-9. Itcl VM-USB device driver
69-10. A Snit VM-USB driver.
69-11. USing a Tcl VM-USB driver.
69-12. Control driver headers
69-13. Control driver class definition
69-14. Control driver constructor
69-15. Control driver onAttach method
69-16. Control driver Update
69-17. Control driver Set method.
69-18. Control driver Get method
69-19. Control driver clone method
69-20. Control driver creator
69-21. Control driver initialization
69-22. Control drivers - structure of a Tcl driver
69-23. Tcl control driver Initialize method
69-24. Tcl control driver Update method
69-25. Tcl control driver Set method
69-26. Tcl control driver Get method
69-27. Tcl control drer addMonitorList method
69-28. Tcl control driver processMonitorList method
69-29. Tcl control driver getMonitoredData method
69-30. Tcl control driver validation
69-31. Specifying VM-USB monitored variables
69-32. Script to incoprorate ReaodutStateHook into VMUSBReadout
1. Uncompressing NSCLDAQ-10.x data and converting it to NSCLDAQ-11 format
1. Attaching SpecTcl to a ring buffer in compatibility mode
1. Running spectcldaq.server
2. Connecting to spectcldaq.server
1. Dumping all data from an old style event file
2. Dumping all data but event data from an old style event file
3. Dumping all but physics data from several event files
1. Sample output from ringbuffer status
1. making hex dumps of data from a ring buffer.
1. Using stdintoring
1. Dumping state changes and sampled event data with od
2. Dumping all but packet types
3. Attaching SpecTcl
1. Starting sclclient
1. Viewing a set of channel values interactively
2. Writing a set of channels to a file
3. Appending a set of channels to a file
4. Piping a set of channels to a program for processing
1. Supporting an observer in a snit type or widget
2. Supporting multiple observers in a snit type or widget
1. Creating a coypright notice on stderr
2. Creating an author credit on stderr
1. Using CRingAccess to connect to a local ring.
2. Using CRingAccess to connect to a remote ring
1. Message filter predicate
1. Calling CStringInteractor specific members
1. Selecting sampled event from a ring.
1. Constructing a scaler item from an item gotten from a ring
1. Creating a begin run state transition item
1. evttclsh
1. Creating a CAENcard geographically
2. Setting a TDC to common stop mode
3. Reading out a CAEN 785 e.g.
1. Initializing branch 0
1. Using the LRS 1151 in the production readout framework.
1. Creating a device driver via private derivation
2. Creating a device driver via inclusion
1. Allocating a port with the port manager
2. Listing the port allocatiosn on a system.
1. Catching a CPortManagerException
1. AD811 configuration file example
1. LRS2228 creation example
1. The lrs2551 command
1. Using the list command to construct pedestals
2. Sample ph7xxx commands
1. Example of the stack command.
1. A simple crate setup containing a single scaler
1. A simple setup of one FERA
1. A simple setup of one scaler
1. A simple setup of a single scaler
1. A simple setup of a single ULM
1. Listing CC-USB Serial numbers (Tcl).
2. Creating a CCCUSB object by serial number (Tcl).
1. bell example
1. Sample use of the DialogWrapper
1. A do nothing RunstateMachine callout bundle
1. Getters and setters for StateManager
1. Sample ADC commands
1. Using the caenchain command.
1. Configuring an SIS3820 scaler module
1. Configuring a CAEN V830 scaler
1. Configuring the SIS 3804 scaler
1. Sample Hytec 2530 configuration
1. Sample use of madc command
1. Building Stacks
1. A simple delay example
1. Sample setup of two camac crates on branch 0
1. Sample setup of a single LeCroy 2551
1. Sample setup of a few FERAs
1. Sample setup of a single scaler
1. Simple setup of a single scaler
1. Setup of a single ULM trigger module
1. Simple setup of a single timestamp module
1. Simple setup of a single timestamp module
1. Simple setup of the AXLM72ScalerControl
1. Example ctlconfig.tcl entry
1. Hooking update methods to recurring timer
1. Allocating a service port in Tcl
2. Listing allocated ports in Tcl
1. Action script example
2. Sequencer column configuration file
1. Creating and registering a V262 as a busy:
1. Deep iteration of CCompondEventSegment elements
2. Deep visitation of CCompoundEventSegment elements
1. Using the CDocumentedPacket class
1. Catching readout specific examples
1. Deep visitation in CScalerBank containers
1. Outputting the state of the run
1. Sample configuration file
1. Sample configuration file
1. Sample configuration file