Rogers, Chris, 12 April 2011 10:00
h1. MAUS User Documentation
MAUS usage is handled by several applications that enable basic usage of the framework. Each application runs several modules against a particular configuration. The particular modules that the application runs, and the configuration that is run against, can all be modified by the user.
There are several applications in the MAUS schema:
* *Simulation* tracks particles through a given geometry. Simulation uses the following modules
** _BeamGenerator_ generates a beam as defined by the user
** _ReferenceParticle_ pushes a single particle through the geometry to phase the cavities
** _Tracking_ pushes particles through the geometry
** _VirtualPlanes_ extracts information on particle tracks as they cross flat planes in space or time.
h2. Configuration manipulation
MAUS uses a set of user-modifiable files to control the application configuration. Variables such as input geometry, field arrangement and detector parameters can all be modified by the user.
* Documentation on geometry file generation is available in "pdf":http://www.mice.iit.edu/software/g4mice_doc/Mice_Module-2-4-1.pdf or "html":http://www.mice.iit.edu/software/g4mice_doc/Mice_Module-2-4-1.html format.
* Documentation on global run controls is available in "html":http://www.mice.iit.edu/software/g4mice_doc/datacards-2-4-1.html format.
* [[Materials-2-4-1|List of valid materials]]
h2. Changing application modules
MAUS uses a modular structure in its applications. Uses can alter the modules which a particular application runs or define their own application. Modules are of several types.
* _Maps_ are executed once per spill and manipulate the spill data in some way (for example, try to do pattern recognition on tracker digits).
* _Reduces_ are executed once per run and manipulate all the spills in some way (for example, make a histogram of the tracker light yield).
* _Runners_ control how Maps and Reduces are executed (for example controlling multithreading or doing some optimisation).
The different modules are listed in the [[Components]] section.
h2. File IO
Data is passed between different parts of the framework in tree-like structured data files. The tree structure is described in the [[DataStructure]] section.