Release information SIMDAQ, v 5.0

Jos Vermeulen, NIKHEF, April 2000

This directory contains simdaq version 5, associated libraries and programs and example input files for MacOS (directory mac) Windows 95/98/NT (directory pc) and UNIX/linux (diretory unix), documentation of version 4 and of the GUI, and dump files with results presented in DAQ note 2000-035. The configuration files used for generating the results in DAQ note 2000-035 are included in the distributions.

Directory structure

The source directory structure is similar for the different platforms. All files are stored in a single directory : simdaq5. The sources are in the following subdirectories :

Includes : common include files
simdaqCplus  : SIMDAQ source
srgp : SRGP library, low level graphics
suit : SUIT library : GUI
histo: histogram display routines
Histoview (UNIX : HistoviewDir) : histogram dump file viewer
Presenter (UNIX : PresenterDir) : histogramming and GUI demonstration program
ROBsPerRoI (UNIX : ROBsPerRoIdir): program for computing "ROBHitFile"
SUIT-examples : example programs demonstrating different aspects of SUIT, some are discussed in the SUIT tutorial

The file name extensions for C++ code are different for the three platforms : for UNIX .C is required, for MacOS .Cp is used, while for Windows .Cpp is used (with the UNIX shell scripts domv... the extensions can be modified). Only the directory srgp contains machine specific files, which are indicated either with _MAC, _Win , _X, or in one case _MAC_X. All other files are identical for all platforms.

Names of input and output files

The configuration file name is assumed to be specified in a file with name "config.new". The histoview program assumes the availability of an input file with the name ³infile.txt² which should contain the name of a file with the histogram information. When internal physics event generation is used SIMDAQ reads the look-up table, relating RoI position and type to ROBs, from a file with the name "ROBHitFile". The trigger menu data comes from a file with a name specified in the configuration file. Some of the file names can be specified as command line arguments in the UNIX version (see below).

Lay-out graphical user interface

The lay-out of the graphical user interface (implemented with SUIT) can be changed interactively during run-time and is stored in a file with a name equal to the name of the program with the extension ".sui". For all programs .sui files have been supplied.The size of the window is relatively small, and can be changed by modifying the two lines in the beginning of the .sui file specifying the size or interactively. Note that when no .sui file is found the various objects ("widgets") are placed at random positions and with default sizes in the window.

A widget can be selected or deselected by clicking it while at the same time pressing the control and shift keys. The widget can then be moved by dragging or resized by dragging one of the handles while pressing the control and shift keys.

These are the command keys that are available (list taken from the SUIT manual) :

shift-ctrl-M : invokes the SUIT menu, which contains most of the functions below
shift-ctrl-C : change a widget¹s display style
shift-ctrl-A : lines up selected widgets by tops, bottoms, etc.
shift-ctrl-B : selected widget goes behind all others
shift-ctrl-F :  selected widget goes in front of all others
shift-ctrl-S : selects all widgets if cursor is over no widget
shift-ctrl-R : redraw repaints all widgets
shift-ctrl-E : examine and alter a widget¹s properties
shift-ctrl-I : prints information about a widget in a dialog
shift-ctrl-O : opens up a parent widget so that the children may be accessed
shift-ctrl-K : closes a parent widget that was opened with shift-ctrl-O
shift-ctrl-N :  creates a new SUIT object on the fly
shift-ctrl-X :  destroys a SUIT widget
shift-ctrl-V : prints the version of SUIT you are using
shift-ctrl-D : creates a copy of a SUIT widget
shift-ctrl-Q : save the ".sui" file and leave the application
shift-ctrl-W : write the ".sui file" without exiting

SUIT has very complete documentation, which should be available from : http://www.cs.virginia.edu/~suit/

Acrobat files with bookmarks of this documentation are available in the doc directory
 
UNIX version

Each source directory either contains a makefile or a shell script (with name domake) for compilation of the sources and linking of the object code or building of a library. Three libraries need to be built : libsrgp.a, libsuit.a and libhisto.a.
The makefiles probably can be used without modification on most UNIX machines, although on some UNIX installations it may be necessary to add new paths for the search for include files and for library files.

