The plug-in concept

To provide the user with a big flexibility in choosing different simulation components (geometry, physics, user actions, histograms, ...) and combining them to his/her will in a simple way, GAMOS is based on the plug-in concept. This means that the ``main'' program runs without predefined components and the user tells it which components are being loaded at run time (without needing to recompile) by simply listing them in a text input file. This mechanism also lets the user define a new component that was not foreseen by GAMOS and easily tell GAMOS to use it together with any other of his/her own components or GAMOS components.

A common example to better understand the plug-in concept is the plug-in's that are installed on your computer when you open some Internet page with your web browser. Your web browser can use these plug-in's to get an extra functionality (viewing videos, animated figures, ...) without your having to recompile it and even if the web browser designers had never before heard of the new plug-in.

For each of the simulation component types we will describe in the corresponding section which is the command to select it and how to transform a new user component into a GAMOS plug-in.

For the implementation of plug-in's GAMOS has chosen the CERN package ROOT.