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.