5,706 research outputs found
Kassiopeia: A Modern, Extensible C++ Particle Tracking Package
The Kassiopeia particle tracking framework is an object-oriented software
package using modern C++ techniques, written originally to meet the needs of
the KATRIN collaboration. Kassiopeia features a new algorithmic paradigm for
particle tracking simulations which targets experiments containing complex
geometries and electromagnetic fields, with high priority put on calculation
efficiency, customizability, extensibility, and ease of use for novice
programmers. To solve Kassiopeia's target physics problem the software is
capable of simulating particle trajectories governed by arbitrarily complex
differential equations of motion, continuous physics processes that may in part
be modeled as terms perturbing that equation of motion, stochastic processes
that occur in flight such as bulk scattering and decay, and stochastic surface
processes occuring at interfaces, including transmission and reflection
effects. This entire set of computations takes place against the backdrop of a
rich geometry package which serves a variety of roles, including initialization
of electromagnetic field simulations and the support of state-dependent
algorithm-swapping and behavioral changes as a particle's state evolves. Thanks
to the very general approach taken by Kassiopeia it can be used by other
experiments facing similar challenges when calculating particle trajectories in
electromagnetic fields. It is publicly available at
https://github.com/KATRIN-Experiment/Kassiopei
- …