A Python-based Charged Particle Tracker
The goal of this project is to build a charged particle tracker somewhat similar in capability to
Lucretia
. Despite its similarities, this will not simply be a rewrite of that code, and will include several features that make it stand out from the crowd:
- No reliance on any proprietary software, or on any code that requires a license to use
- Lucretia's dependence on Matlab leads to the frustrating requirement for each and every user/computer to have a valid Matlab license. In situations where a student (for example) would just like to make a few quick calculations, this is obviously not satisfactory.
- The license for the code produced here will be the GPL
, and care will be taken to ensure that any included libraries/executables, are also compliant with the GPL. To comply with this philosophy, the native input format for beamline lattice files will be AML
(although, use of the accompanying Universal Accelerator Parser (UAP) will allow a significant number of the most popular lattice formats to be read).
- Build it to be light
- A package to quickly calculate beamline R-matrices, Twiss parameters, etc. may be constructed to be very small and light, therefore the philosophy behind the design of this code is to build a small, light framework for the most commonly used functions, and to allow expansion of the complexity by importing additional modules/classes.
Planned Capabilities
Progress
Physics Notes