Draft, in work.
Generating Xtc
For tutorial purposes, the following streamlined example shows XXX. For an example involving more detectors, formats and algorithms, see xtcdata/xtcdata/app/xtcwriter.cc.
A Notional DAQ Harness
Let's motivate the example. Assume we're developing a an Xtc writer class to output CSPAD data. This class will get plugged in to a (notional) DAQ framework.
# Assume some totally made-up data acquisition callback framework named DAQFramework # Developers of the psdaq package are welcome to come in and change this toy example # to match the real DAQ API. CSPADXtcWriter padwriter() DAQFramework.registerHandler("configure", padwriter.setup) DAQFramework.registerHandler("runstart", padwriter.setup) DAQFramework.registerHandler("readout", padwriter.writeImage) DAQFramework.registerHandler("runend", padwriter.writeFile)
"setup" Method: Set Up The Names Structure
Register the algorithms and "shape" of the data associated with detector elements to facilitate pipeline processing.
- First some plumbing...
- Create an XtcData:Dgram as the root container.
- Next code sample description.
At some initialization step, for example in response to a DAQ configure signal:
- Subclass XtcData::VarDef to build a data structure specific to the detector in question.
"writeImage" Method: Add Readout Data
Parsing Whole Xtc Files
xtcreader.cc and XtcIterator.hh
Use of Xtc Small Data Files
this might be duplicate of what's on top page
Notes on More Real World Code
Overview
Content Tools