Code Structure

Class-Inheritance

The main class in PROPOSAL is the Propagator class.

The code structure is described in detail in the second PROPOSAL paper.

The schematic code structure is displayed in the image below.

../../_images/inheritance.png

The Propagator Class consists of a list of sectors and decides which sector propagates the particel. Each sector then propagates the particle as shown above.

Propagation Routine

The propagation routine is in the Propagator class and is the Propagator::propagate(particle) function. The steps which PROPOSAL does during the propagation are best explained in the figure below.

../../_images/PROPOSAL_propagation_flow.png

Config files

The media and geometry used for the propagation are defined in a JSON file. In resources/config_docu.md the entries are thoroughly explained.