Introduction to the OO Companion

MINFAST is an interactive event display and analysis tool. It is written in C++ and based on the OO application framework ROOT. MINFAST has a Graphical User Interface (GUI) which makes the event display very easy to use. Being based on ROOT, fragments of C++ code, called macros, can be composed and entered into the program at execution time. These allow the user to access and manipulate all its internal structures, thereby turning MINFAST into an effective analysis tool. To use this aspect of MINFAST requires that the user has at least some knowledge of:-

It would be quite unacceptable if it were required that the user master all, or indeed, any of the above before being able to do analysis. Fortunately, it is not necessary either. At the heart of the OO paradigm is the tenet that objects, the building blocks of the software, should hide their complexity and present simple, robust, interfaces to their users. So with very little understanding of the above, users will be able to interact and extend the system. The following sections of the Companion:-

have been written to provide just enough information to get users to understand simple MINFAST macros. To speed the process some Example Macros are analysed and cross-referenced in terms of OO concepts, C++ syntax, ROOT and the MINOS Class library. All this information is designed to be read piecemeal, the user follows the thread that interests him/her and ends with bite-sized bit of information. The chances of intellectual indigestion are minimised! In this way the user accumulates a core of knowledge that is driven by practical examples that do things they want to do.

It must be emphasised that this method of "on the job training" is good for getting users working rapidly but cannot, by itself, make them proficient in OO. Having mastered the information contained in the above sections, users are strongly urged to read a proper C++ primer and a more systematic treatment of ROOT. In that way their understanding can develop and they can migrate from just writing C++ fragments to writing C++ code that can be linked into MINFAST as a permanent extension to it.


If you have any comments about this page please send them to Nick West