DAQ III

!! Under Construction !!


The Goal

To test the design of a DAQ system, it is wise to try to simulate the behaviour of the system before actually building it. This process can reveal flaws without spending money for real hardware, and can give guidelines for the actual layout of parts of the system like buffer sizes.

What Program Language is used?
For simulating a DAQ system an ``event-driven'' simulation environment is needed. The reason for this is the statstical nature of the detector providing data to the system.
In the modern age of computing it is desirable to use an object oriented programming language to achieve re-use of program parts. This means, we could use e.g. C++ as programming language, and write the event simulation code ourselves. But (luckily) there is a software package, that has all this already included, called MODSIM

CLEO is in the position, that some collaborators already purchased a MODSIM license. Therefore, we were able to instantly use one of these seats at the University of Illinos, Urbana/Champaign. Additionally, a very useful library (daqsim) has been built by the engineering group in their HEP departement. This (object) library was re-used and slightly adapted to the needs of the CLEO DAQ simulation. In the next sections the basics objects are explained.

The Packet Objects
The basic object in the simulation is the object describing the data moving through the DAQ system. This includes not only the event data but also all control commands exchanged by the various parts to regulate the data flow (called ``Flow Control'').

The basics class, from which all other classes are derived, is called PacketObj. It contains data fields that are needed for sending and receiving packets and information for debugging purposes. The most important attribute of a packet is its length, therefore this information is found in PacketObj

Two basics subclasses are then parent to all used packets in the program: DataPacketObj and ControlPacketObj. The first one contains event information, including the event id, and they can be merged to simulate the event building. The second type holds commands and priorities, to simulate the flow control mechanism.
This picture shows the Link to the PacketObj source code.

The Link Objects


DAQ III
CLEO WEB PAGES
Updated: 18. June 1995
Author: Andreas H. Wolf (ahw@mps.ohio-state.edu)