Skip to content

Latest commit

 

History

History
130 lines (87 loc) · 7 KB

File metadata and controls

130 lines (87 loc) · 7 KB
sidebar_position 4

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.

:::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

:::

Particle Data

Functions for accessing and manipulating particle data.

Python Module Status C/C++ Source
particles 🚧 During Porting 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:

  1. Adding C++ wrapper functions in the pyamtrack source code
  2. Binding these functions to Python using pybind11
  3. Adding proper type handling for different input types (scalars, lists, numpy arrays)
  4. Writing tests to ensure the ported functions work correctly
  5. Documenting the new functions

Your contributions would be greatly appreciated!