NSCL DAQ Software Documentation


Table of Contents
I. user-guide
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.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
4. NSCLDAQ Manager subsystem (new in 12.0)
4.1. Introduction
4.2. Managed Objects and Configuration
4.3. Running an Experiment With The Manager
4.4. Running Readout Software With the Manager
4.5. Using the NSCLDAQ Event Builder With the Manager
4.6. Composing experiment configurations from existing pieces
5. VMUSBReadout
5.1. Introduction
5.2. Basic Tenets of VM-USB Operation
5.3. Writing the Configuration Script
5.4. The Slow-Controls Subsystem
5.5. Running the VMUSBReadout program
5.6. Understanding VMUSBReadout Output
5.7. Developing a Timestamp Extractor Library
5.8. Extending the Supported Readout Hardware
5.9. Extending the slow controls subsystem
5.10. Pushing external data into the event stream
6. CCUSBReadout
6.1. How the CCUSB readout framework works
6.2. Writing DAQ configuration files
6.3. Writing device support software
6.4. Tcl device driver support
6.5. The slow controls subsystem
6.6. Running CCUSBReadout
6.7. Writing C++ slow controls device drivers
6.8. Writing Tcl slow controls device drivers
6.9. The ccusbcamac Tcl package
7. Non stack VMUSB Readout framwork $DAQBIN/VMUSBnostackReadout
7.1. Running the VMUSB no stack readout program
7.2. Supported Event Modules
7.3. Supported Scaler modules
8. ReadoutGUI & ReadoutShell
8.1. Principles of operation
8.2. Operating the user interface
8.3. The event logger and ReadoutShell
8.4. Customizing the ReadoutShell
8.5. Remote control package
9. Event Builder
9.1. Introduction
9.2. Using the event builder
9.3. More detail on when the fragments are ouptutted
9.4. Fragments and Data Format
9.5. Using the Event Builder With The Manager
10. EVBLite - light event building
10.1. What is EVBLite
10.2. evbtagger - making event builder fragments from ring items.
10.3. The evblite Tcl package.
11. ScalerDisplay
11.1. What is the ScalerDisplay?
11.2. Why does it exist?
11.3. What does it do?
11.4. How to set up the ScalerDisplay
12. Examples (Beginning 11.2-009).
12.1. ReadNSCLDAQFiles - analyze NSCLDAQ data (released 11.2-009)
13. mvlcgenerate and using the Mesytec MVLC VME controller
13.1. Preparing your experiment to use the MVLC.
13.2. Reference manual for fribdaq-readout
13.3. RING ITEMS PRODUCED
13.4. BUILDING mesytec-mvlc WITH THE OPTIONAL fribdaq-readout PROGRAM
13.5. Extending the generator with loadable C++ generators
13.6. Tcl Drivers
13.7. XLM-72 based modlues
II. simple-setups
14. A Simple VMUSBReadout Experiment Tutorial
14.1. Introduction
14.2. Setting up the Electronics
14.3. The Configuration Files
14.4. Running VMUSBReadout
14.5. Understanding the Output
14.6. Developing a Tailored SpecTcl
14.7. The VMUSBSpecTcl Alternative
14.8. Using SpecTcl
14.9. Conclusion
15. Simple V775 readout
15.1. Introduction
15.2. Setting up the Electronics.
15.3. Creating the Readout program
15.4. Creating the tailored SpecTcl
15.5. Running the system.
15.6. Taking the example further.
15.7. The full readout program.
15.8. The full SpecTcl program.
16. Using NSCLDAQ with a CAEN V785 Peak-Sensing ADC and CAEN V262 IO Register
16.1. PREFACE
16.2. The electronics
16.3. Setting up the software
16.4. The dumper program
16.5. Running the Readout Program
16.6. Interpreting the dumper output
III. device-support
17. Mesytec MCFD-16 Controls
17.1. Overview
17.2. Starting the GUI for USB communication
17.3. Starting the GUI for the RC-bus through an MxDC device
17.4. Configuration menu
17.5. Saving and restoring state
18. Mesytec MSCF-16 Controls
18.1. Overview
18.2. Synchronization Paradigm
18.3. Starting the GUI for USB communication
18.4. Saving and restoring state
19. Wiener MDGG-16 Controls
19.1. Overview
19.2. How to use the MDGG16Control GUI
19.3. Saving and Restoring The State of the GUI Between Sessions
20. XLM72 Gate Delay Control GUI
20.1. Introduction
20.2. Setting up an XLM72 as a gate delay generator for remote control
20.3. Launching the XLM72GateDelayControl
20.4. Overview of Functionality
20.5. The Saved File
21. ULM Trigger GUI
21.1. Configuring CCUSBReadout for Remote Communication
21.2. Launching the ULMTriggerGUI
21.3. Overview of Basic Operation
22. Sample programs for the SIS3316/SIS3316-2 digitizer.
IV. commands
23. Command line access to CAMAC via the SBS interface
V. utilities
24. Ring piping utilities
25. NSCLDAQ Logbook facility
25.1. Components of the NSCL logbook system
25.2. Setting up a logbook for use.
25.3. Using the logbook in an experiment
25.4. Making logbooks available to collaborators
25.5.
26. glom
26.1. Format of glom's output
27. unglom
28. The dumper program
28.1. Item dump formats and examples
29. The Event log program
30. The tcl server application
30.1. Tcl server package
31. CAEN V812 Constant Fraction Discriminator
32. N568B CAENnet shaping amplifier
33. VHS-40xxx SBS support.
34. cratelocator
35. Tcl access to the VME via the SBS interface
35.1. Incorporating Vme Tcl in your scripts
35.2. Sample programs that use the package
36. VM/CCUSB Firmware loaders
37. xlmload firmware loader for XLM modules via VM-USB controllers.
38. Sequencing runs
38.1. Configuring the sequencer.
38.2. Using the sequencer.
39. The ringselector application
40. Compatibility utilities
40.1. Format conversion with compatibilitybuffer
40.2. Writing event files with compatibilitylogger
40.3. Converting NSCLDAQ-V10.x data to NSCLDAQ-11.x data
40.4. Convenience scripts
40.5. BufferToRing
41. Providing EPICS channel information to Tcl Servers
42. The epics display utility
43. Epics Channel logging
VI. servers
44. The RingMaster server
44.1. The RingMaster Protocol
45. Service Port Manager.
VII. libraries
46. Ring master class library.
47. Networked ring buffer access
48. Ring Buffer Primitives
48.1. Incorporating ring buffer software
48.2. Overview and Examples of ring buffers in action.
49. The Tcl ring package
50. Data Format Support Software
50.1. The basic data formats
50.2. Selecting Data From a Ring Buffer
50.3. Incorporating the headers and libraries into your applications.
50.4. Generic ring data sinks
50.5. Creating ring items
51. DAQ Manager APIs
51.1. Manager Configuration Database API
51.2. Manager REST client API.
51.3. Manager User Interface API
52. Event builder client API
52.1. C++ Client API
52.2. Incorporating the event builder client library
52.3. Connecting to the event builder.
52.4. Disconnecting from the event builder.
52.5. Sending data to the event builder.
52.6. The Event orderer/event builder API
52.7. Callbacks
53. TclRingBuffer Tcl package.
53.1. What is it?
53.2. How do I use it?
53.3. Using TclRingBuffer in event driven software
54. The ccusbcamac tcl package
54.1. Overview
54.2. A simple example
55. SBS VME Module level device support software
56. Tcl CAENet package
57. The CES CBD 8210 Tcl CAMAC Package
57.1. Incorporating camac into your scripts
57.2. An overview of the use of the camac package
58. The Wienercamac Tcl package
58.1. Incorporating wienercamac in your scripts.
58.2. Using wienercamac
59. Integer byte order conversion library
59.1. Using the conversion library in your code
59.2. Byte order signatures and conversion blocks
59.3. Data conversion
60. NSCL DAQ Thread Library
60.1. The thread and synchronization model
60.2. Incorporating the library into an application.
60.3. Using CGaurdedObject to implement synchronized methods
60.4. Thread safe queues (CBufferQueue).
60.5. Pointers to the reference material
61. Access control and security
61.1. Incorporting the software into your code
61.2. Authenticators
61.3. Interactors
62. Parsing and URIs
63. Shared memory
63.1. Overview of the API, and using it from within your C++ software
63.2. Compiling/Linking your software with the shared memory API
64. The Os class
65. io
66. Plotchart
67. TCPIP classes
67.1. Library concepts
67.2. Incorporating the socket library
68. C++ encapsulation of a Tcl API subset
69. The NSCL Exception class library
69.1. Incorporating the library in your programs
69.2. Exception classes
70. Parallel programming framework
70.1. Concepts and classes
70.2. Transport implementations
70.3. Compiling and linking parallel programs
71. Transformer
71.1. User shared libraries for Transformer
71.2. Building the use shared library
72. SoftwareTrigger
73. EventEditor
VIII. frameworks
74. Injecting variables into the USB data taking frameworks
75. Event orderer and its user interface
75.1. Event orderer design philosophy.
75.2. Using the standard event orderer startup script
75.3. Writing an event orderer startup script
75.4. Event orderer packages
76. Event builder client framework
76.1. Application specific code for the event builder
76.2. Building event builder clients.
76.3. Running event builder clients
76.4. ringFragmentSource - a prepackaged client for ringbuffer data sources
77. Event builder Readout Callouts
77.1. Introduction
77.2. API layer
77.3. EVBC state manager callback bundle.
77.4. EZBuilder
78. The SBS Readout framework
78.1. SBS Readout concepts
78.2. Obtaining and building the skeleton application
78.3. Modifying the skeleton application to meet your needs
78.4. Readout commands
78.5. Embedded Tcl server
78.6. Running a readout application
79. Filter framework
79.1. Overview
79.2. Getting Started
79.3. Defining a primitive filter
79.4. Building a composite filter
79.5. The main function
79.6. Building the filter program
80. The actions library
80.1. Introduction
80.2. How does it work?
80.3. Run Control and Command Execution
80.4. Exemplified Usage of the Actions package
81. Support for CAEN Nextgen DPP-PHA digitizers
81.1. Introduction
81.2. Getting Data
81.3. Event structure
81.4. Configuring SpecTcl
81.5. Software structure
82. Software Triggering NEW IN 11.4
82.1. Creating classification libraries.
82.2. The SoftwareTrigger and EventFilter programs
IX. 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.
compatibilitybuffer -- Pipe stdin to a ring buffer.
mg_mkconfig -- Create NSCLDAQ Manager ConfigurationDatabase
mg_config -- Launcher for all manager configuration editors.
mg_cfgcontainers -- Configure the containers known to the NSCLDAQ manager
mg_cfgprogram -- Configure manager program definitions
mg_stateedit -- Edit DAQ Manager state machine
mg_seqedit -- Edit DAQ manager sequences
mg_cfgEvlog -- Configure DAQ manager event logging.
mg_kvedit -- Edit the DAQ Manager Key/Value Store
mg_authedit -- Edit NSCLDAQ manager authorization database.
mg_monitorOutput -- Monitor the Output from Managed Programs.
rdo_RunControl -- DAQ Manager Run Control Panel.
EVBMonitor -- Monitor Event Builder Statistics via REST Interface.
mg_startloggers -- Start Event Managed Event Loggers
rdo_runFromKv -- Set Run Number from Key Value STore
rdo_titleFromKv -- Set Readout Title From the KV 'title' Value.
rdo_control -- Control a Readout via ReadoutREST
mg_startManager -- Start the DAQ Manager
mg_shutdown -- Shutdown the DAQ manager.
mg_kvget -- Get the value of a manager KV store key.
mg_container_wizard -- Make the creation of container definitions simpler
mg_readout_wizard -- Create managed readouts
mg_logwizard -- Wizard to create event loggers for managed experiments
mg_program_wizard -- Wizard to create programs for managed experiments
mg_import -- Import an experiment definition
ReadoutShell -- Shell wrapper for readout programs.
evbwizard -- Set up readout GUI and event builder.
lg_create -- Create a new logbook database.
lg_current -- Set the current logbook database
lg_ls -- Show current logbook.
lg_addperson -- Add a person to the logbook.
lg_lspeople -- List the people defined in the logbook.
lg_mkshift -- Create a logbook shift
lg_mgshift -- Manage shifts and memberships
lg_selshift -- Select the current shift
lg_kvstore -- Manipulate the key value store.
lg_wrnote -- Write logbook notes
lg_browse -- Logbook browser
lg_print -- Convert part or all of the logbook to PDF.
lg_lspeople -- List people that are defined
frag2ring -- Filter flattened fragments to ring items.
EVBShutdown -- Stop Orderer Started with EVBRest
EVBRest -- Run Event Builder Orderer With REST Interface
glom -- Glue Ordered Fragments Into Events
Event builder client framework -- Event builder cilent framework
RingSourceMgr -- A callout bundle that spawns ringFragmentSource processes.
glom -- Glue event fragments together into events
evbtagger -- Filter to add fragment headers
ringFragmentSource -- Provide Fragments To EventBuilder From Ring Buffers.
unglom -- Break up an event file into event fragments
ScalerDisplay  -- Display counts and rates in scalers.
dumper -- Produce a formatted dump of event data.
eventlog -- Record Event Data to Disk.
VMUSB V812 control -- Adapt CAENV812GUI to the VM-USB readout
gdgpanel -- Tabbed notebook for multiple GDG-8 controllers.
xlmload -- Load firmware into XLM modules.
ccusbloader -- CC-USB Firmware loader
vmusbloader -- VM-USB Firmware loader
ringselector -- Provide selected ring data to non NSCL DAQ aware clients
tkdumper -- GUI Dump of ring buffer items.
offlinereglom -- Offline event rebuilder.
Unglom (note capital U) -- Break up event file into fragment flie
reglom -- Rebuild events offline
timecheck -- Check for out of order timestamps in event files
evttclsh -- Tcl interpreter that always runs an event loop
DDASReadout -- Read data from XIA digitizer modules.
ddasReadout -- Run DDASReadout and an associated sorter.
ddasSort -- Sort data obtained using `DDASReadout`.
ringdiagnostics --  Diagnose ring data flow bottlenecks
mvlcgenerate -- Generate config files for the mvlc fribdaq-readout program
mvlc_xlmload -- Connect to and MVLC and load firmware for an XLM-72
ring_monitor -- Monitor ring throughput statistics
statsview -- View ringbuffer statistics in a system
SoftwareTrigger -- Classify events for later filtering in the software trigger.
EventFilter -- 
Transformer -- Add extensions to fragments of event built data
EventEditor -- Edit event fragment bodies.
FullEventEditor -- Edit the entire body of an event built event.
SoftwareTrigger -- Classify event for EventFilter.
EventFilter -- Filter classified events.
III. 1epics
controlpush --  Push epics data into a Tcl Server (e.g. production readout).
chanlog -- Write a set of channels to file
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.
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.
V. 1tcl
DaqPortManager -- Manage TCP/IP service ports and advertise their allocations
lsservices -- List advertised services
tclserver -- Start a Tcl Server.
serverauth -- Control tcl server authorization.
ledph7106.tcl -- PH7106 Control application for CCUSBReadout
canev812control -- GUI for controlling CAEN V812 CFD modules
loadcfd -- Load settings in to a CAEN V812 CFD module.
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
loadshaper -- Load setttings into an N568 shaper via SBS/V288.
n568Control -- GUI for the n568 shaper.
vhsPanel -- Canned VHS Control panel
vhqControl -- Control panel application for VHQ bias supply modules.
cratelocator -- locate specific SBS VME crate controllers.
SBS Vme Tcl package -- Provide access to VME crates to Tcl scripts.
epicsdisplay -- Display epics channels
VI. 1sbsReadout
Readout -- Start an event readout program.
VII. 1utilities
vmusbcaenupgrader -- CAEN cvUpgrade ported to VM-USB interface
VIII. 3daq
CRingMaster -- RingMaster access.
CRingAccess -- Remote Ring Access
CZCopyRingBuffer -- Provide zero copy access to low level ring buffers.
CRingBuffer -- Low level ring buffer primitives
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
CDataFormatItem -- 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
CRingBufferChunkAccess -- Provides zero copy, low level consumer access to ring buffers
LIBUSB1 INTRO -- Wrappers for userspace USB library.
USBException -- Report errors from libUSB1
USB -- Encapsulate low level USB context
USBDeviceInfo -- Provide information about a USB device.
USBDevice -- I/O object for a USB device
XXUSBUtil -- Utility methods for JTEC/Wiener XXUSB controllers
LogBook -- Top Level Logbook C++ API
LogBookPerson -- Encapsulate a person registered in a logbook.
LogBookShift -- Encapsulates shifts in logbook databases
LogBookRun -- Encapsulates runs from logbooks.
LogBookNote -- Encapsulate logbook notes.
fragment.h -- Define event builder fragment structures.
CEvbClientApp -- Framework event builder client application.
CEVBClientFramework -- Event builder client framework.
CEventOrderClient -- Client of the event orderer
FragmentIndex -- Iterator for event built data.
CPortManager -- Provide a C++ interface to the server port manager daemon.
CPortManagerException -- Report errors conditions in port manager transactions
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
CFilter -- Base class for primitive filters
CCompositeFilter -- A composite filter composed of primitive filters
CFilterMain -- Ring item filter application class.
cvt -- Integer byte order conversions
Thread -- Abstract base class for thread objects.
CSynchronizedThread -- Thread with synchronized initialization
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.
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.
URL -- Parse Uniform Resource Identifiers (URI)
CopyrightNotice -- Generate license/author credits.
io -- Binary I/O operations.
Os -- Operating system interfaces.
CDAQShm -- class description
io::CBufferedOutput -- Simple binary buffered output class with flush.
CRingBlockReader -- ABC for reading blocks of ring items from a source.
CRingFileBlockReader -- CRingBlockreader that reads from file.
CElapsedTime -- Subsecond measurement of elapsed times.
CSocket -- Encapsulation of a socket file descriptor.
CTCPBadSocketState -- class description
CTCPConnectionFailed -- Exception thrown for TCP/IP connection failures.
CTCPConnectionLost -- Exception thrown when connection to peer is lost
CTCPNoSuchHost -- CTCPNoSuchHost
CTCPNoSuchService -- Exception thrown if a nonexistent service is referenced
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.
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.
pixieplugin -- Support dynamic configuration of Pixie-16 modules via DDASReadout Server.
Dig2Device -- Low Level Access To Digitizers
VX2750Pha -- Provide compile time checked API to CAEN Nextgen digitizers DPP-PHA
VX2750PHAModuleConfiguration -- Encapsulate module configuration for CAEN Nextgen digitizers
VX2750TclConfig -- Tcl scripted configuration.
TclConfiguredReadout -- Event Segment configured with Tcl
VX2750EventSegment -- Event segment for single VX2750 DPP-PHA module
VX2750MultiTrigger -- Manage readout triggers.
CProcessor -- Abtract base class for a CSP process
CProcessingElement -- Abstract base class for a CSP processing element
CParallelWorker -- Base class for a worker that receives fanned out data.
CTransport -- Abstract base class for data transport objects.
CSender -- Encapsulate a transport to send data.
CReceiver -- Encapsulates a transport to receive data
CNullTransport -- Null transport for testing
CTestTransport -- Transport class for test purposes.
CClientRegistry -- Registry of clients.
CFanoutTransport -- Transport to fanout data to several workers.
CFanoutClientTransport -- Client for a fanout transport
CRingItemTransport -- Base class for ring item transports.
CRingBufferTransport -- Transport for ring items to or from ring buffers.
CRingItemFileTransport -- Transport ring items to and from files.
CRingItemTransportFactory -- Create and appropriate ring item transport
CZMQTransport -- Base class for ZeroMQ transports
CZMQClientTransport -- ZeroMQ transport that does a connect.
CZMQServerTransport -- ZeroMQ transport that does a listen.
CZMQRouterTransport -- ZeroMQ transport that's a ROUTER fanout.
CZMQDealerTransport -- Peer, receiver for CZMQRouterTransport(3daq)
CDataSinkElement -- Forward data to some sink.
CDataSourceElement -- Fan out a data source without transformations
CRingItemZMQSourceElement -- Fanout ring items from some data source.
CRingItemMarkingWorker -- Strategy pattern for classifying ring items
CRingItemSorter -- Re-sort a stream of ring items by timestamp
CThreadedProcessingElement -- Run a processing element ina thread.
CZMQRingItemThreadedWorker -- ZeroMQ Threaded worker for ZeroMQ
CZMQRingItemSourceThread -- Provide a thread that routes ring items from a source
CCommunicatorFactory -- Create transports for an underlying communication scheme.
CZMQCommunicatorFactory -- Communicator factory for ZeroMQ
CCommunicatorFactoryMaker -- Create communication factories.
CMPITransport -- Base class for transports using MPI for communication.
CMPIFanoutTransport -- Fanout data over MPI to multiple workers.
CMPIFanoutClientTransport -- Worker side of a fanout transport (client).
CRingItemMPIDataSource -- Fanout clumps of ring items.
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. 3evb
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::registerRingSource -- Register a ring fragment source to the RingSourceMgr.
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.
EVBC::configParams -- Configure orderer behavior.
Eventbuilder callback bundle -- Event builder callback bundle.
XI. 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
ReadoutGUIAppLauncher -- Simplify the process of adding application launcher buttons to a ReadoutGUI
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
ReadoutGUIOutputClient -- Readout gui output monitor client.
multilogger -- Log data from multiple ring buffers
XII. 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
XIII. 3python
Container -- Provide access to the container part of managed experiment configuration databases
EventLog -- Python3 API for the Eventlogger part of the managed expeiment configuration file database.
Program -- Provide access to the Program part of FRIB managed experiment definition database
LogBook -- Python bindings to LogBook Api.
LogBook.Person -- Python class encapsulating Log Book people.
LogBook.Shift -- Encapsulate logbook shifts for python
LogBook.Run -- Encapsulate runs and their transitions for Python
LogBook.Note -- Encapsulate notes for python
PortManager -- Python bindings to port manager
pidtocommand -- Convert a PID into its command string
nscldaqutils -- Provide a set of utilities for NSCLDAQ
XIV. 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
sis3300 -- Simplified sis3300 support.
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.
mtdc -- Mesytec 32/34 channel TDC
mqdc -- Support Mesytec MQDC-32 modules
madcchain -- Support CBLT chains of Mesytec MxDC32 family of 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.
mdpp32qdc -- Mesytec MDPP-32 module with QDC firmware
mdpp16qdc -- Mesytec MDPP-16 module with QDC firmware
mdpp32scp -- Mesytec MDPP-32 module with SCP firmware
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
sis_vmusb_interface -- Use SIS module software over VMUSB
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
v1495sc -- CAEN V1495 with Scaler firmware
sis3316 -- Support for the SIS3316 digitizer
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
VMUSB VME access -- Provide Tcl VME access via VMUSB or control server
controlscript -- Virtual slow controls module to execute TCL scripts
readoutscript -- Virtual driver to execute TCL scripts
XV. 3mvlcgen
sis3804 -- Create and configure SiS 3804 VME scaler modules
sis3820 -- Configurea Struck (SIS) 3820 latching scaler.
adc -- Manage CAEN V785, V775 and V792 digitizers
v830 -- Support the CAEN V830 latching scaler
caenchain -- Bulk readout of adc modules in a chain.
delay -- Add a delay to the readout stack
madc -- Support Mesytec MADC32 devices
madcchain -- Chain block readout of MADc32, MQDC32 and MTDC32 modules
madcscaler -- Read MADC32 performance counters
marker -- Insert a 32 bit marker in the data
mdpp16qdc, mdpp32qdc -- Suport the Mesytec MDPP16 and MDPP32 with QDC firmware
mdpp32scp -- Support for Mesytect MDPP32 with peak sensing firmware
mqdc -- Support for MESYTEC MQDC32 module
mtdc -- Provide support for Mesytec MTDC32 module
hytec -- Support hytec NADC 2530 module
stack -- Group modules into readout 'stacks'.
v1495sc -- Use CAEN V1495 with scaler firmware
v1729a -- Support for the CAEN v1729a waveform digitizer
tdc1x90 -- Support the CAEN V1290 and V1190 TDC family
v977 -- Support the CAEN V977 input/coincidence register
XLMTimestamp -- XLM with timstamp firmware
ACAENV1290 -- Special purpose Tcl CAEN V1290 driver
ACAENV795 -- Tcl Driver for CAEN V785 fixed initialization
ACrdcXLM72 -- Provide support for the XLM72 with the S800 CRDC Firmware
AGD16XLM72 -- Support XLM72 running 16 channel gate and delay generator firmware.
ALevel3XLM72 -- Support the MoNA/Sweeper level 3 trigger XLM7s fpga
AMesytecMADC32 -- Support for REA3 diganostics use of Mesytec MADC32
APpacXLM72 -- Provide support for XLM72 with PPAC readout firmware
ATimeStampXLM72 -- Use XLM72 with timestamp firmware
sis3300 -- Tcl driver for the SIS3300/3301 FADC without HiRA firmware
CReadoutHardware -- Base class for mvlcgenerate compiled code drivers
DeviceCommand -- Base class for mvlcgenerate device commands
CReadoutModule -- Encapsulate a code generator and its configuration.
CVMUSB -- Standin class for VMUSBReadout's CVMUSB class
CVMUSBReadoutList -- Stand in for VMUSBReadout's CVMUSBReadoutList
TCLConfigParser -- Base class for mvlcgenerate configuration parser
MVLCCOnfigParser -- Provide MVLC specific TCLConfigParser class
XVI. 3tcl
TCL Ring package. -- Access Rings from tcl.
getRingUsage -- Return list of ringbuffers and usage statistics
ringExists -- Determine if a ringbuffer exists
waitForRing -- Wait for a ring to exist with a timeout
containers -- DAQ Manager Containers Database Package.
programs -- API For the DAQ Manager Program Database
sequence -- States, Sequence, Transitions API
kvstore -- Access the manager configuration's key value store
eventloggers -- Define Event Logging for the NSCLDAQ Manager.
auth -- Manager Authorization System
stateclient -- REST client of manager state machine
programstatusclient -- REST Client for Manager /Programs Domain.
kvclient -- Client To Manager's REST Key Value Store Service
loggerrestclient -- Client to Manager's Event Log REST Interface
ReadoutRESTClient -- Client for Readout REST servers
ReadoutStatistics -- Display readout statistics (VIEW)
ReadoutParameters -- Display/Set Readout Parametesrs (VIEW)
ReadoutState -- Show Readout State and Request Transitions (VIEW)
ReadoutUI -- Combined Readout Control Panel (REST VIEW).
ssh -- Run programs on an ssh pipe.
logbook -- Access Logbooks from Tcl
logbookinstance -- Logbook API instance object.
personinstance -- Encapsulate a logbook person for Tcl scripts
shiftinstance -- Encapsulate a shift for Tcl scripts
runinstance -- Encapsulate logbook runs for Tcl scripts
noteinstance -- Tcl encapsulation of a note
logbookadmin -- High level logbook interface
logbookbundle -- Automate logging transitions in ReadoutGui
lg_noteutilities -- Utilties for dealing with notes
lg_utilities -- Utilties for Tcl logbook procssessing.
EVBRestUI -- EVentBuilder REST Client View classes
EVBRESTClient -- REST Client for Event Builder Statistics
EVBRestControllers -- Controllers for MVC Event Builder Statistics Packages
evblite::evblite -- Encapsulste EVBLite instances
TclRingBuffer -- Tcl ring buffer consumer package
portAllocator -- Tcl API for the DaqPortManager daemon.
TclServer -- Embeddable Tcl Server script object
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
iSegVhs -- SBS support for VHS 404 modules.
VhsWidgets -- User interface components for VHS 404 power supplies.
vhq -- Low level Tcl access to iSEG VHQ2xxx units.
vhqPanel -- Control widget for iSeg vhq2xx VME bias supply.
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.
sequencer --  Provide a ReadoutGui plugin for nscldaq 8.1 and later that can automate several data taking runs.
plotcontainer -- Plotchart XY plot wrapper
marker -- Manage markers on a plotchart plot.
Process -- Simplified asynchronous pipeline handling
TclSourceFilter -- Extract blocs mathing a regexp from a script
Utils -- Tcl namespace with useful utility procs.
wait -- Wait/reap for subprocess completion
Pipe -- Make a unix pipe
ppid -- Get parent process id.
Orphan -- Run script when the process is orphaned
FrameManager -- Make one of a set of widgets visible.
FrameSequencer -- Manages a sequence of widgets (like a wizard e.g.).
RingStatus -- Widget that shows ring status.
ScaleControl -- Megawidget intended for axis scale control
TransientLabel -- Label widget that transforms to default.
XVII. 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
XVIII. 5daq
Manager REST -- DAQ Manager REST Specification
DAQ manager database schema -- Document database tables for manager.
Container Description File -- Describe containes to Manager configuration container wizard
Readouts REST -- REST specification for Readouts
Readout GUI Remote control protocol --  Documents the protocol used by the ReadoutGUI's remote control server.
Logbook Schema -- Describe schema of logbook databases.
Event Builder REST -- Event Builder Statistics REST Protocol
eventorderer -- Event orderer protocol
XIX. 5tcl
caen812configfile -- Format of configuration files for CAENV 812 software.
n568configfile -- N568 shaper configuration file
vhqconfig --  Config file for
XX. 5vmusb
VMUSB slow controls protocol -- VMUSB Slow controls protocol
List of Tables
3-1. Ring Item Top-Level Memory Layout
3-2. Body Header
3-3. Ring Item With Body Header
3-4. Ring Item Without Body Header
3-5. Ring Item Types
3-6. Predefined State Change Body Layout
3-7. Predefined Text Item Body Layout
3-8. Predefined Scaler Item Body Layout
3-9. Predefined Physics Event Count Body Layout
3-10. Predefined Data Format Body Layout
3-11. Predefined Glom Information Body Layout
8-1. Event logger environment variables
8-2. Experiment file systems environment variables
8-3. SSHPipe prompter environment variables
9-1. Fragment header
9-2. Body of Built PHYSICS_EVENT
51-1. Default Manager State Machine
58-1. Wiener CC32 addressing convention
81-1. Format of event body
1. State transition values
1. Readmode and Read and clear implications
1. EVBRestControllers and Corresponding EVBRestUI Views
1. State transition values
2. valid_state_transitions table contents
List of Figures
8-1. ReadoutShell's state diagram
8-2. ReadoutShell's GUI
8-3. The Eventlog settings dialog
8-4. Readout GUI Directory tree
14-1. Block diagram of the V775 and V785 wiring
14-2. Block diagram of SIS3820 scaler wiring
15-1. V775 Simple setup electronics block diagram.
16-1. A simple electronics setup for the CAEN V785
16-2. Pulser Output Signal
16-3. Amplifer Output Signal
16-4. Amplified Signal with Logic Pulser
16-5. Amplified Signal and Gate
17-1. The MCFD16Control Graphical User Interface for USB
17-2. MCFD16Control Graphical User Interface for MxDC-RCbus
17-3. Channel Enable/Disable Configuration Dialog
17-4. OR Pattern Configuration Dialog
18-1. The MSCF16Control Graphical User Interface for USB
19-1. MDGG16Control Graphical User Interface
20-1. Screenshot of XLM72GateDelayControl
21-1. Screenshot of ULMTriggerGUI
25-1. Logbook component layering.
25-2. The shift editor
25-3. The shift selector.
25-4. The note editor GUI.
25-5. The image selector dialog
25-6. Logbook Browser
25-7. lg_browse People
25-8. lg_browse Shifts tab
25-9. lg_browse command's LogBook tab
51-1. Full logger directory tree
1. S800 Trigger GUI
1. Full logger directory tree
List of Examples
4-1. Readout initscript to Start a REST server
4-2. An Event Builder Start Script
5-1. Creating and configuring devices
5-2. A Sample Controls Configuration
5-3. A sample getEventTimestamp() implementation
5-4. Defining a null getScalerTimestamp()
5-5. Adding an offset to the timestamp
5-6. Obtaning the VM-USB device driver development kit
5-7. Using a user written VMUSB driver
5-8. The template driver Initialize method
5-9. Template Driver addReadoutList method
5-10. The VMUSB driver Xxxx_Init function.
5-11. Itcl VM-USB device driver
5-12. A Snit VM-USB driver.
5-13. USing a Tcl VM-USB driver.
5-14. Control driver headers
5-15. Control driver class definition
5-16. Control driver constructor
5-17. Control driver onAttach method
5-18. Control driver Update
5-19. Control driver Set method.
5-20. Control driver Get method
5-21. Control driver clone method
5-22. Control driver creator
5-23. Control driver initialization
5-24. Control drivers - structure of a Tcl driver
5-25. Tcl control driver Initialize method
5-26. Tcl control driver Update method
5-27. Tcl control driver Set method
5-28. Tcl control driver Get method
5-29. Tcl control drer addMonitorList method
5-30. Tcl control driver processMonitorList method
5-31. Tcl control driver getMonitoredData method
5-32. Tcl control driver validation
5-33. Specifying VM-USB monitored variables
6-1. Creating and configuring devices
6-2. Configuring an event stack
6-3. Setting up a scaler stack
6-4. Obtaining the ccusb driver development kit
6-5. Using a user written CCUSB driver
6-6. A snit CCUSB device driver module
6-7. CCUSB device support example writtin in Incr Tcl
6-8. DAQ config script fragment with tcl drivers.
6-9. Obtaining the sample CCUSB slow controls driver
6-10. Headers for the CCUSB sample slow controls driver
6-11. CCUSB Slow control driver class definition
6-12. The constructor and destructor
6-13. CCUSB Slow controls driver OnAttach
6-14. CCUSB Slow controls driver initialize method
6-15. CCUSB Slow controls driver Update
6-16. CCUSB Slow controls driver Set method
6-17. CCUSB slow controls Get method
6-18. CCUSB Slow controls clone method
6-19. Module creator for the CCUSB Sample slow controls driver
6-20. CCUSB Slow control driver initialization function
6-21. CCUSB Slow controls driver Skeleton Makefile
6-22. CCUSB Tcl slow controls driver skeleton
6-23. CCUSB Tcl slow controls driver construction
6-24. CCUSB Tcl slow controls initialization
6-25. CCUSB Tcl Slow Controls Update
6-26. CCUSB Tcl Slow controls driver Set
6-27. CCUSB Tcl Slow Control driver Get
6-28. CCUSB Slow controls Tcl driver option validation
6-29. Using the Tcl sample driver in a configuration script.
6-30. Enabling a module Lam with ccusbcamac
8-1. Custom ReadoutGUI startup script
9-1. Script To Start The EventBuilder in the Manager
10-1. Starting EVBLite from ReadoutCallouts.tcl
13-1. Silly timestamp extractor for fribdaq-readout
13-2. Extracting a timestamp from the first 64 bits of MVLC data
13-3. Building mesytec-mvlc with fribdaq-readout
13-4. Headers included by the sample MVLC loadable driver
13-5. Sample mvlcgenerate driver definition
13-6. mvlcgenerate SampleDriver::onAttach - defining configuration options
13-7. mvlc SampleDriver::Initialize - generating initialization operations.
13-8. mvlcgenerate SampleDriver::AddReadoutList - Generating readout operations.
13-9. mvlcgenerate SampleDriver::addReadoutList - generating event readout
13-10. mvlcgenerate SampleDriverCommand definition
13-11. mvlcgenerate SampleDriverCommmand constructor - defining the command
13-12. mvlcgenerate - creating a device instance (createDevice).
13-13. mvlcgenerate sample driver initialization code:
13-14. mvlcgenerate building the C++ extension:
13-15. mvlcgenerate - using a C++ extension driver:
13-16. mvlcgenerate - Sample Tcl driver in snit.
15-1. V775 Event Segment (V775EventSegment.h).
15-2. v775 Event Segment (V775EventSegment.cpp) - file heading
15-3. v775 Event Segment (V775EventSegment.cpp) - Constructor
15-4. v775 Event Segment (V775EventSegment.cpp) - Initialization
15-5. v775 Event Segment (V775EventSegment.cpp) - reading data
15-6. V775 data ready trigger header (MyTrigger.h)
15-7. V775 data ready trigger implementation (MyTrigger.cpp)
15-8. Copying in the SpecTcl-v3.4 skeleton
15-9. Raw TDC unpacker (RawUnpacker.h)
15-10. v775 raw unpacker implementation includes and defs (RawUnpacker.cpp)
15-11. V775 raw unpacker - getLong utility (RawUnpacker.cpp)
15-12. V775 raw unpacker object constructor/destructor (RawUnpacker.cpp)
15-13. v75 raw unpacker unpacking events (RawUnpacker.cpp)
15-14. Defining raw Time spectra the hard way.
15-15. Header for time difference event processor (Tdiff.h)
15-16. CTdiff implementation (Tdiff.cpp)
15-17. Setting up ssh for password-less login
15-18. Creating an event area for a small amount of data
15-19. Makefile
15-20. Skeleton.cpp
15-21. V775EventSegment.h
15-22. V775EventSegment.cpp
15-23. MyTrigger.h
15-24. MyTrigger.cpp
15-25. RawUnpacker.h
15-26. RawUnpacker.cpp
15-27. spectra.tcl
15-28. SpecTclRC.tcl
15-29. Tdiff.h
15-30. Tdiff.cpp
16-1. Header for MyEventSegment
16-2. Impementation of CMyEventSegment
16-3. The Packet Data
25-1. Creating a logbook and making it current
25-2. Using lg_addperson to add people to the logbook
25-3. Using lg_mkshift
25-4. Using lg_mgshift to manage shifts
25-5. Using lg_selshift to select the current shift
25-6. Enabling automatic recording of run state transitions
25-7. Invoking lg_wrnote
25-8. Using lg_print
25-9. C++ example using logbook API
25-10. Compiling the C++ Logbook API example.
25-11. kvexamplelow.tcl low level Tcl logbook API example
25-12. kvexamplehi.tcl Using the high level Tcl logbook API
25-13. kvexample.py programming the Python logbook API
25-14. Running Python scripts that use the logbook API
27-1. Using unglom and glom to re-build events
28-1. Dumping data from the ring buffer named 0400x on spdaq22
28-2. Dumping data from the event file segment /user/0400x/complete/run-1234-00.evt
28-3. State Transition items
28-4. Text List items
28-5. Incremental Scalers dump
28-6. Event count items
28-7. Physics Event items
28-8. Unknown item types
29-1. Taking data from a remote ring
30-1. Using serverauth to authorize a node
35-1. Appending the NSCLDAQ Tcl Package repository to Tcl's search path
35-2. Appending NSLCDAQ's TclPackage repository to Tcl's search path
35-3. Requesting the VME Tcl package be loaded.
35-4. Using VME Tcl to locate all 2530 modules
38-1. Loading the sequencer package
39-1. Dumping state changes and sampled event data with od
39-2. Dumping all but packet types
39-3. Attaching SpecTcl
40-1. Converting a ring buffer event file with compatibilitybuffer
40-2. Converting ring buffer data to a 8Kword (16Kbyte) old style event file
40-3. Using compatibilitylogger to convert event files
40-4. convert10to11 - converting event files
40-5. Attaching SpecTcl to ring buffers in compatibility mode
44-1. The CONNECT message format
44-2. Format of the DISCONNECT message
44-3. Format of the LIST command
44-4. Format of the REGISTER command
44-5. Format of the UNREGISTER message
44-6. Format of the REMOTE message
46-1. Including the header
46-2. Compiling code
46-3. Linking code to the library
47-1. A sample ring specification in URI form
47-2. Substituting local host for the hostname in URI's
47-3. Including the header
47-4. Compiling code that uses CRingAccess
47-5. Linking code that uses CRingAccess
48-1. Compilation line for ring buffer primitives
48-2. Including the ring buffer primitives header
48-3. Linking to the ring buffer primitives
48-4. Sample ring buffer consumer
48-5. A sample Ring Buffer producer program
49-1. Incorporating the ring package in your scripts
50-1. Including a ring item class
50-2. Telling the compiler where to find Ring Item headers
50-3. Linking the ring item format libraries
51-1. Setting the TCLLIBPATH environment variable for tclsh
51-2. Adding DAQTCLLIBS to auto_path
51-3. Creating an SQLite3 database command
51-4. Creating a container definition for buster
51-5. Using containers To Make a RingBuffer.
51-6. Adding a New Program Definition
51-7. Initialization Script to start Readout REST servers
51-8. Listing Program Definitions
51-9. Starting Programs in the programs Package
51-10. Adding a PAUSED State
51-11. Defining A Boot Sequence
51-12. Booting the System.
51-13. Using Miscellaneous Sequence Facilities
51-14. Using the kvstore package
51-15. Program Using the auth Package
51-16. Sample Eventloggers Program
51-17. Sample State Transition REST Client
51-18. Using The programstatusclient Package
51-19. Using the kvclient Package.
51-20. Using the loggerrestclient Package
52-1. Connecting to the event builder as a data source.
52-2. Closing an event builder connection
52-3. Starting the event builder
52-4. Establishing the connection callback
52-5. Setting up the disconnect callback
53-1. Processing ring items in Tcl.
53-2. The Scaler Display ring buffer thread
58-1. Enabling a module Lam with wienercamac
59-1. Including the cvt header
59-2. Compiling a C or C++ source file that includes cvt.h
59-3. A makefile rule that builds a C++ program using the cvt package
59-4. Creating a DaqConversion
60-1. The life of a thread
60-2. Why synchonization is needed
60-3. Using SyncGuard to implement a monitor
60-4. Compiling and linking NSCLDAQ threaded software
60-5. Using CGaurdedObject
60-6. Sending data to a CBufferQueue
60-7. Consumer of data from a CBufferQueue
61-1. Compilation switches for the security includes
61-2. Link switches for the security library
61-3. Boilerplate DAQ Authorization code
62-1. Sample URI library program
62-2. Building urltst.cpp
63-1. Shared memory library example
63-2. Compiling a C++ source that includes daqshm.h
63-3. Linking C++ object files that use the daqshm library
69-1. Catching CException and exiting
71-1. CTestExtender class definition
71-2. CTestExtender implementation
71-3. The factory function
74-1. The watch command.
75-1. The standard startup script explained
76-1. CEVBClientApp definition
76-2. The CEVBRingClientApp class definition.
76-3. The CEVBRingClientApp initialize and shutdown methods.
76-4. The CEVBRingClientApp dataReady method.
76-5. The EVBRingClientApp getEvents implementation.
76-6. Configuring the event builder client framework
76-7. S800 timestamp extractor (s800timestamp.c
77-1. Using the EVBC state manager callback bundle
78-1. Passing the ring buffer to the construction of an Event segment.
78-2. Creating Events
78-3. Obtaining the SBS readout skeleton
81-1. Selecting DAQ version and obtaining the skeleton:
81-2. Sample Skeleton.cpp modifications
81-3. Front part of Makefile for Readout
81-4. Obtaining a copy of the SpecTcl skeleton
81-5. MySpecTclApp.cpp modified for a single module
81-6. Makefile for SpecTcl
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. Using rdo_control To Begin A Run
2. Using rdo_control To Set A Title
3. Using rdo_control To Get Trigger Statistics
1. Getting the Title Key From the KVSTORE
1. Sample containers.ini file
1. Dumping state changes and sampled event data with od
2. Dumping all but packet types
3. Attaching SpecTcl
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. Using CRingAccess to connect to a local ring.
2. Using CRingAccess to connect to a remote ring
1. Message filter predicate
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. Allocating a port with the port manager
2. Listing the port allocatiosn on a system.
1. Catching a CPortManagerException
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. Calling CStringInteractor specific members
1. Creating a coypright notice on stderr
2. Creating an author credit on stderr
1. evttclsh
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. Simple usage of the ReadoutGUIAppLauncher package
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
2. Configuring an SIS3820 module as a timestamper
1. Configuring a CAEN V830 scaler
1. Configuring the SIS 3804 scaler
1. Sample Hytec 2530 configuration
1. Sample use of madc command
1. Sample use of mqdc command for timestamping with external oscillator
2. Sample configuration of mqdc for event counting and interrupt readout
1. Sample usage
1. Building Stacks
1. Sample MDPP-32 QDC commands
1. Sample MDPP-16 QDC commands
1. Sample MDPP-32 SCP commands
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. An example usage in VMUSBReadout
1. An example usage in VMUSBReadout
1. Allocating a service port in Tcl
2. Listing allocated ports in Tcl
1. Hooking update methods to recurring timer
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 Container Configuration File
1. Sample configuration file
1. Sample configuration file
1. Sample configuration file