MARLEY (Model of Argon Reaction Low Energy Yields)  v1.1.0
A Monte Carlo event generator for tens-of-MeV neutrino-nucleus interactions in liquid argon
 All Classes Functions Variables Enumerations Pages
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
marley::ExitChannel Class Referenceabstract

Abstract base class for compound nucleus de-excitation channels. More...

#include <ExitChannel.hh>

Inheritance diagram for marley::ExitChannel:
marley::ContinuumExitChannel marley::DiscreteExitChannel marley::FragmentContinuumExitChannel marley::GammaContinuumExitChannel marley::FragmentDiscreteExitChannel marley::GammaDiscreteExitChannel

Public Member Functions

 ExitChannel (double width)
 
virtual void do_decay (double &Ex, int &two_J, marley::Parity &Pi, marley::Particle &emitted_particle, marley::Particle &residual_nucleus, marley::Generator &gen)=0
 Simulates a nuclear decay into this channel. More...
 
virtual bool emits_fragment () const =0
 Returns true if this decay channel involves fragment emission or false if it involves gamma-ray emission.
 
virtual bool is_continuum () const =0
 Returns true if this channel accesses the particle-unbound continuum of nuclear levels or false otherwise.
 
double width () const
 Get the partial decay width to this channel.
 

Static Public Member Functions

template<typename It >
static
marley::IteratorToPointerMember
< It, marley::ExitChannel,
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 Attributes

double width_
 Partial decay width (MeV)
 

Detailed Description

Abstract base class for compound nucleus de-excitation channels.

Constructor & Destructor Documentation

marley::ExitChannel::ExitChannel ( double  width)
inline
Parameters
widthPartial decay width (MeV)

Member Function Documentation

virtual void marley::ExitChannel::do_decay ( double &  Ex,
int &  two_J,
marley::Parity Pi,
marley::Particle emitted_particle,
marley::Particle residual_nucleus,
marley::Generator gen 
)
pure virtual

Simulates a nuclear decay into this channel.

The excitation energy, spin, and parity values are loaded with their final values as this function returns.

Parameters
[in,out]ExThe nuclear excitation energy
[in,out]two_JTwo times the nuclear spin
[in,out]PiThe nuclear parity
[out]emitted_particleParticle emitted in the de-excitation
[out]residual_nucleusFinal-state nucleus after particle emission
genGenerator to use for random sampling

Implemented in marley::GammaContinuumExitChannel, marley::FragmentContinuumExitChannel, marley::GammaDiscreteExitChannel, and marley::FragmentDiscreteExitChannel.

template<typename It >
static marley::IteratorToPointerMember<It, marley::ExitChannel, double> marley::ExitChannel::make_width_iterator ( It  it)
inlinestatic

Convert an iterator that points to an ExitChannel object into an iterator to the ExitChannel's width_ member variable.

This is used to load a std::discrete_distribution with decay widths for sampling without redundant storage.


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