Trigger control software for CERES/NA45
CERES/NA45
is a SPS
experiment at CERN, Geneva, dedicated
to the measurement of electron-positron pairs produced in collisions of
heavy ions. It triggers on the centrality of the collision, accessible
via the charge particle multiplicity. The muliplicity informations becomes
available only after 4 microseconds after the collision. The trigger must
reject these reactions which are accompanied by an additional beam particle
within 4 microseconds (beam before- and after-protection), and/or by another
reaction within 70 microseconds (interaction before- and after-protection).
In 1999 the trigger was re-implemented using logic units in VME as programmable
concidences and anticoincidences, and new trigger control software was
written. The programmable electronics modules are sitting in a VME crate,
controlled by a FIC processor (OS9 operating system). In order to minimize
the incomodities related to the rough OS9 programming environment, and
to make my software more universal, I decided to split the software into
two parts:
-
simple server running on FIC
The server, 250 lines in C, talks to the VME modules on one side
and to clients on the other. The transition from Linux, where I originally
developed it, to Lynx, and especially the final transition to OS9, left
some traces on its body. Sorry for that.
-
GUI client running on Linux
The code, 6500 lines in C++, is based on ROOT. I have specific
classes for different VME modules (like DDisc, DScaler, DDownscaler, etc.)
and a generic VME-module parent class (DModule). Each specific class has
a corresponding GUI class (like DGDisc, DGScaler, DGDownscaler, etc.) ,
and there is one parent GUI class from which the GUI classes inherit (DGModule).
Finally, I have the DTrigger and DGTrigger classes.
The communication between the client and the server goes via a socket.
A normal user of the trigger system is confronted only with DGTrigger
and DGScalerViewer.
Talking to individual VME modules is only for testing and debuging purposes.
The GUI classes are:
Dariusz Miskowiec
November 1999