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::FragmentExitChannel Class Reference

Abstract base class for ExitChannel objects that represent emission of a nuclear fragment. More...

#include <ExitChannel.hh>

Inheritance diagram for marley::FragmentExitChannel:
marley::ExitChannel marley::FragmentContinuumExitChannel marley::FragmentDiscreteExitChannel

Public Member Functions

 FragmentExitChannel (const marley::Fragment &fragment)
 
virtual bool emits_fragment () const final override
 Returns true if this channel involves fragment emission or false if it involves gamma-ray emission.
 
virtual int emitted_particle_pdg () const final override
 Returns the PDG code for the particle (gamma-ray or nuclear fragment) emitted by decays into this ExitChannel.
 
virtual int final_nucleus_pdg () const final override
 Returns the PDG code for the final nucleus.
 
- 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 void 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 =0
 Simulates a nuclear decay into this channel.
 
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 total decay width into this channel (MeV)
 

Protected Member Functions

double max_Exf () const
 Helper function that returns that maximum possible excitation energy for the daughter nucleus after emission of the fragment.
 
- 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.
 

Protected Attributes

int fragment_pdg_
 PDG code identifying the emitted fragment.
 
- 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.
 

Detailed Description

Abstract base class for ExitChannel objects that represent emission of a nuclear fragment.

Definition at line 195 of file ExitChannel.hh.

Constructor & Destructor Documentation

◆ FragmentExitChannel()

marley::FragmentExitChannel::FragmentExitChannel ( const marley::Fragment & fragment)
inline
Parameters
fragmentFragment emitted in this exit channel

Definition at line 199 of file ExitChannel.hh.

200 : fragment_pdg_( fragment.get_pid() ) {}
int fragment_pdg_
PDG code identifying the emitted fragment.
int get_pid() const
Get the PDG particle ID for this fragment.
Definition Fragment.hh:73

References fragment_pdg_.

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

Member Function Documentation

◆ emits_fragment()

virtual bool marley::FragmentExitChannel::emits_fragment ( ) const
inlinefinaloverridevirtual

Returns true if this channel involves fragment emission or false if it involves gamma-ray emission.

Implements marley::ExitChannel.

Definition at line 205 of file ExitChannel.hh.

206 { return true; }

◆ emitted_particle_pdg()

virtual int marley::FragmentExitChannel::emitted_particle_pdg ( ) const
inlinefinaloverridevirtual

Returns the PDG code for the particle (gamma-ray or nuclear fragment) emitted by decays into this ExitChannel.

Implements marley::ExitChannel.

Definition at line 202 of file ExitChannel.hh.

203 { return fragment_pdg_; }

References fragment_pdg_.

◆ final_nucleus_pdg()

int marley::FragmentExitChannel::final_nucleus_pdg ( ) const
finaloverridevirtual

Returns the PDG code for the final nucleus.

Implements marley::ExitChannel.

Definition at line 64 of file ExitChannel.cc.

64 {
65 int Zi = marley_utils::get_particle_Z( pdgi_ );
66 int Ai = marley_utils::get_particle_A( pdgi_ );
67
68 int Zfrag = marley_utils::get_particle_Z( fragment_pdg_ );
69 int Afrag = marley_utils::get_particle_A( fragment_pdg_ );
70
71 int Zf = Zi - Zfrag;
72 int Af = Ai - Afrag;
73
74 int pdgf = marley_utils::get_nucleus_pid( Zf, Af );
75 return pdgf;
76}
int pdgi_
PDG code for the initial nucleus.

References fragment_pdg_, and marley::ExitChannel::pdgi_.

Referenced by marley::FragmentDiscreteExitChannel::compute_total_width().

◆ max_Exf()

double marley::FragmentExitChannel::max_Exf ( ) const
protected

Helper function that returns that maximum possible excitation energy for the daughter nucleus after emission of the fragment.

Definition at line 78 of file ExitChannel.cc.

78 {
79 const auto& mt = marley::MassTable::Instance();
80 double Sa = mt.get_fragment_separation_energy( pdgi_, fragment_pdg_ );
81 double Exf_max = Exi_ - Sa;
82 return Exf_max;
83}
double Exi_
Initial nuclear excitation energy (MeV)
static const MassTable & Instance()
Get a const reference to the singleton instance of the MassTable.
Definition MassTable.cc:69

References marley::ExitChannel::Exi_, fragment_pdg_, marley::MassTable::Instance(), and marley::ExitChannel::pdgi_.

Referenced by marley::FragmentDiscreteExitChannel::compute_total_width(), and marley::FragmentContinuumExitChannel::E_c_max().

Member Data Documentation

◆ fragment_pdg_

int marley::FragmentExitChannel::fragment_pdg_
protected

PDG code identifying the emitted fragment.

Definition at line 217 of file ExitChannel.hh.

Referenced by FragmentExitChannel(), marley::FragmentDiscreteExitChannel::compute_total_width(), emitted_particle_pdg(), final_nucleus_pdg(), and max_Exf().


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