#ifndef OPENMC_BREMSSTRAHLUNG_H #define OPENMC_BREMSSTRAHLUNG_H #include "openmc/particle.h" #include "xtensor/xtensor.hpp" namespace openmc { //============================================================================== // Bremsstrahlung classes //============================================================================== class BremsstrahlungData { public: // Data xt::xtensor pdf; //!< Bremsstrahlung energy PDF xt::xtensor cdf; //!< Bremsstrahlung energy CDF xt::xtensor yield; //!< Photon yield }; class Bremsstrahlung { public: // Data BremsstrahlungData electron; BremsstrahlungData positron; }; //============================================================================== // Global variables //============================================================================== namespace data { extern xt::xtensor ttb_e_grid; //! energy T of incident electron in [eV] extern xt::xtensor ttb_k_grid; //! reduced energy W/T of emitted photon } // namespace data //============================================================================== // Global variables //============================================================================== void thick_target_bremsstrahlung(Particle& p, double* E_lost); } // namespace openmc #endif // OPENMC_BREMSSTRAHLUNG_H