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

Abstract base class for ExitChannel objects that represent emission of a gamma-ray. More...

#include <ExitChannel.hh>

Inheritance diagram for marley::GammaExitChannel:
marley::ExitChannel marley::GammaContinuumExitChannel marley::GammaDiscreteExitChannel

Public Member Functions

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 gamma_energy (double Exf) const
 
marley::GammaStrengthFunctionModel::TransitionType get_transition_type (int mpol, marley::Parity Pf) const
 
- 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.
 

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 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)
 

Detailed Description

Abstract base class for ExitChannel objects that represent emission of a gamma-ray.

Definition at line 222 of file ExitChannel.hh.

Constructor & Destructor Documentation

◆ GammaExitChannel()

marley::GammaExitChannel::GammaExitChannel ( )
inline

Definition at line 225 of file ExitChannel.hh.

225{}

Member Function Documentation

◆ emits_fragment()

virtual bool marley::GammaExitChannel::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 230 of file ExitChannel.hh.

231 { return false; }

◆ emitted_particle_pdg()

virtual int marley::GammaExitChannel::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 227 of file ExitChannel.hh.

228 { return marley_utils::PHOTON; }

◆ final_nucleus_pdg()

virtual int marley::GammaExitChannel::final_nucleus_pdg ( ) const
inlinefinaloverridevirtual

Returns the PDG code for the final nucleus.

Implements marley::ExitChannel.

Definition at line 233 of file ExitChannel.hh.

234 { return pdgi_; }
int pdgi_
PDG code for the initial nucleus.

References marley::ExitChannel::pdgi_.

◆ gamma_energy()

double marley::GammaExitChannel::gamma_energy ( double Exf) const
protected

Definition at line 149 of file ExitChannel.cc.

149 {
150 // Approximate the gamma energy by the excitation energy difference between
151 // the initial and final nuclear states
152 // TODO: consider adding a nuclear recoil correction here
153 double E_gamma = Exi_ - Exf;
154 return E_gamma;
155}
double Exi_
Initial nuclear excitation energy (MeV)

◆ get_transition_type()

TrType marley::GammaExitChannel::get_transition_type ( int mpol,
marley::Parity Pf ) const
protected

Definition at line 158 of file ExitChannel.cc.

160{
161 // Electric transitions satisfy the parity relation Pi = (-1)^{\ell} * Pf,
162 // where Pi (Pf) are the initial (final) nuclear parities and \ell is the
163 // multipolarity of the transition. Magnetic transitions satisfy
164 // Pi = (-1)^{\ell + 1} * Pf. We choose the appropriate transition type
165 // here based on these rules.
166 bool mpol_is_odd = mpol % 2;
167 marley::Parity P_final_state = Pf * marley::Parity( !mpol_is_odd );
168 TrType type = ( Pi_ == P_final_state ) ? TrType::electric : TrType::magnetic;
169 return type;
170}
marley::Parity Pi_
Initial nuclear parity .

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