You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

  • pdsdata for C++
  • pypdsdata for Python

Here is the brief description of the XTC file format produced by the LUSI on-line. LUSI XTC format inherited its main features from PSDM:BaBar XTC format.

Data types corresponding to various components of XTC are defined in pdsdata package which is provided by on-line group. This package is a part of all standard PSDM releases. All references to class names refer to the C++ classes defined in this package.

XTC file consists of a sequence of the containers called datagrams. Reading process for XTC consists of the fetching individual datagrams into memory. There is no index of any kind to skip a number of datagrams or jump to arbitrary datagram. C++ class corresponding to datagram is called Dgram. Datagram objects contain few sub-objects: Sequence, Env, and Xtc. Sequence type contains several identification parameters for datagram: type, service, time, and few other bits. Service determines what kind of transition corresponds to the given datagram, following transitions are defined currently (in TransitionId class): Map/Unmap, Configure/Unconfigure, BeginRun/EndRun, BeginCalibCycle/EndCalibCycle, Pause/Resume, Enable/Disable, L1Accept. These transitions correspond to the events happening in the DAQ system.

Class Xtc is an extensible container type which can contain either object of some predefined C++ class or a sequence of other Xtc containers. The type of the objects that Xtc holds is determined by its contains field. Every Xtc has a "source" which can be determined from src field of class Src which defines physical and/or logical address of the originator. The addresses form a hierarchical address space corresponding to the organization of the DAQ system.

User data types contained within Xtc containers are defined in the same psdata package as regular C++ classes.

There are several convenience classes for reading and examining the content of the XTC files. XtcFileIterator is an iterator class for reading the sequence of datagrams from the XTC files. XtcIterator is an abstract base class for iteration over the content of the single Xtc object. O2OTranslator package has a specific implementation of this iterator called O2OXtcIterator (and friend class O2OXtcScannerI).

  • No labels