Celeritas  0.5.0-86+4a8eea4
Public Member Functions | List of all members
celeritas::optical::CherenkovDndxCalculator Class Reference

Calculate the mean number of Cherenkov photons produced per unit length. More...

#include <CherenkovDndxCalculator.hh>

Public Member Functions

CELER_FUNCTION CherenkovDndxCalculator (MaterialView const &material, NativeCRef< CherenkovData > const &shared, units::ElementaryCharge charge)
 Construct from optical materials and Cherenkov angle integrals.
 
CELER_FUNCTION real_type operator() (units::LightSpeed beta)
 Calculate the mean number of Cherenkov photons produced per unit length. More...
 

Detailed Description

Calculate the mean number of Cherenkov photons produced per unit length.

The average number of photons produced is given by

\[ \dif N = \frac{\alpha z^2}{\hbar c}\sin^2\theta \dif\epsilon \dif x = \frac{\alpha z^2}{\hbar c}\left(1 - \frac{1}{n^2\beta^2}\right) \dif\epsilon \dif x, \]

where \( n \) is the refractive index of the material, \( \epsilon \) is the photon energy, and \( \theta \) is the angle of the emitted photons with respect to the incident particle direction, given by \( \cos\theta = 1 / (\beta n) \). Note that in a dispersive medium, the index of refraction is an inreasing function of photon energy. The mean number of photons per unit length is given by

\[ \difd{N}{x} = \frac{\alpha z^2}{\hbar c} \int_{\epsilon_\text{min}}^{\epsilon_\text{max}} \left(1 - \frac{1}{n^2\beta^2} \right) \dif\epsilon = \frac{\alpha z^2}{\hbar c} \left[\epsilon_\text{max} - \epsilon_\text{min} - \frac{1}{\beta^2} \int_{\epsilon_\text{min}}^{\epsilon_\text{max}} \frac{1}{n^2(\epsilon)}\dif\epsilon \right]. \]

Member Function Documentation

◆ operator()()

CELER_FUNCTION real_type celeritas::optical::CherenkovDndxCalculator::operator() ( units::LightSpeed  beta)
inline

Calculate the mean number of Cherenkov photons produced per unit length.

Todo:
define a "generic grid extents" class for finding the lower/upper x/y coordinates on grid data. In the future we could cache these if the memory lookups result in too much indirection.

The documentation for this class was generated from the following file: