|
MARLEY (Model of Argon Reaction Low Energy Yields) v2.0.0
A Monte Carlo event generator for tens-of-MeV neutrino interactions
|
Abstract base class for ExitChannel objects that lead to the unbound continuum in the final state. More...
#include <ExitChannel.hh>
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 std::shared_ptr< HepMC3::GenParticle > &compound_nucleus, std::shared_ptr< HepMC3::GenParticle > &emitted_particle, std::shared_ptr< HepMC3::GenParticle > &residual_nucleus, int &qIon, marley::Generator &gen) const final override |
| Simulates a nuclear decay into this channel. | |
| 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. | |
| const SpinParityWidth * | get_last_sampled_spw () const |
| Returns a pointer to the last sampled SpinParityWidth object. | |
| const std::vector< std::unique_ptr< SpinParityWidth > > & | get_spw_table () const |
| Grants const access to the vector of SpinParityWidth objects. | |
| 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() | |
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 Member Functions | |
| void | clear_jpi_widths () const |
| Helper function that resets the table of SpinParityWidth objects. | |
Protected Member Functions inherited from marley::ExitChannel | |
| virtual void | prepare_products (const std::shared_ptr< HepMC3::GenParticle > &compound_nucleus, std::shared_ptr< HepMC3::GenParticle > &emitted_particle, std::shared_ptr< HepMC3::GenParticle > &residual_nucleus, double Exf, int &qf, marley::Generator &gen) const |
| Helper function that prepares Particle objects representing the products of the two-body decay. | |
Protected Attributes | |
| double | E_c_min_ |
| Minimum accessible nuclear excitation energy (MeV) in the continuum. | |
| std::unique_ptr< marley::ChebyshevInterpolatingFunction > | Exf_cdf_ |
| Chebyshev polynomial interpolant to the cumulative density function for the final-state nuclear excitation energy. | |
| std::vector< std::unique_ptr< SpinParityWidth > > | jpi_widths_table_ |
| Table of possible final-state spin-parities together with their partial differential decay widths. | |
| int | l_max_ |
| SpinParityWidth * | last_sampled_spw_ = nullptr |
| Points to the last SpinParityWidth object sampled in a previous call to sample_spin_parity() | |
| 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::StructureDatabase * | sdb_ |
| 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. | |
Abstract base class for ExitChannel objects that lead to the unbound continuum in the final state.
Definition at line 250 of file ExitChannel.hh.
|
inline |
| Ec_min | Minimum accessible nuclear excitation energy in the continuum. Below this value, only discrete nuclear levels are assumed to be present. |
| lmax | The maximum value of the orbital angular momentum (multipolarity) \( \ell \) to consider when computing differential decay widths for fragment (gamma-ray) emission to the continuum |
Definition at line 260 of file ExitChannel.hh.
References E_c_min_, and l_max_.
Referenced by marley::FragmentContinuumExitChannel::FragmentContinuumExitChannel(), and marley::GammaContinuumExitChannel::GammaContinuumExitChannel().
|
protected |
Helper function that resets the table of SpinParityWidth objects.
Definition at line 530 of file ExitChannel.cc.
References jpi_widths_table_, and last_sampled_spw_.
|
finaloverridevirtual |
Helper function that initializes the width_ member variable upon construction
Implements marley::ExitChannel.
Definition at line 297 of file ExitChannel.cc.
References E_c_min_, and marley::ExitChannel::width_.
Referenced by marley::FragmentContinuumExitChannel::FragmentContinuumExitChannel(), and marley::GammaContinuumExitChannel::GammaContinuumExitChannel().
|
finaloverridevirtual |
Simulates a nuclear decay into this channel.
| [out] | Exf | The final nuclear excitation energy |
| [out] | two_Jf | Two times the final nuclear spin |
| [out] | Pf | The final nuclear parity |
| [in] | compound_nucleus | Particle object representing the initial nucleus |
| [out] | emitted_particle | Particle emitted in the de-excitation |
| [out] | residual_nucleus | Final-state nucleus after particle emission |
| [out] | qIon | Charge (in units of the elementary charge) of the final-state nucleus (ion) after particle emission |
| gen | Generator to use for random sampling |
Implements marley::ExitChannel.
Definition at line 476 of file ExitChannel.cc.
References marley::ExitChannel::prepare_products(), and skip_jpi_sampling_.
|
pure virtual |
Returns the maximum accessible excitation energy to be used when integrating over the continuum.
Implemented in marley::FragmentContinuumExitChannel, and marley::GammaContinuumExitChannel.
|
inline |
Returns the minimum excitation energy bound for the continuum.
Definition at line 310 of file ExitChannel.hh.
References E_c_min_.
|
inline |
Returns a pointer to the last sampled SpinParityWidth object.
Definition at line 317 of file ExitChannel.hh.
References last_sampled_spw_.
Referenced by marley::NucleusDecayer::process_event().
|
inline |
Grants const access to the vector of SpinParityWidth objects.
Definition at line 322 of file ExitChannel.hh.
References jpi_widths_table_.
|
inlinefinaloverridevirtual |
Returns true if this channel accesses the particle-unbound continuum of nuclear levels or false otherwise.
Implements marley::ExitChannel.
Definition at line 277 of file ExitChannel.hh.
References is_continuum().
Referenced by is_continuum().
| double marley::ContinuumExitChannel::sample_Exf | ( | marley::Generator & | gen | ) | const |
Definition at line 450 of file ExitChannel.cc.
| void marley::ContinuumExitChannel::sample_spin_parity | ( | double | Exf, |
| int & | two_Jf, | ||
| marley::Parity & | Pf, | ||
| marley::Generator & | gen ) const |
Definition at line 495 of file ExitChannel.cc.
|
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!
Definition at line 283 of file ExitChannel.hh.
References skip_jpi_sampling_.
|
protected |
Minimum accessible nuclear excitation energy (MeV) in the continuum.
Definition at line 327 of file ExitChannel.hh.
Referenced by ContinuumExitChannel(), compute_total_width(), and E_c_min().
|
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()
Definition at line 346 of file ExitChannel.hh.
|
mutableprotected |
Table of possible final-state spin-parities together with their partial differential decay widths.
Definition at line 336 of file ExitChannel.hh.
Referenced by clear_jpi_widths(), and get_spw_table().
|
protected |
Maximum orbital angular momentum (multipolarity) to consider when computing differential fragment (gamma-ray) decay widths
Definition at line 331 of file ExitChannel.hh.
Referenced by ContinuumExitChannel().
|
mutableprotected |
Points to the last SpinParityWidth object sampled in a previous call to sample_spin_parity()
Definition at line 350 of file ExitChannel.hh.
Referenced by clear_jpi_widths(), and get_last_sampled_spw().
|
mutableprotected |
Flag that allows skipping the sampling of a final nuclear spin-parity (useful only for testing purposes)
Definition at line 340 of file ExitChannel.hh.
Referenced by do_decay(), and set_skip_jpi_sampling().