Fennel¶
Cherenkov light yield simulation for particles and cascades
Fennel is a Python package for simulating Cherenkov light production from particles. It calculates light emissions from both cascades (electromagnetic and hadronic) and tracks using the Aachen parametrization.
Features¶
✨ Comprehensive Physics Coverage
- Tracks: Muon light yield with energy loss mechanisms (ionization, bremsstrahlung, pair production)
- EM Cascades: Electron, positron, and photon-initiated showers
- Hadron Cascades: Pion, kaon, proton, and neutron-initiated showers with EM fraction and muon production
🚀 High Performance
- NumPy-based calculations for CPU efficiency
- Optional JAX backend for GPU acceleration
- Optimized parametrizations from GEANT4 simulations
🎯 User-Friendly API
- Simple, intuitive interface
- Comprehensive type hints for IDE support
- Detailed NumPy-style documentation
- Flexible configuration via YAML or dictionaries
📊 Wavelength-Dependent Yields
- Customizable wavelength grids
- Angular distributions
- Longitudinal shower profiles
Quick Example¶
from fennel import Fennel
# Initialize
f = Fennel()
# Calculate muon track yields
wavelengths, photons = f.track_yields(
energy=100.0, # 100 GeV muon
particle=13, # PDG code for muon
wavelength=400 # 400 nm
)
# Calculate EM cascade yields
wavelengths, total_photons, profile, angles = f.em_yields(
energy=100.0, # 100 GeV
particle=11 # electron
)
# Calculate hadron cascade yields
results = f.hadron_yields(
energy=100.0, # 100 GeV
particle=2212 # proton
)
Installation¶
For JAX GPU acceleration:
For development:
Key Concepts¶
Tracks vs Cascades¶
- Tracks: Charged particles (primarily muons) that travel long distances while emitting Cherenkov light continuously
- EM Cascades: Electromagnetic showers from electrons, positrons, or photons that develop through pair production and bremsstrahlung
- Hadron Cascades: Hadronic showers from pions, kaons, protons, or neutrons with both electromagnetic and purely hadronic components
Parametrization¶
Fennel uses the Aachen parametrization based on detailed GEANT4 simulations. The parametrization includes:
- Energy-dependent track lengths and shower profiles
- Angular distributions of Cherenkov photons
- Wavelength-dependent yields
- EM fraction in hadronic showers
- Muon production in hadronic interactions
Documentation Structure¶
- Getting Started: Installation and first steps
- User Guide: Detailed usage instructions
- API Reference: Complete API documentation
- Physics Background: Theory and parametrizations
- Development: Contributing and testing
Citation¶
If you use Fennel in your research, please cite:
@software{fennel2024,
author = {Meighen-Berger, Stephan},
title = {Fennel: Cherenkov Light Yield Simulation},
year = {2024},
url = {https://github.com/MeighenBergerS/fennel},
version = {1.3.4}
}
The package includes distributions developed in multiple studies - see Citation for complete references.
License¶
Fennel is released under the MIT License. See LICENSE.txt for details.
Support¶
- Issues: GitHub Issues
- Discussions: GitHub Discussions
Acknowledgments¶
Developed by Stephan Meighen-Berger based on the Aachen parametrization for Cherenkov light production.