The simdaq5 directory contains the following shell scripts :

- domake : build libraries and SIMDAQ, compilation with -g option (debugger can be used)
- domakeopt : build optimized versions of libraries and SIMDAQ, compilation with -O3 option
- domakepgcc : build libraries and SIMDAQ, compilation with pgcc compiler
- domakeopt : build libraries and SIMDAQ, compilation with pgcc compiler with "-O6 -mpentiumpro" options
- domkall : build all programs. compilation with -g option
- rmobjects : remove all .o files in the srgp, suit, histo and simdaqCplus directories
- rmbins : remove all libraries and executables
- dodebug : start ddd (public domain graphical front-end for gdb) and load SIMDAQ

pgcc / pg++ is a patched version of egcs which seems to produce code that runs a few percent faster than code produced with gcc on Pentium platforms. Optimized code is obtained with -O6 and -mpentium for normal Pentium processors, -mpentiumpro for Pentium Pro and Pentium II processors. pgcc / pg++ is available from : http://goof.com/pcg/

SIMDAQ and histoview accepts command line arguments :

  simdaq -c "name of configuration file" -p "name of physics file"

  histoview "filename"

The simdaqCplus directory contains a "Code Crusader" project file : simdaq.jcc. Code Crusader is a program development environment similar to CodeWarrior and available from : http://www.newplanetsoftware.com/jcc/

Problems with the UNIX X server

SRGP has problems with color displays with 16 bits per pixel. The consequence of this problem is that SIMDAQ is not able to start up. The problem is probably caused by the calls to the X library in srgp_state_X.c and srgp_color_X.c. It is not obvious for the author what has to be changed here, but for an Xlib expert this may be clear. On linux systems the X server can be started in 8-bit mode with :

startx -- -bpp 8

CPU utilization on UNIX systems

The UNIX version of the program may spend a relatively large time in the GUI code. This is controlled by "INPUT_CHECK_INTERVAL_IN_SIMEVENTS", in SimdaqMain.C which should be set to a value that on one hand provides a reasonably short response time and on the other hand results in a high CPU utilization (typically of the order of 90 % on an idle system). When "INPUT_CHECK_INTERVAL_IN_SIMEVENTS" is chosen too small the CPU utilization (can be checked with e.g. "top") typically is much smaller than 90 %, resulting in a low number of simulated physics events per (wall clock) time unit. The optimum execution speed is obtained by running without the GUI (comment "#define GUI_SWITCHED_ON" in params.h and recompile). In that case almost 100 % CPU utilization is possible. For MacOS or Windows systems a right choice for "INPUT_CHECK_INTERVAL_IN_SIMEVENTS" is also important, however the effect of setting it at a relatively small value is less detrimental than for UNIX systems.

MacOS version

For the MacOS version the Metrowerks Codewarrior CW Pro 5.3 development environment is used. The self-extracting MacBinary archive contains sources, ".sui" files, example input files and a combined project for PowerPC based, 68k based and Windows machines. For Windows machines the program is cross-compiled and can be downloaded via an Ethernet connection on a Windows machine. In that case ".sui" files and example input files in PC format are required, which are provided as well. The library with SUIT, srgp and the histogram routines needs to be built using the appropriate project before SIMDAQ or any of the other programs can be built.

Windows95/98/NT version

The zip archive contains sources, ".sui" files, example input files and project files for Microsoft Visual C++ version 5.1 and Codewarrior CW Pro 5.3 (Windows version). Names of directories with Code Warrior projects start with ³CW², names of directories with Visual C++ projects start with ³VC². The library with SUIT, srgp and the histogram routines needs to be built using the appropriate project before SIMDAQ or any of the other programs cam be built.

Results used in DAQ note 2000-035

The directory dump-2000-035 contains the following files with dump files containing results used in DAQ note 2000-035 (the files are labelled with numbers of figures used in the note) :

Low.tar.gz : Low luminosity
High.tar.gz : High luminosity

The directory dump-2000-035 also contains two Excel files, Low.xls and High.xls, with plots of the LVL2 decision times and the statistics information from the dump files, again labelled with numbers of figures