Tracks¶
Track ¶
Track light yield calculator for charged particles.
This class calculates Cherenkov light production from charged particle tracks, accounting for additional track length from energy loss mechanisms (ionization, bremsstrahlung, pair production, nuclear interactions) and angular distributions of emitted light.
Attributes:
| Name | Type | Description |
|---|---|---|
_medium |
str
|
Name of the propagation medium ('water' or 'ice') |
_n |
float
|
Refractive index of the medium |
_params |
dict
|
Parametrization parameters loaded from data file |
additional_track_ratio |
Callable
|
Function to compute additional track length ratio |
cherenkov_angle_distro |
Callable
|
Function to compute Cherenkov angle distribution |
Methods:
| Name | Description |
|---|---|
additional_track_ratio |
Calculate ratio of additional track length to original length |
cherenkov_angle_distro |
Calculate angular distribution of Cherenkov light emission |
Examples:
>>> from fennel.tracks import Track
>>> track = Track()
>>> energies = np.array([10.0, 100.0, 1000.0])
>>> ratio = track.additional_track_ratio(energies, 'total')
>>> angles = np.linspace(0, 180, 100)
>>> distro = track.cherenkov_angle_distro(100.0, angles, 1.333)
Notes
- Currently optimized for muon tracks
- Supports both NumPy and JAX backends
- JAX mode provides GPU acceleration for function mode
- The Aachen parametrization is based on detailed GEANT4 simulations
Initialize the Track calculator.
Loads parametrization data and sets up calculation methods based on whether JAX is enabled.
Raises:
| Type | Description |
|---|---|
ValueError
|
If the specified parametrization is not implemented |
ImportError
|
If JAX mode is enabled but JAX is not installed |