Porting Status
Status Overview
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.
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
Particle Data
Functions for accessing and manipulating particle data.
Python Module | Status | C/C++ Source |
---|---|---|
particle | ❌ Not Ported | AT_ParticleData.h |
Material Data
Functions for accessing and manipulating material properties.
Python Module | Status | C/C++ Source |
---|---|---|
materials | ✅ Fully Ported | AT_MaterialData.h |
Converters
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 |
Stopping Power
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 |
Energy Loss Straggling
Functions for energy loss straggling calculations.
Python Function | Status | C/C++ Source |
---|---|---|
straggling.energy_loss_distribution | ❌ Not Ported | AT_EnergyLoss.c |
Scattering
Functions for particle scattering calculations.
Python Function | Status | C/C++ Source |
---|---|---|
scattering.angle_distribution | ❌ Not Ported | AT_MultipleCoulombScattering.h |
Proton Pencil Beam Models
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 |
Track Structure Models
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 |
Detector Response Models
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 |
Cell Survival Models
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 |
Contributing to Function Porting
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!