| sidebar_position | 4 |
|---|
This document provides information about which libamtrack functions have been ported to the pyamtrack Python wrapper. Not all libamtrack functions are currently available in pyamtrack, as the porting process is ongoing.
:::info
The tables below show the status of various function groups:
- ✅ Fully Ported: Function is available and tested in pyamtrack
- 🚧 During Porting: Function is being implemented or tested
- ❌ Not Ported: Function is available in libamtrack but not yet ported to pyamtrack
:::
Functions for accessing and manipulating particle data.
| Python Module | Status | C/C++ Source |
|---|---|---|
particles |
🚧 During Porting | AT_ParticleData.h |
Functions for accessing and manipulating material properties.
| Python Module | Status | C/C++ Source |
|---|---|---|
materials |
✅ Fully Ported | AT_MaterialData.h |
Functions for converting between different physical quantities.
| Python Function | Status | C/C++ Source |
|---|---|---|
converters.beta_from_energy |
✅ Fully Ported | AT_PhysicsRoutines.h |
converters.energy_from_beta |
✅ Fully Ported | AT_PhysicsRoutines.h |
converters.gamma_from_energy |
❌ Not Ported | AT_PhysicsRoutines.h |
converters.energy_from_gamma |
❌ Not Ported | AT_PhysicsRoutines.h |
converters.energy_from_momentum |
❌ Not Ported | AT_PhysicsRoutines.h |
converters.momentum_from_energy |
❌ Not Ported | AT_PhysicsRoutines.h |
converters.dose_from_fluence |
❌ Not Ported | AT_PhysicsRoutines.h |
converters.fluence_from_dose |
❌ Not Ported | AT_PhysicsRoutines.h |
converters.energy_per_amu_from_energy |
❌ Not Ported | AT_PhysicsRoutines.h |
converters.energy_from_energy_per_amu |
❌ Not Ported | AT_PhysicsRoutines.h |
Functions for calculating stopping power of ions and protons and range of particles in materials.
| Python Function | Status | C/C++ Source |
|---|---|---|
stopping.mass_stopping_power |
❌ Not Ported | AT_StoppingPower.h |
stopping.electron_range |
✅ Fully Ported | AT_ElectronRange.h |
stopping.csda_range |
❌ Not Ported | AT_StoppingPower.h |
stopping.bortfeld_proton_range |
❌ Not Ported | AT_ProtonAnalyticalBeamParameters.h |
Functions for energy loss straggling calculations.
| Python Function | Status | C/C++ Source |
|---|---|---|
straggling.energy_loss_distribution |
❌ Not Ported | AT_EnergyLoss.c |
Functions for particle scattering calculations.
| Python Function | Status | C/C++ Source |
|---|---|---|
scattering.angle_distribution |
❌ Not Ported | AT_MultipleCoulombScattering.h |
Functions for proton pencil beam dose and LET calculations.
| Python Function | Status | C/C++ Source |
|---|---|---|
proton.bortfeld_dose |
❌ Not Ported | AT_ProtonAnalyticalModels.h |
proton.wilkens_let |
❌ Not Ported | AT_ProtonAnalyticalModels.h |
Functions for track structure calculations.
| Python Function | Status | C/C++ Source |
|---|---|---|
track.radial_dose |
❌ Not Ported | AT_RDD.h |
track.track_width |
❌ Not Ported | AT_RDD.h |
Functions for calculating detector response using various models.
| Python Function | Status | C/C++ Source |
|---|---|---|
detector.hcp_response |
❌ Not Ported | AT_SuccessiveConvolutions.h |
detector.gamma_response |
❌ Not Ported | AT_GammaResponse.h |
Functions for calculating cell survival.
| Python Function | Status | C/C++ Source |
|---|---|---|
survival.katz_cell_survival |
❌ Not Ported | AT_KatzModel.h |
survival.katz_inact_cross_sect |
❌ Not Ported | AT_KatzModel.h |
If you're interested in helping port more functions from libamtrack to pyamtrack, please visit the pyamtrack GitHub repository for more information on how to contribute.
The porting process typically involves:
- Adding C++ wrapper functions in the pyamtrack source code
- Binding these functions to Python using pybind11
- Adding proper type handling for different input types (scalars, lists, numpy arrays)
- Writing tests to ensure the ported functions work correctly
- Documenting the new functions
Your contributions would be greatly appreciated!