|
MARLEY (Model of Argon Reaction Low Energy Yields) v2.0.0
A Monte Carlo event generator for tens-of-MeV neutrino interactions
|
Computes inclusive lepton-nucleus cross sections using tabulated nuclear response functions. More...
#include <TabulatedXSec.hh>
Classes | |
| struct | IntegralTerm |
| Storage for terms in the integrals evaluated by compute_integral(). More... | |
| struct | MultipoleLabel |
| Simple struct representing a given multipole order, e.g., 2+. More... | |
| struct | OptimizationMapKey |
| struct | OptimizationMapValue |
Public Member Functions | |
| TabulatedXSec (int target_pdg, marley::Reaction::ProcessType p_type, marley::CoulombCorrector::CoulombMode mode, double delta_ias) | |
| void | add_table (const std::string &file_name) |
| void | add_table (unsigned J, marley::Parity Pi, const std::string &file_name) |
| double | compute_integral (int pdg_a, double KEa, const MultipoleLabel &ml, double &diff_max, std::vector< IntegralTerm > *integral_terms=nullptr) const |
| Helper function for integral that does the actual integration. | |
| double | delta_ias () const |
| Get the shift used to compute the effective energy transfer. | |
| double | diff_xsec (int pdg_a, double KE_a, double omega, double cos_theta, const MultipoleLabel &ml) const |
| const ResponseTable & | get_table (const MultipoleLabel &ml) const |
| const std::map< MultipoleLabel, ResponseTable > & | get_table_map () const |
| double | integral (int pdg_a, double KEa) const |
| double | integral (int pdg_a, double KEa, const MultipoleLabel &ml, double &diff_max) const |
| bool | is_cc () const |
| Returns true if this cross section represents a CC process or false otherwise. | |
| void | optimize (int pdg_a, double max_KEa) |
| void | unoptimize () |
Protected Attributes | |
| marley::CoulombCorrector::CoulombMode | coulomb_mode_ |
| Method to use for computing Coulomb corrections to the cross section. | |
| double | delta_ias_ |
| std::map< OptimizationMapKey, OptimizationMapValue > | optimization_map_ |
| int | pdg_d_ |
| marley::Reaction::ProcessType | proc_type_ |
| Kind of process for which the cross section will be computed. | |
| std::map< MultipoleLabel, ResponseTable > | responses_ |
| Tables of nuclear responses organized by multipole. | |
| TargetAtom | ta_ |
| Nuclide represented by this table of nuclear responses. | |
Computes inclusive lepton-nucleus cross sections using tabulated nuclear response functions.
Definition at line 36 of file TabulatedXSec.hh.
|
explicit |
Definition at line 29 of file TabulatedXSec.cc.
| void marley::TabulatedXSec::add_table | ( | const std::string & | file_name | ) |
Definition at line 40 of file TabulatedXSec.cc.
| double marley::TabulatedXSec::compute_integral | ( | int | pdg_a, |
| double | KEa, | ||
| const MultipoleLabel & | ml, | ||
| double & | diff_max, | ||
| std::vector< IntegralTerm > * | integral_terms = nullptr ) const |
Helper function for integral that does the actual integration.
| [out] | integral_terms | Optional vector that will be cleared and filled with each term in the sum that leads to the value of the integral returned by the function. The terms are associated with energy transfer (omega, MeV) and scattering cosine (cos_theta, dimensionless) values in the IntegralTerm struct. |
Definition at line 206 of file TabulatedXSec.cc.
References delta_ias(), marley::Reaction::get_ejectile_pdg(), marley::MassTable::Instance(), proc_type_, and responses_.
| double marley::TabulatedXSec::delta_ias | ( | ) | const |
Get the shift used to compute the effective energy transfer.
Definition at line 448 of file TabulatedXSec.cc.
References delta_ias_, and is_cc().
Referenced by compute_integral().
| double marley::TabulatedXSec::diff_xsec | ( | int | pdg_a, |
| double | KE_a, | ||
| double | omega, | ||
| double | cos_theta, | ||
| const MultipoleLabel & | ml ) const |
Definition at line 116 of file TabulatedXSec.cc.
|
inline |
Definition at line 83 of file TabulatedXSec.hh.
|
inline |
Definition at line 86 of file TabulatedXSec.hh.
| double marley::TabulatedXSec::integral | ( | int | pdg_a, |
| double | KEa ) const |
Definition at line 354 of file TabulatedXSec.cc.
| double marley::TabulatedXSec::integral | ( | int | pdg_a, |
| double | KEa, | ||
| const MultipoleLabel & | ml, | ||
| double & | diff_max ) const |
Definition at line 319 of file TabulatedXSec.cc.
|
inline |
Returns true if this cross section represents a CC process or false otherwise.
Definition at line 51 of file TabulatedXSec.hh.
References is_cc(), and proc_type_.
Referenced by delta_ias(), and is_cc().
| void marley::TabulatedXSec::optimize | ( | int | pdg_a, |
| double | max_KEa ) |
Definition at line 366 of file TabulatedXSec.cc.
|
inline |
Definition at line 96 of file TabulatedXSec.hh.
|
protected |
Method to use for computing Coulomb corrections to the cross section.
Definition at line 158 of file TabulatedXSec.hh.
|
protected |
Effective shift in the energy transfer that accounts for the mass difference between the ground state of the initial nucleus and the isobaric analog state in the daughter nucleus
Definition at line 174 of file TabulatedXSec.hh.
Referenced by delta_ias().
|
protected |
Storage for interpolating functions used to optimize calculations requiring numerical integration
Definition at line 169 of file TabulatedXSec.hh.
|
protected |
PDG code of the nuclear residue produced by the reaction described by this cross section
Definition at line 162 of file TabulatedXSec.hh.
|
protected |
Kind of process for which the cross section will be computed.
Definition at line 155 of file TabulatedXSec.hh.
Referenced by compute_integral(), and is_cc().
|
protected |
Tables of nuclear responses organized by multipole.
Definition at line 165 of file TabulatedXSec.hh.
Referenced by compute_integral().
|
protected |
Nuclide represented by this table of nuclear responses.
Definition at line 152 of file TabulatedXSec.hh.