next up previous
Next: CTP Definition Files Up: The CEBAF Test Package: Previous: The CEBAF Test Package:


Introduction

On-line data analysis software for nuclear physics data acquisition systems often share several common elements. A good example of a data acquisition system with these elements is the LAMPF Q system[]. The Q system allows parameters, tests and histograms to be defined in ASCII files that are read when the data acquisition system is started. All of these elements may then be modified while the system is active through the use of shared memory.

An advantage of such analysis packages is the ability to make the definitions of histograms, cuts and parameters more concise. Furthermore, since these definitions are separated from the data acquisition source code, users who are not familiar with the details of the analysis code can make changes without the risk of introducing bugs while an experiment is in progress. A major disadvantage however, is that histogram, test and parameter packages typically access data internal to the analysis code through specific large arrays. In order to make the analysis code more readable, equivalence statements are typically used, making maintenance of a large experiment analyzer cumbersome.

In the CEBAF Test Package (CTP), the same variable names are used in both the source code and in the CTP definition files. This is accomplished by requiring the analyzer developer to ``register'' each variable and array that is to be accessible to CTP. Once a variable has been registered, its value(s) can be set through a CTP parameter definition file. For registered variables that are calculated each event, the variable may be used in histogram or test definitions. Since the definition files refer to variables by the same names as used in the analysis software, they can be made readable when sensible variable names are chosen by the programmer.

Any registered variable as well as the test and histogram definitions may be dynamically read and modified by tasks that communicate via standard networking calls. As this package is implemented in C and uses SUN RPC networking, it is portable. This package works with CODA[], but may be used with other data acquisition systems with stand alone offline analysis codes.


next up previous
Next: CTP Definition Files Up: The CEBAF Test Package: Previous: The CEBAF Test Package:
Stephen A. Wood 2005-03-18