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
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. ReadoutGUI & ReadoutShell
7.1. Principles of operation
7.2. Operating the user interface
7.3. The event logger and ReadoutShell
7.4. Customizing the ReadoutShell
7.5. Remote control package
8. Event Builder
8.1. Introduction
8.2. Using the event builder
8.3. More detail on when the fragments are ouptutted
8.4. Fragments and Data Format
8.5. Using the Event Builder With The Manager
9. EVBLite - light event building
9.1. What is EVBLite
9.2. evbtagger - making event builder fragments from ring items.
9.3. The evblite Tcl package.
10. ScalerDisplay
10.1. What is the ScalerDisplay?
10.2. Why does it exist?
10.3. What does it do?
10.4. How to set up the ScalerDisplay
11. Examples (Beginning 11.2-009).
11.1. ReadNSCLDAQFiles - analyze NSCLDAQ data (released 11.2-009)
II. simple-setups
12. A Simple VMUSBReadout Experiment Tutorial
12.1. Introduction
12.2. Setting up the Electronics
12.3. The Configuration Files
12.4. Running VMUSBReadout
12.5. Understanding the Output
12.6. Developing a Tailored SpecTcl
12.7. The VMUSBSpecTcl Alternative
12.8. Using SpecTcl
12.9. Conclusion
13. Simple V775 readout
13.1. Introduction
13.2. Setting up the Electronics.
13.3. Creating the Readout program
13.4. Creating the tailored SpecTcl
13.5. Running the system.
13.6. Taking the example further.
13.7. The full readout program.
13.8. The full SpecTcl program.
14. Using NSCLDAQ with a CAEN V785 Peak-Sensing ADC and CAEN V262 IO Register
14.1. PREFACE
14.2. The electronics
14.3. Setting up the software
14.4. The dumper program
14.5. Running the Readout Program
14.6. Interpreting the dumper output
III. device-support
15. Mesytec MCFD-16 Controls
15.1. Overview
15.2. Starting the GUI for USB communication
15.3. Starting the GUI for the RC-bus through an MxDC device
15.4. Configuration menu
15.5. Saving and restoring state
16. Mesytec MSCF-16 Controls
16.1. Overview
16.2. Synchronization Paradigm
16.3. Starting the GUI for USB communication
16.4. Saving and restoring state
17. Wiener MDGG-16 Controls
17.1. Overview
17.2. How to use the MDGG16Control GUI
17.3. Saving and Restoring The State of the GUI Between Sessions
18. XLM72 Gate Delay Control GUI
18.1. Introduction
18.2. Setting up an XLM72 as a gate delay generator for remote control
18.3. Launching the XLM72GateDelayControl
18.4. Overview of Functionality
18.5. The Saved File
19. ULM Trigger GUI
19.1. Configuring CCUSBReadout for Remote Communication
19.2. Launching the ULMTriggerGUI
19.3. Overview of Basic Operation
IV. commands
20. Command line access to CAMAC via the SBS interface
V. utilities
21. Ring piping utilities
22. NSCLDAQ Logbook facility
22.1. Components of the NSCL logbook system
22.2. Setting up a logbook for use.
22.3. Using the logbook in an experiment
22.4. Making logbooks available to collaborators
22.5.
23. The dumper program
23.1. Item dump formats and examples
24. The Event log program
25. The tcl server application
25.1. Tcl server package
26. CAEN V812 Constant Fraction Discriminator
27. N568B CAENnet shaping amplifier
28. VHS-40xxx SBS support.
29. cratelocator
30. Tcl access to the VME via the SBS interface
30.1. Incorporating Vme Tcl in your scripts
30.2. Sample programs that use the package
31. VM/CCUSB Firmware loaders
32. xlmload firmware loader for XLM modules via VM-USB controllers.
33. Sequencing runs
33.1. Configuring the sequencer.
33.2. Using the sequencer.
34. The ringselector application
35. Compatibility utilities
35.1. Format conversion with compatibilitybuffer
35.2. Writing event files with compatibilitylogger
35.3. Converting NSCLDAQ-V10.x data to NSCLDAQ-11.x data
35.4. Convenience scripts
35.5. BufferToRing
36. Providing EPICS channel information to Tcl Servers
37. The epics display utility
38. Epics Channel logging
VI. servers
39. The RingMaster server
39.1. The RingMaster Protocol
40. Service Port Manager.
VII. libraries
41. Ring master class library.
42. Networked ring buffer access
43. Ring Buffer Primitives
43.1. Incorporating ring buffer software
43.2. Overview and Examples of ring buffers in action.
44. The Tcl ring package
45. Data Format Support Software
45.1. The basic data formats
45.2. Selecting Data From a Ring Buffer
45.3. Incorporating the headers and libraries into your applications.
45.4. Generic ring data sinks
45.5. Creating ring items
46. DAQ Manager APIs
46.1. Manager Configuration Database API
46.2. Manager REST client API.
46.3. Manager User Interface API
47. Event builder client API
47.1. C++ Client API
47.2. Incorporating the event builder client library
47.3. Connecting to the event builder.
47.4. Disconnecting from the event builder.
47.5. Sending data to the event builder.
47.6. The Event orderer/event builder API
47.7. Callbacks
48. TclRingBuffer Tcl package.
48.1. What is it?
48.2. How do I use it?
48.3. Using TclRingBuffer in event driven software
49. The ccusbcamac tcl package
49.1. Overview
49.2. A simple example
50. SBS VME Module level device support software
51. Tcl CAENet package
52. The CES CBD 8210 Tcl CAMAC Package
52.1. Incorporating camac into your scripts
52.2. An overview of the use of the camac package
53. The Wienercamac Tcl package
53.1. Incorporating wienercamac in your scripts.
53.2. Using wienercamac
54. Integer byte order conversion library
54.1. Using the conversion library in your code
54.2. Byte order signatures and conversion blocks
54.3. Data conversion
55. NSCL DAQ Thread Library
55.1. The thread and synchronization model
55.2. Incorporating the library into an application.
55.3. Using CGaurdedObject to implement synchronized methods
55.4. Thread safe queues (CBufferQueue).
55.5. Pointers to the reference material
56. Access control and security
56.1. Incorporting the software into your code
56.2. Authenticators
56.3. Interactors
57. Parsing and URIs
58. Shared memory
58.1. Overview of the API, and using it from within your C++ software
58.2. Compiling/Linking your software with the shared memory API
59. The Os class
60. io
61. Plotchart
62. TCPIP classes
62.1. Library concepts
62.2. Incorporating the socket library
63. C++ encapsulation of a Tcl API subset
64. The NSCL Exception class library
64.1. Incorporating the library in your programs
64.2. Exception classes
VIII. frameworks
65. Injecting variables into the USB data taking frameworks
66. Event orderer and its user interface
66.1. Event orderer design philosophy.
66.2. Using the standard event orderer startup script
66.3. Writing an event orderer startup script
66.4. Event orderer packages
67. Event builder client framework
67.1. Application specific code for the event builder
67.2. Building event builder clients.
67.3. Running event builder clients
67.4. ringFragmentSource - a prepackaged client for ringbuffer data sources
68. Event builder Readout Callouts
68.1. Introduction
68.2. API layer
68.3. EVBC state manager callback bundle.
68.4. EZBuilder
69. The SBS Readout framework
69.1. SBS Readout concepts
69.2. Obtaining and building the skeleton application
69.3. Modifying the skeleton application to meet your needs
69.4. Readout commands
69.5. Embedded Tcl server
69.6. Running a readout application
70. Filter framework
70.1. Overview
70.2. Getting Started
70.3. Defining a primitive filter
70.4. Building a composite filter
70.5. The main function
70.6. Building the filter program
71. The actions library
71.1. Introduction
71.2. How does it work?
71.3. Run Control and Command Execution
71.4. Exemplified Usage of the Actions package
72. Support for CAEN Nextgen DPP-PHA digitizers
72.1. Introduction
72.2. Getting Data
72.3. Configuring SpecTcl
72.4. Software structure
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
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.
evbtagger -- Filter to add fragment headers
ringFragmentSource -- Provide Fragments To EventBuilder From Ring Buffers.
ScalerDisplay  -- Display counts and rates in scalers.
dumper -- Produce a formatted dump of event data.
eventlog -- Record Event Data to Disk.
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.
timecheck -- Check for out of order timestamps in event files
evttclsh -- Tcl interpreter that always runs an event loop
ddasReadout -- Run DDASReadout and an associated sorter.
ddasSort -- Sort data from DDAS internal clock readout.
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.
!ModuleName! -- Tabbed notebook for multiple GDG-8 controllers.
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 -- Suport dynamic configuration of Pixie16 modules via DDASReadout Server.
caen_nscldaq::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.
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
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
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
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
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
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. 3tcl
TCL Ring package. -- Access Rings from tcl.
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.
XVI. 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
XVII. 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
XVIII. 5tcl
caen812configfile -- Format of configuration files for CAENV 812 software.
n568configfile -- N568 shaper configuration file
vhqconfig --  Config file for
XIX. 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
7-1. Event logger environment variables
7-2. Experiment file systems environment variables
7-3. SSHPipe prompter environment variables
8-1. Fragment header
8-2. Body of Built PHYSICS_EVENT
46-1. Default Manager State Machine
53-1. Wiener CC32 addressing convention
72-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
7-1. ReadoutShell's state diagram
7-2. ReadoutShell's GUI
7-3. The Eventlog settings dialog
7-4. Readout GUI Directory tree
12-1. Block diagram of the V775 and V785 wiring
12-2. Block diagram of SIS3820 scaler wiring
13-1. V775 Simple setup electronics block diagram.
14-1. A simple electronics setup for the CAEN V785
14-2. Pulser Output Signal
14-3. Amplifer Output Signal
14-4. Amplified Signal with Logic Pulser
14-5. Amplified Signal and Gate
15-1. The MCFD16Control Graphical User Interface for USB
15-2. MCFD16Control Graphical User Interface for MxDC-RCbus
15-3. Channel Enable/Disable Configuration Dialog
15-4. OR Pattern Configuration Dialog
16-1. The MSCF16Control Graphical User Interface for USB
17-1. MDGG16Control Graphical User Interface
18-1. Screenshot of XLM72GateDelayControl
19-1. Screenshot of ULMTriggerGUI
22-1. Logbook component layering.
22-2. The shift editor
22-3. The shift selector.
22-4. The note editor GUI.
22-5. The image selector dialog
22-6. Logbook Browser
22-7. lg_browse People
22-8. lg_browse Shifts tab
22-9. lg_browse command's LogBook tab
46-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
7-1. Custom ReadoutGUI startup script
8-1. Script To Start The EventBuilder in the Manager
9-1. Starting EVBLite from ReadoutCallouts.tcl
13-1. V775 Event Segment (V775EventSegment.h).
13-2. v775 Event Segment (V775EventSegment.cpp) - file heading
13-3. v775 Event Segment (V775EventSegment.cpp) - Constructor
13-4. v775 Event Segment (V775EventSegment.cpp) - Initialization
13-5. v775 Event Segment (V775EventSegment.cpp) - reading data
13-6. V775 data ready trigger header (MyTrigger.h)
13-7. V775 data ready trigger implementation (MyTrigger.cpp)
13-8. Copying in the SpecTcl-v3.4 skeleton
13-9. Raw TDC unpacker (RawUnpacker.h)
13-10. v775 raw unpacker implementation includes and defs (RawUnpacker.cpp)
13-11. V775 raw unpacker - getLong utility (RawUnpacker.cpp)
13-12. V775 raw unpacker object constructor/destructor (RawUnpacker.cpp)
13-13. v75 raw unpacker unpacking events (RawUnpacker.cpp)
13-14. Defining raw Time spectra the hard way.
13-15. Header for time difference event processor (Tdiff.h)
13-16. CTdiff implementation (Tdiff.cpp)
13-17. Setting up ssh for password-less login
13-18. Creating an event area for a small amount of data
13-19. Makefile
13-20. Skeleton.cpp
13-21. V775EventSegment.h
13-22. V775EventSegment.cpp
13-23. MyTrigger.h
13-24. MyTrigger.cpp
13-25. RawUnpacker.h
13-26. RawUnpacker.cpp
13-27. spectra.tcl
13-28. SpecTclRC.tcl
13-29. Tdiff.h
13-30. Tdiff.cpp
14-1. Header for MyEventSegment
14-2. Impementation of CMyEventSegment
14-3. The Packet Data
22-1. Creating a logbook and making it current
22-2. Using lg_addperson to add people to the logbook
22-3. Using lg_mkshift
22-4. Using lg_mgshift to manage shifts
22-5. Using lg_selshift to select the current shift
22-6. Enabling automatic recording of run state transitions
22-7. Invoking lg_wrnote
22-8. Using lg_print
22-9. C++ example using logbook API
22-10. Compiling the C++ Logbook API example.
22-11. kvexamplelow.tcl low level Tcl logbook API example
22-12. kvexamplehi.tcl Using the high level Tcl logbook API
22-13. kvexample.py programming the Python logbook API
22-14. Running Python scripts that use the logbook API
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. Taking data from a remote ring
25-1. Using serverauth to authorize a node
30-1. Appending the NSCLDAQ Tcl Package repository to Tcl's search path
30-2. Appending NSLCDAQ's TclPackage repository to Tcl's search path
30-3. Requesting the VME Tcl package be loaded.
30-4. Using VME Tcl to locate all 2530 modules
33-1. Loading the sequencer package
34-1. Dumping state changes and sampled event data with od
34-2. Dumping all but packet types
34-3. Attaching SpecTcl
35-1. Converting a ring buffer event file with compatibilitybuffer
35-2. Converting ring buffer data to a 8Kword (16Kbyte) old style event file
35-3. Using compatibilitylogger to convert event files
35-4. convert10to11 - converting event files
35-5. Attaching SpecTcl to ring buffers in compatibility mode
39-1. The CONNECT message format
39-2. Format of the DISCONNECT message
39-3. Format of the LIST command
39-4. Format of the REGISTER command
39-5. Format of the UNREGISTER message
39-6. Format of the REMOTE message
41-1. Including the header
41-2. Compiling code
41-3. Linking code to the library
42-1. A sample ring specification in URI form
42-2. Substituting local host for the hostname in URI's
42-3. Including the header
42-4. Compiling code that uses CRingAccess
42-5. Linking code that uses CRingAccess
43-1. Compilation line for ring buffer primitives
43-2. Including the ring buffer primitives header
43-3. Linking to the ring buffer primitives
43-4. Sample ring buffer consumer
43-5. A sample Ring Buffer producer program
44-1. Incorporating the ring package in your scripts
45-1. Including a ring item class
45-2. Telling the compiler where to find Ring Item headers
45-3. Linking the ring item format libraries
46-1. Setting the TCLLIBPATH environment variable for tclsh
46-2. Adding DAQTCLLIBS to auto_path
46-3. Creating an SQLite3 database command
46-4. Creating a container definition for buster
46-5. Using containers To Make a RingBuffer.
46-6. Adding a New Program Definition
46-7. Initialization Script to start Readout REST servers
46-8. Listing Program Definitions
46-9. Starting Programs in the programs Package
46-10. Adding a PAUSED State
46-11. Defining A Boot Sequence
46-12. Booting the System.
46-13. Using Miscellaneous Sequence Facilities
46-14. Using the kvstore package
46-15. Program Using the auth Package
46-16. Sample Eventloggers Program
46-17. Sample State Transition REST Client
46-18. Using The programstatusclient Package
46-19. Using the kvclient Package.
46-20. Using the loggerrestclient Package
47-1. Connecting to the event builder as a data source.
47-2. Closing an event builder connection
47-3. Starting the event builder
47-4. Establishing the connection callback
47-5. Setting up the disconnect callback
48-1. Processing ring items in Tcl.
48-2. The Scaler Display ring buffer thread
53-1. Enabling a module Lam with wienercamac
54-1. Including the cvt header
54-2. Compiling a C or C++ source file that includes cvt.h
54-3. A makefile rule that builds a C++ program using the cvt package
54-4. Creating a DaqConversion
55-1. The life of a thread
55-2. Why synchonization is needed
55-3. Using SyncGuard to implement a monitor
55-4. Compiling and linking NSCLDAQ threaded software
55-5. Using CGaurdedObject
55-6. Sending data to a CBufferQueue
55-7. Consumer of data from a CBufferQueue
56-1. Compilation switches for the security includes
56-2. Link switches for the security library
56-3. Boilerplate DAQ Authorization code
57-1. Sample URI library program
57-2. Building urltst.cpp
58-1. Shared memory library example
58-2. Compiling a C++ source that includes daqshm.h
58-3. Linking C++ object files that use the daqshm library
64-1. Catching CException and exiting
65-1. The watch command.
66-1. The standard startup script explained
67-1. CEVBClientApp definition
67-2. The CEVBRingClientApp class definition.
67-3. The CEVBRingClientApp initialize and shutdown methods.
67-4. The CEVBRingClientApp dataReady method.
67-5. The EVBRingClientApp getEvents implementation.
67-6. Configuring the event builder client framework
67-7. S800 timestamp extractor (s800timestamp.c
68-1. Using the EVBC state manager callback bundle
69-1. Passing the ring buffer to the construction of an Event segment.
69-2. Creating Events
69-3. Obtaining the SBS readout skeleton
72-1. Selecting DAQ version and obtaining the skeleton:
72-2. Sample Skeleton.cpp modifications
72-3. Front part of Makefile for Readout
72-4. Obtaining a copy of the SpecTcl skeleton
72-5. MySpecTclApp.cpp modified for a single module
72-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-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