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

Abstract base class for ExitChannel objects that lead to discrete nuclear levels in the final state. More...

#include <ExitChannel.hh>

Inheritance diagram for marley::DiscreteExitChannel:
marley::ExitChannel marley::FragmentDiscreteExitChannel marley::GammaDiscreteExitChannel

Public Member Functions

 DiscreteExitChannel (const marley::Level &flev)
 
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...
 
const marley::Levelget_final_level () const
 Get a const reference to the final-state nuclear level.
 
virtual bool is_continuum () const final override
 Returns true if this channel accesses the particle-unbound continuum of nuclear levels or false otherwise.
 
- 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

const marley::Levelfinal_level_
 Reference to the final-state nuclear level.
 
- 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 compute_total_width ()=0
 
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 discrete nuclear levels in the final state.

Constructor & Destructor Documentation

◆ DiscreteExitChannel()

marley::DiscreteExitChannel::DiscreteExitChannel ( const marley::Level flev)
inline
Parameters
[in]flevReference to the final-state nuclear level

Member Function Documentation

◆ do_decay()

void marley::DiscreteExitChannel::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.


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