50 for (
int n = 2*l + 1; n > 0; n -= 2) dfact *= n;
53 double lambda = (l + 1.) / (l * std::pow(dfact, 2))
54 * std::pow(3.0 / (l + 3.), 2);
57 double R = marley_utils::r0 * std::pow(
A_, 1.0/3.0);
60 double el_sf = 2 * marley_utils::alpha * lambda
61 * std::pow(R / marley_utils::hbar_c, 2*l) / D0_;
63 if (type == TrType::electric) {
67 else if (type == TrType::magnetic) {
69 marley_utils::PROTON);
70 return 10. * el_sf * std::pow(marley_utils::hbar_c / (mp * R), 2);
73 else if (type == TrType::unphysical) {
74 MARLEY_LOG( WARN,
"physics.deexcitation" )
75 <<
"Unphysical EM transition encountered in"
76 <<
" WeisskopfSingleParticleModel::strength_function()."
77 <<
" The strength function will be set to zero.";
83 " given for Weisskopf gamma-ray strength function calculation" );
virtual double strength_function(TransitionType type, int l, double e_gamma) override
Returns the gamma-ray strength function (MeV –2 –1) for the requested gamma energy and multipolarity.
virtual double transmission_coefficient(TransitionType type, int l, double e_gamma) override
Returns the gamma-ray transmission coefficient (dimensionless) for the requested gamma energy and mul...
WeisskopfSingleParticleModel(int Z, int A, double D0=1.)