|
MARLEY (Model of Argon Reaction Low Energy Yields) v2.0.0
A Monte Carlo event generator for tens-of-MeV neutrino interactions
|
Nuclear optical model that caches transmission coefficient calculations for efficiency. More...
#include <CachedOpticalModel.hh>
Classes | |
| struct | TCKey |
Public Member Functions | |
| CachedOpticalModel (int Z, int A) | |
| virtual double | transmission_coefficient (double total_KE_CM, int fragment_pdg, int two_j, int l, int two_s, int target_charge=0) override |
| Calculate the transmission coefficient for a nuclear fragment. | |
Public Member Functions inherited from marley::OpticalModel | |
| OpticalModel (int Z, int A) | |
| int | A () const |
| Get the mass number. | |
| virtual std::complex< double > | optical_model_potential (double r, double fragment_KE_lab, int fragment_pdg, int two_j, int l, int two_s, int target_charge=0)=0 |
| Calculate the optical model potential (including the Coulomb potential) | |
| virtual void | print (std::ostream &out) const =0 |
| Print information about the optical model parameters. | |
| virtual double | total_cross_section (double fragment_KE_lab, int fragment_pdg, int two_s, size_t l_max, int target_charge=0)=0 |
| Compute the energy-averaged total cross section (MeV -2) for a nuclear fragment projectile. | |
| int | Z () const |
| Get the atomic number. | |
Static Public Member Functions | |
| static void | set_use_cache (bool use_it) |
Protected Attributes | |
| std::map< TCKey, std::shared_ptr< InterpolatingFunction > > | tc_cache_ |
| Saved InterpolatingFunction objects corresponding to previously-encountered transmission coefficient requests. | |
Protected Attributes inherited from marley::OpticalModel | |
| int | A_ |
| int | Z_ |
Static Protected Attributes | |
| static constexpr double | MAX_TOTAL_KE_CM = 100. |
| Maximum kinetic energy to use when interacting with the cache. | |
| static constexpr double | MIN_TOTAL_KE_CM = 1e-10 |
| Minimum kinetic energy to use when interacting with the cache. | |
| static bool | USE_CACHE = true |
| Boolean switch that allows global enabling/disabling of the cache, which is used by default. | |
Nuclear optical model that caches transmission coefficient calculations for efficiency.
Definition at line 33 of file CachedOpticalModel.hh.
|
inline |
| Z | Atomic number of the desired nuclide |
| A | Mass number of the desired nuclide |
Definition at line 39 of file CachedOpticalModel.hh.
References marley::OpticalModel::OpticalModel(), marley::OpticalModel::A(), and marley::OpticalModel::Z().
Referenced by marley::KoningDelarocheOpticalModel::KoningDelarocheOpticalModel().
|
inlinestatic |
Definition at line 82 of file CachedOpticalModel.hh.
|
overridevirtual |
Calculate the transmission coefficient for a nuclear fragment.
| total_KE_CM | Total CM frame kinetic energy (MeV) |
| fragment_pdg | PDG code of the fragment |
| two_j | Two times the total angular momentum of the fragment |
| l | Orbital angular momentum of the fragment |
| two_s | Two times the spin of the fragment |
| target_charge | Net charge of the target atom |
Implements marley::OpticalModel.
Definition at line 23 of file CachedOpticalModel.cc.
References compute_transmission_coefficient(), marley::LinearInterpolatingFunction::evaluate(), MAX_TOTAL_KE_CM, MIN_TOTAL_KE_CM, tc_cache_, and USE_CACHE.
|
staticconstexprprotected |
Maximum kinetic energy to use when interacting with the cache.
Definition at line 101 of file CachedOpticalModel.hh.
Referenced by transmission_coefficient().
|
staticconstexprprotected |
Minimum kinetic energy to use when interacting with the cache.
Definition at line 99 of file CachedOpticalModel.hh.
Referenced by transmission_coefficient().
|
protected |
Saved InterpolatingFunction objects corresponding to previously-encountered transmission coefficient requests.
Definition at line 96 of file CachedOpticalModel.hh.
Referenced by transmission_coefficient().
|
staticprotected |
Boolean switch that allows global enabling/disabling of the cache, which is used by default.
Definition at line 105 of file CachedOpticalModel.hh.
Referenced by transmission_coefficient().