VI. frameworks

Table of Contents
60. The actions library
60.1. Introduction
60.2. How does it work?
60.3. Run Control and Command Execution
60.4. Examplified Usage of the Actions package
61. Event orderer and its user interface
61.1. Event orderer design philosophy.
61.2. Using the standard event orderer startup script
61.3. Writing an event orderer startup script
61.4. Event orderer packages
62. Event builder client framework
62.1. Application specific code for the event builder
62.1.1. Sample ring EVBClientApp class.
62.2. Building event builder clients.
62.3. Running event builder clients
62.4. ringFragmentSource - a prepackaged client for ringbuffer data sources
62.4.1. Writing and building timestamp extractors.
63. Event builder Readout Callouts
63.1. API layer
63.2. EZBuilder
63.3. EVBC state manager callback bundle.
Preface
EVBC::start -- Start the event builder pipeline.
EVBC::stop -- Stop the event builder pipeline.
EVBC::reset -- Reset timestamp history
EVBC::flush -- Flush event builder event queues.
EVBC::startRingSource -- Start a ring fragment source for the event builder.
EVBC::startS800Source -- Start S800 data source
Preface
EVBC::initialize -- Initialize the EZBuilder layer.
EVBC::onBegin -- EZBuilder begin run actions
EVBC::onEnd -- EZBuilder end run actions.
Event builder callback bundle
Eventbuilder callback bundle -- Event builder callback bundle.
Event builder client framework -- Event builder cilent framework
EVB::handleFragment -- Submit event fragments.
EVB::inputStats -- Event builder input statistics
EVB::outputStats -- Get orderer output statistics
EVB::dlatestats -- Get the late fragment statistics.
EVB::onDataLate -- Bind scripts to data late events.
EVB::barriertrace -- Supply a script to invoke on barrier events.
EVB::source -- Create event source queues.
EVB::deadsource -- Mark a data source dead.
EVB::reviveSocket -- Revive all dead data sources associated with a socket
EVB::flush -- Empty all input queues.
EVB::reset -- Reset timestamp clocks.
64. Offline Event Builder and Orderer
64.1. Overview
64.1.1. Reasons to use this software
64.1.2. Limitations
64.2. Using the Offline EVB and Orderer
64.2.1. Setting up Jobs
64.2.2. Creating a job
64.2.3. Configuring Global Options
65. The SBS Readout framework
65.1. SBS Readout concepts
65.2. Obtaining and building the skeleton application
65.3. Modifying the skeleton application to meet your needs
65.4. Readout commands
65.5. Embedded Tcl server
65.6. Running a readout application
65.7. Using SBSReadout with the state manager
66. SBS Scripted Readout Framework
66.1. Introduction to the SBS Scripted Readout Framework
66.2. Writing a driver
66.2.1. Obtaining the scripted reaodut skeleton
66.2.2. Writing a module and a module creator
66.2.3. Extending CScriptedSegment
66.2.4. Modifying Skeleton.cpp
66.2.5. Modifying the Makefile
66.3. Hybrid scripted readouts
67. Injecting variables into the USB data taking frameworks
68. CCUSB Readout framework
68.1. How the CCUSB readout framework works
68.2. Writing DAQ configuration files
68.3. Writing device support software
68.3.1. The driver onAttach method
68.3.2. The driver Initialize method
68.3.3. The driver addReadoutList method
68.3.4. Initializing the driver with the framework.
68.4. Tcl device driver support
68.4.1. Conceptual background
68.4.2. A sample snit Tcl CCUSB framework driver
68.4.3. A sample Incr-Tcl Tcl CCUSB framework driver
68.4.4. Using Tcl drivers in the DAQ configuration file.
68.5. The slow controls subsystem
68.6. Running CCUSBReadout
68.7. Writing C++ slow controls device drivers
68.7.1. Obtaining the sample driver and its Makefile
68.7.2. Modifying the sample driver and Makefile.
68.8. Writing Tcl slow controls device drivers
68.9. The ccusbcamac Tcl package
68.9.1. Incorporating ccusbcamac in your scripts.
68.9.2. Using ccusbcamac
68.10. Integrating CCUSBReadout with the statemanager
69. VMUSB readout
69.1. How the VMUSB readout framework works
69.2. Writing DAQ configuration files
69.3. Writing C++ device support software
69.3.1. The driver onAttach method
69.3.2. The driver Initialize method
69.3.3. The driver addReadoutList method
69.3.4. Driver initialization xxxx_init
69.4. Writing device support software in Tcl
69.4.1. An Incr-Tcl (itcl) driver
69.4.2. A Snit Is Not Incr Tcl (snit) driver
69.4.3. Using a Tcl driver in a DAQ configuration script
69.5. The slow controls subsystem
69.5.1. Using Remote procedure call Immediate Lists.
69.5.2. Writing slow control drivers in C++
69.5.3. Writing slow control drivers in Tcl
69.6. Pushing external data into the event stream
69.6.1. Specifying variables to be monitored.
69.7. Running VMUSBReadout
69.8. Using VMUSBReadout with the state/boot managers