VMC

The Virtual Monte Carlo (VMC) allows to run different simulation Monte Carlo without changing the user code and therefore the input and output format as well as the geometry and detector response definition.

The core of the VMC is the category of classes vmc in Root . It provides a set of interfaces which completely decouple the dependencies between the user code and the concrete Monte Carlo:

Interface to the concrete Monte Carlo program
Interface to the user's Monte Carlo application
Interface to the particle stack
Interface to the external decayer

A user has to implement two mandatory classes: the MC application (derived from TVirtualMCApplication) and the MC stack (derived from TVirtualMCStack), optionally a user's external decayer (derived from TVirtualMCDecayer) can be introduced. The concrete Monte Carlo ( GEANT3 , Geant4 , FLUKA ) is selected at run time - when processing a ROOT macro where the concrete Monte Carlo is instantiated.

The relationships between the interfaces and their concrete realizations are illustrated in the class diagrams: User MC application , Virtual MC ,

At present time, VMC can be used with Geant3 , Geant4 and Fluka.

VMC and TGeo

The VMC is now fully integrated with the Root geometry package, TGeo , and users can easily define their VMC application with TGeo geometry and this way of geometry definition is recommended for new users.

It is also possible to define geometry via Geant3-like functions defined in the VMC interface, however this way is kept only for backward compatibility should not be used by new VMC users.

Available VMCs

For GEANT3 - geant3

Geant3 VMC (C++) is provided within a single package together with GEANT3 (Fortran) - geant3 .

For Geant4 - geant4_vmc

Geant4 VMC is provided within a package geant4_vmc , that, in difference from geant3, naturally does not include Geant4 itself and you will need the Geant4 installation to run your VMC application with Geant4 VMC.

For FLUKA - fluka_vmc

Fluka VMC is provided within a package fluka_vmc . It does not include FLUKA itself and you will need the FLUKA installation to run your VMC application with Fluka VMC.  


The concept of Virtual MonteCarlo has been developed by the ALICE Software Project .
Authors: R.Brun, F.Carminati, I.Hrivnacova, A.Morsch.

Contact: vmc@root.cern.ch

Page maintained by: Ivana Hrivnacova
Last update: 08/06/2009