MARLEY (Model of Argon Reaction Low Energy Yields) v2.0.0
A Monte Carlo event generator for tens-of-MeV neutrino interactions
Loading...
Searching...
No Matches
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 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.
 
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.
 
- Protected Member Functions inherited from marley::ExitChannel
virtual void compute_total_width ()=0
 
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.
 

Detailed Description

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

Definition at line 168 of file ExitChannel.hh.

Constructor & Destructor Documentation

◆ DiscreteExitChannel()

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

Definition at line 172 of file ExitChannel.hh.

172: final_level_( flev ) {}
const marley::Level & final_level_
Reference to the final-state nuclear level.

References final_level_.

Referenced by marley::FragmentDiscreteExitChannel::FragmentDiscreteExitChannel(), and marley::GammaDiscreteExitChannel::GammaDiscreteExitChannel().

Member Function Documentation

◆ do_decay()

void marley::DiscreteExitChannel::do_decay ( double & Exf,
int & two_Jf,
marley::Parity & Pf,
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
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
[out]qIonCharge (in units of the elementary charge) of the final-state nucleus (ion) after particle emission
genGenerator to use for random sampling

Implements marley::ExitChannel.

Definition at line 392 of file ExitChannel.cc.

397{
398 Exf = final_level_.energy();
399 two_Jf = final_level_.twoJ();
400 Pf = final_level_.parity();
401 this->prepare_products( compound_nucleus, emitted_particle,
402 residual_nucleus, Exf, qIon, gen );
403}
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.

References final_level_, and marley::ExitChannel::prepare_products().

◆ get_final_level()

const marley::Level & marley::DiscreteExitChannel::get_final_level ( ) const
inline

Get a const reference to the final-state nuclear level.

Definition at line 184 of file ExitChannel.hh.

185 { return final_level_; }

References final_level_.

Referenced by marley::OMPWeightCalculator::weight().

◆ is_continuum()

virtual bool marley::DiscreteExitChannel::is_continuum ( ) const
inlinefinaloverridevirtual

Returns true if this channel accesses the particle-unbound continuum of nuclear levels or false otherwise.

Implements marley::ExitChannel.

Definition at line 181 of file ExitChannel.hh.

181{ return false; }

Member Data Documentation

◆ final_level_

const marley::Level& marley::DiscreteExitChannel::final_level_
protected

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