pymkm.physics.particle_track

Radial dose models for charged particle tracks in water.

This module defines the ParticleTrack, which implements two analytical models:

  • Scholz-Kraft model (Adv. Space Res., 1996)

  • Kiefer-Chatterjee model (Radiat. Environ. Biophys., 1976 and Phys. Med. Biol., 1986)

For model descriptions and a comparative analysis, see: Elsässer et al., (New J. Phys., 2008)

Both models compute local dose as a function of radial distance from the ion trajectory, based on physical parameters such as energy, atomic number, LET, and core radius type.

These dose profiles serve as the basis for computing specific energy deposition in MKM and SMK.

Examples

>>> from pymkm.physics.particle_track import ParticleTrack
>>> track = ParticleTrack(model_name="Scholz-Kraft", energy=100)
>>> r, d = track.initial_local_dose()
>>> r.shape, d.shape
((300,), (300,))
>>> d[:3]
array([val1, val2, val3])  # sample output
class pymkm.physics.particle_track.ParticleTrack(model_name: str = 'Kiefer-Chatterjee', core_radius_type: str = 'energy-dependent', energy: float | None = None, atomic_number: int | None = None, let: float | None = None, base_points: int = 150)[source]

Bases: object

Model of radial dose deposition around a particle track.

Supports the Scholz-Kraft and Kiefer-Chatterjee analytical models for describing the initial local dose as a function of radial distance from the ion trajectory.

initial_local_dose(radius: float | ndarray | None = None) Tuple[ndarray, ndarray][source]

Compute the initial radial dose distribution.

Parameters:

radius (float or np.ndarray, optional) – Optional radius or array of radii in micrometers. If None, a default grid is generated from energy and penumbra radius.

Returns:

Tuple containing (dose, radius) arrays.

Return type:

tuple[np.ndarray, np.ndarray]

Raises:

ValueError – If radius values are invalid or energy is missing when required.