next up previous contents
Next: Running the Standard Jobs Up: The C++ Extension Previous: Installing the C++ Extension   Contents

Why a C++ Extension?

The decision to use FORTRAN with ZEBRA as the memory manager was taken back in the 1980s when such a choice was almost an HEP standard. Now the standard has moved on with C++ being the most popular language for off-line HEP applications and with ROOT as the best public HEP framework. Using such a choice gives access to a large pool of software and support (unlike the Fortran system) as well as permitting the development of software using the more powerful object oriented approach. However the legacy Fortran code is now too large to contemplate rewriting in C++ and hybrid Fortran/C++ systems are far from ideal as they are based on totally different data models. Hence this experiment to develop a hybrid. In an attempt to protect the Fortran code and to establish and maintain the simplest most transparent interface between the two codes a set of rules have been draw up which includes the following:-

  1. The single-pin principle (all C++ in a separate library that can be disconnected at the flip of a single EXTRACT switch)

  2. All outputs from fitters and classifiers and anything upstream of them will be converted back into the ZEBRA D/S for use in SNOMAN. For example, if there is an NCD MC code in C++, it will still take its inputs, and return its outputs, to the central ZEBRA D/S.

  3. All database access will go through the SNOMAN routine MTT. So no sneaky reading little ASCII files.


next up previous contents
Next: Running the Standard Jobs Up: The C++ Extension Previous: Installing the C++ Extension   Contents
sno Guest Acct 2009-09-09