MARLEY (Model of Argon Reaction Low Energy Yields)  v1.2.0
A Monte Carlo event generator for tens-of-MeV neutrino interactions
Classes | Public Member Functions | Protected Attributes | List of all members
marley::ContinuumExitChannel Class Referenceabstract

Abstract base class for ExitChannel objects that lead to the unbound continuum in the final state. More...

#include <ExitChannel.hh>

Inheritance diagram for marley::ContinuumExitChannel:
marley::ExitChannel marley::FragmentContinuumExitChannel marley::GammaContinuumExitChannel

Classes

struct  SpinParityWidth
 A spin-parity value with its corresponding partial decay width. More...
 

Public Member Functions

 ContinuumExitChannel (double Ec_min, int lmax)
 
virtual void compute_total_width () final override
 
virtual double differential_width (double Exf, bool store_jpi_widths=false) const =0
 
virtual void do_decay (double &Ex, int &two_J, marley::Parity &Pi, const marley::Particle &compound_nucleus, marley::Particle &emitted_particle, marley::Particle &residual_nucleus, marley::Generator &gen) const final override
 Simulates a nuclear decay into this channel. More...
 
virtual double E_c_max () const =0
 Returns the maximum accessible excitation energy to be used when integrating over the continuum.
 
double E_c_min () const
 Returns the minimum excitation energy bound for the continuum.
 
virtual bool is_continuum () const final override
 Returns true if this channel accesses the particle-unbound continuum of nuclear levels or false otherwise.
 
double sample_Exf (marley::Generator &gen) const
 
void sample_spin_parity (double Exf, int &two_Jf, marley::Parity &Pf, marley::Generator &gen) const
 
void set_skip_jpi_sampling (bool skip_it) const
 Sets the flag that will skip sampling of a final-state nuclear spin-parity value in do_decay() More...
 
- Public Member Functions inherited from marley::ExitChannel
 ExitChannel ()=default
 
 ExitChannel (int pdgi, int qi, double Exi, int twoJi, marley::Parity Pi, double rho_i, marley::StructureDatabase &sdb)
 
virtual bool emits_fragment () const =0
 Returns true if this channel involves fragment emission or false if it involves gamma-ray emission.
 
virtual int emitted_particle_pdg () const =0
 Returns the PDG code for the particle (gamma-ray or nuclear fragment) emitted by decays into this ExitChannel.
 
virtual int final_nucleus_pdg () const =0
 Returns the PDG code for the final nucleus.
 
double width () const
 Get the total decay width into this channel (MeV)
 

Protected Attributes

double E_c_min_
 Minimum accessible nuclear excitation energy (MeV) in the continuum.
 
std::unique_ptr< marley::ChebyshevInterpolatingFunctionExf_cdf_
 Chebyshev polynomial interpolant to the cumulative density function for the final-state nuclear excitation energy. More...
 
std::vector< SpinParityWidthjpi_widths_table_
 Table of possible final-state spin-parities together with their partial differential decay widths.
 
int l_max_
 
bool skip_jpi_sampling_ = false
 Flag that allows skipping the sampling of a final nuclear spin-parity (useful only for testing purposes)
 
- Protected Attributes inherited from marley::ExitChannel
double Exi_
 Initial nuclear excitation energy \( E_x \) (MeV)
 
double one_over_two_pi_rho_i_
 
int pdgi_
 PDG code for the initial nucleus.
 
marley::Parity Pi_
 Initial nuclear parity \( \Pi \).
 
int qi_
 
marley::StructureDatabasesdb_
 StructureDatabase to use in calculations.
 
int twoJi_
 Two times the initial nuclear spin \( J \).
 
double width_
 Total decay width into this channel (MeV)
 

Additional Inherited Members

- Static Public Member Functions inherited from marley::ExitChannel
template<typename It >
static marley::IteratorToPointerMember< It, double > make_width_iterator (It it)
 Convert an iterator that points to an ExitChannel object into an iterator to the ExitChannel's width_ member variable. More...
 
- Protected Member Functions inherited from marley::ExitChannel
virtual void prepare_products (const marley::Particle &compound_nucleus, marley::Particle &emitted_particle, marley::Particle &residual_nucleus, double Exf, marley::Generator &gen) const
 Helper function that prepares Particle objects representing the products of the two-body decay. More...
 

Detailed Description

Abstract base class for ExitChannel objects that lead to the unbound continuum in the final state.

Constructor & Destructor Documentation

◆ ContinuumExitChannel()

marley::ContinuumExitChannel::ContinuumExitChannel ( double  Ec_min,
int  lmax 
)
inline
Parameters
Ec_minMinimum accessible nuclear excitation energy in the continuum. Below this value, only discrete nuclear levels are assumed to be present.
lmaxThe maximum value of the orbital angular momentum (multipolarity) \( \ell \) to consider when computing differential decay widths for fragment (gamma-ray) emission to the continuum

Member Function Documentation

◆ compute_total_width()

void marley::ContinuumExitChannel::compute_total_width ( )
finaloverridevirtual

Helper function that initializes the width_ member variable upon construction

Implements marley::ExitChannel.

◆ do_decay()

void marley::ContinuumExitChannel::do_decay ( double &  Exf,
int &  two_Jf,
marley::Parity Pf,
const marley::Particle compound_nucleus,
marley::Particle emitted_particle,
marley::Particle residual_nucleus,
marley::Generator gen 
) const
finaloverridevirtual

Simulates a nuclear decay into this channel.

Parameters
[out]ExfThe final nuclear excitation energy
[out]two_JfTwo times the final nuclear spin
[out]PfThe final nuclear parity
[in]compound_nucleusParticle object representing the initial nucleus
[out]emitted_particleParticle emitted in the de-excitation
[out]residual_nucleusFinal-state nucleus after particle emission
genGenerator to use for random sampling

Implements marley::ExitChannel.

◆ set_skip_jpi_sampling()

void marley::ContinuumExitChannel::set_skip_jpi_sampling ( bool  skip_it) const
inline

Sets the flag that will skip sampling of a final-state nuclear spin-parity value in do_decay()

The skipping functionality should only be used for testing purposes!

Member Data Documentation

◆ Exf_cdf_

std::unique_ptr<marley::ChebyshevInterpolatingFunction> marley::ContinuumExitChannel::Exf_cdf_
mutableprotected

Chebyshev polynomial interpolant to the cumulative density function for the final-state nuclear excitation energy.

This pointer will be initialized lazily during the first call to do_decay()

◆ l_max_

int marley::ContinuumExitChannel::l_max_
protected

Maximum orbital angular momentum (multipolarity) to consider when computing differential fragment (gamma-ray) decay widths


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