Introduction

The E787 Data Distributor (DD) is a UNIX based event buffer manager, originally developed for the AGS rare kaon experiment E787. The earlier version (version 2) was written entirely in C. The current version (version 3) is written in C++ and runs on SGI/Irix, Solaris/SunOS and Linux.

The DD package allows to distribute events to processes in real time in a multiprocessor environment for data reduction, event building, online event analysis and monitoring. The bookkeeping is done with a software implementation of FIFOs (first in, first out) using shared memory and semaphores.

In section 2 we first give an overview of the DD system. We describe the main classes (from the user's point of view) followed by a discussion of the underlying implementation in terms of the fifo systems that is used, syncronization issues to be delt with, how the event distribution is handled internally as well as the role of the garbage demon. Finally a short description the TCP/IP connection that allows event retrieval from a remote host is given.
In section 3 we present three simple user programs: one for a process acting as a producer of data (i.e. he injects data into the DD system), another one acting as a consumer (i.e. he retrieves data from the DD pool) and a simple monitor process (i.e. a process that is neither a producer nor a consumer but a process that attaches to the DD system and has access to various information about the DD pool.
In section 4 we describe the status and error reporting that is used in the DD pool and how a user can modify it to his likeing.
Section 5 deals with the various system parameters can be changed by the user. Examples of tunable parameters are the default size of the event pool, changing the criteria according which the events are distributed, user callable routines as well as the behaviour upon a fatal error.
Section 6 is the reference manual, where we describe in detail the various DD routines.
The last three sections are a list of FAQ, where one can get the distribution and a checklist on how to build the system.

Alphabetic index Hierarchy of classes



This page was generated with the help of DOC++.