Bayeux  3.4.1
Core Foundation library for SuperNEMO
Classes | Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | List of all members
genbb::beta_decay Class Reference

Description of a beta decay. More...

#include <bayeux/genbb_help/beta_decay.h>

Inheritance diagram for genbb::beta_decay:
genbb::base_decay_driver datatools::i_tree_dumpable

Classes

struct  electron_shakeoff_entry
 Entry for a given daughter recoil ion's charge state. More...
 

Public Types

enum  decay_type { BETA_DECAY_INVALID = 0, BETA_DECAY_MINUS = 1, BETA_DECAY_PLUS = 2 }
 Type of the beta decay. More...
 
enum  coupling_type {
  COUPLING_INVALID = 0, COUPLING_AXIAL_VECTOR = 1, COUPLING_TENSOR = 2, COUPLING_SCALAR = 3,
  COUPLING_VECTOR = 4, COUPLING_USER = 5, COUPLING_UNKNOWN = 6
}
 Type of the coupling. More...
 
enum  electron_shakeoff_mode_type { ESO_NO_SHAKEOFF = 0, ESO_FIXED_CHARGE = 1, ESO_RANDOM_CHARGE = 2 }
 Daughter recoil ion's electron shakeoff mode. More...
 
typedef std::vector< electron_shakeoff_entryelectron_shakeoff_data_type
 
- Public Types inherited from datatools::i_tree_dumpable
enum  ostream_type { OSTREAM_COUT = 1, OSTREAM_CERR = 2, OSTREAM_CLOG = 3 }
 Enumeration for standard output streams. More...
 

Public Member Functions

 beta_decay ()
 Default constructor. More...
 
virtual ~beta_decay ()
 Destructor. More...
 
void set_type (decay_type)
 Set the type of the beta decay. More...
 
decay_type get_type () const
 Return the type of the beta decay. More...
 
bool is_beta_minus () const
 Check if the decay is a beta minus. More...
 
bool is_beta_plus () const
 Check if the decay is a beta plus. More...
 
bool has_q_beta () const
 Check if Q beta is set. More...
 
void set_q_beta (double)
 Set the Q beta of the decay. More...
 
double get_q_beta () const
 Return the Q beta of the decay. More...
 
void set_A (int)
 Set the A of the decaying nucleus. More...
 
int get_A () const
 Return the A of the decaying nucleus. More...
 
void set_Z_parent (int)
 Set the Z of the parent nucleus. More...
 
int get_Z_parent () const
 Return the Z of the parent nucleus. More...
 
void set_Z_daughter (int)
 Set the Z of the daughter nucleus. More...
 
int get_Z_daughter () const
 Return the Z of the daughter nucleus. More...
 
void set_mass_parent (double)
 Set the isotopic mass of the parent nucleus (not the atomic mass) More...
 
double get_mass_parent () const
 Return the isotopic mass of the parent nucleus (not the atomic mass) More...
 
void set_mass_daughter (double)
 Set the isotopic mass of the daughter nucleus (not the atomic mass) More...
 
double get_mass_daughter () const
 Return the isotopic mass of the daughter nucleus (not the atomic mass) More...
 
void set_energy_parent (double)
 Set the excitation energy of the parent nucleus. More...
 
double get_energy_parent () const
 Return the excitation energy of the parent nucleus. More...
 
void set_energy_daughter (double)
 Set the excitation energy of the daughter nucleus. More...
 
double get_energy_daughter () const
 Return the isotopic mass of the daughter nucleus. More...
 
void set_coupling (coupling_type coupling_)
 Set the coupling of the beta decay. More...
 
coupling_type get_coupling () const
 Return the coupling of the beta decay. More...
 
bool coupling_is_known () const
 Check if coupling is known. More...
 
void set_a (double)
 Set the beta-neutrino angular correlation coefficient. More...
 
double get_a () const
 Return the beta-neutrino angular correlation coefficient. More...
 
void set_ke_cut (double)
 Set the cut on beta kinetic energy. More...
 
double get_ke_cut () const
 Return the cut on beta kinetic energy. More...
 
bool is_electron_shakeoff () const
 Check electron shakeoff mode. More...
 
void set_electron_shakeoff (electron_shakeoff_mode_type eso_mode_)
 Set electron shakeoff mode. More...
 
bool has_electron_shakeoff_fixed_charge () const
 Check the fixed electron shakeoff charge of the daughter recoil ion. More...
 
int get_electron_shakeoff_fixed_charge () const
 Return the fixed electron shakeoff charge of the daughter recoil ion. More...
 
void set_electron_shakeoff_fixed_charge (int charge_)
 Set fixed electron shakeoff charge of the daughter recoil ion. More...
 
void add_electron_shakeoff_random (int charge_, double probability_)
 
const electron_shakeoff_data_typeget_electron_shakeoff_data_random () const
 Return the random for random electron shakeoff. More...
 
void set_log_filename (const std::string &)
 Set the name of the file. More...
 
const std::string & get_log_filename () const
 Return the name of the log file. More...
 
bool is_beta_generated () const
 Check the beta generation flag. More...
 
void set_beta_generated (bool)
 Set the beta generation flag. More...
 
bool is_neutrino_generated () const
 Check the neutrino generation flag. More...
 
void set_neutrino_generated (bool)
 Set the neutrino generation flag. More...
 
bool is_daughter_generated () const
 Check the daughter nucleus/ion generation flag. More...
 
void set_daughter_generated (bool)
 Set the daughter nucleus/ion generation flag. More...
 
double get_pr_max () const
 Return the maximum value of the recoil ion momentum. More...
 
double get_probability_max () const
 Return the maximum value of the probability density for Von Neumann method. More...
 
double pdf_ke_pr (double ke_, double pr_) const
 Compute the probability density function for a given electron kinetic energy and a given recoil ion momentum. More...
 
virtual void tree_dump (std::ostream &out_=std::clog, const std::string &title_="", const std::string &indent_="", bool inherit_=false) const
 Smart print. More...
 
void display_pdf (const std::string &title_="") const
 Display PDF. More...
 
int fire_event_kinematics (mygsl::rng &prng_, double &ke_, double &pr_, double &pnu_, double &cer_, double &cenu_) const
 
virtual void set_levels (const nuclear_level &level_start_, const nuclear_level &level_stop_)
 Set the transition parameter from the start and stop levels. More...
 
virtual void initialize (const datatools::properties &config_)
 Initialization. More...
 
virtual void reset ()
 Reset. More...
 
virtual int fill (mygsl::rng &prng_, genbb::primary_event &event_)
 Shoot the kinematics of the decay and fill a primary event. More...
 
- Public Member Functions inherited from genbb::base_decay_driver
 base_decay_driver ()
 Default constructor. More...
 
virtual ~base_decay_driver ()
 Destructor. More...
 
datatools::logger::priority get_logging () const
 Return the logging priority threshold. More...
 
void set_logging (datatools::logger::priority)
 Set the logging priority threshold. More...
 
bool is_initialized () const
 Check initialization status. More...
 
void initialize_simple ()
 Initialization. More...
 
- Public Member Functions inherited from datatools::i_tree_dumpable
 i_tree_dumpable ()
 Constructor. More...
 
virtual ~i_tree_dumpable ()
 Destructor. More...
 
virtual void print_tree (std::ostream &out_=std::clog, const boost::property_tree::ptree &options_=empty_options()) const
 Main new interface method for printing. More...
 
void print_tree_json (std::ostream &out_=std::clog, const std::string &json_options_="") const
 Printing with jsonized options. More...
 
void print_tree_json (std::ostream &out_=std::clog, const char *json_options_=nullptr) const
 Printing with jsonized options. More...
 
void tree_dump_id (const int out_type_=OSTREAM_CLOG, const std::string &title_="", const std::string &indent_="", const bool inherit_=false) const
 
void tree_print_id (const int out_type_=OSTREAM_CLOG, const std::string &title_="") const
 
void smart_print_id (const int out_type_=OSTREAM_CLOG, const std::string &title_="", const std::string &indent_="") const
 

Static Public Member Functions

static std::string label_from_decay_type (decay_type)
 Return a label associated to a decay type. More...
 
static decay_type decay_type_from_label (const std::string &)
 Return a coupling associated to a label. More...
 
static std::string label_from_coupling (coupling_type)
 Return a label associated to a coupling. More...
 
static coupling_type coupling_from_label (const std::string &)
 Return a coupling associated to a label. More...
 
static double a_value (coupling_type)
 
static void compute_ke_limits (double q_beta_, double pr_, double &ke_min_, double &ke_max_)
 Compute the bounds for the electron kinetic energy. More...
 
- Static Public Member Functions inherited from datatools::i_tree_dumpable
static const boost::property_tree::ptree & empty_options ()
 
static boost::property_tree::ptree make_base_print_options (const std::string &title_, const std::string &indent_="", const bool inherit_=false)
 
static std::ostream & last_skip_tag (std::ostream &out_)
 
static std::ostream & skip_tag (std::ostream &out_)
 
static std::ostream & last_tag (std::ostream &out_)
 
static std::ostream & tag (std::ostream &out_)
 

Static Public Attributes

static const int ESO_INVALID_FIXED_CHARGE = 0xFFFFFFFF
 Invalid electron shakeoff fixed charge. More...
 

Protected Member Functions

void _compute_pr_max ()
 Compute the maximum value of the recoil ion momentum. More...
 
void _compute_limits ()
 Compute some internal data. More...
 
void _init ()
 Compute some internal data. More...
 
void _init_electron_shakeoff ()
 Initialize electron shakeoff. More...
 
void _set_default ()
 Set default values (initialization) More...
 
- Protected Member Functions inherited from genbb::base_decay_driver
void _set_default ()
 Set the default attributes. More...
 
void _set_initialized (bool)
 Set the initialization flag. More...
 
void _initialize (const datatools::properties &setup_)
 Initialization. More...
 

Detailed Description

Description of a beta decay.

Member Typedef Documentation

◆ electron_shakeoff_data_type

Member Enumeration Documentation

◆ coupling_type

Type of the coupling.

Enumerator
COUPLING_INVALID 

Invalid coupling.

COUPLING_AXIAL_VECTOR 

Axial-vector coupling (pure Gamow-Teller)

COUPLING_TENSOR 

Tensor coupling.

COUPLING_SCALAR 

Scalar coupling.

COUPLING_VECTOR 

Vector coupling (pure Fermi)

COUPLING_USER 

User defined coupling.

COUPLING_UNKNOWN 

Unknown coupling.

◆ decay_type

Type of the beta decay.

Enumerator
BETA_DECAY_INVALID 

Invalid beta decay type.

BETA_DECAY_MINUS 

Beta minus.

BETA_DECAY_PLUS 

Beta plus.

◆ electron_shakeoff_mode_type

Daughter recoil ion's electron shakeoff mode.

Enumerator
ESO_NO_SHAKEOFF 

No electron shakeoff.

ESO_FIXED_CHARGE 

Force daughter recoil ion's charge state.

ESO_RANDOM_CHARGE 

Randomize daughter recoil ion's charge state.

Constructor & Destructor Documentation

◆ beta_decay()

genbb::beta_decay::beta_decay ( )

Default constructor.

◆ ~beta_decay()

virtual genbb::beta_decay::~beta_decay ( )
virtual

Destructor.

Member Function Documentation

◆ _compute_limits()

void genbb::beta_decay::_compute_limits ( )
protected

Compute some internal data.

◆ _compute_pr_max()

void genbb::beta_decay::_compute_pr_max ( )
protected

Compute the maximum value of the recoil ion momentum.

◆ _init()

void genbb::beta_decay::_init ( )
protected

Compute some internal data.

◆ _init_electron_shakeoff()

void genbb::beta_decay::_init_electron_shakeoff ( )
protected

Initialize electron shakeoff.

◆ _set_default()

void genbb::beta_decay::_set_default ( )
protected

Set default values (initialization)

◆ a_value()

static double genbb::beta_decay::a_value ( coupling_type  )
static

◆ add_electron_shakeoff_random()

void genbb::beta_decay::add_electron_shakeoff_random ( int  charge_,
double  probability_ 
)

Add an charge entry for the random electron shakeoff

  • charge_ the charge state (in unit of +e : ..., -2, -1 , 0, +1 , +2, ...)
  • probability_ the associated probability (not necessarily normalized)

◆ compute_ke_limits()

static void genbb::beta_decay::compute_ke_limits ( double  q_beta_,
double  pr_,
double &  ke_min_,
double &  ke_max_ 
)
static

Compute the bounds for the electron kinetic energy.

◆ coupling_from_label()

static coupling_type genbb::beta_decay::coupling_from_label ( const std::string &  )
static

Return a coupling associated to a label.

◆ coupling_is_known()

bool genbb::beta_decay::coupling_is_known ( ) const

Check if coupling is known.

◆ decay_type_from_label()

static decay_type genbb::beta_decay::decay_type_from_label ( const std::string &  )
static

Return a coupling associated to a label.

◆ display_pdf()

void genbb::beta_decay::display_pdf ( const std::string &  title_ = "") const

Display PDF.

◆ fill()

virtual int genbb::beta_decay::fill ( mygsl::rng prng_,
genbb::primary_event event_ 
)
virtual

Shoot the kinematics of the decay and fill a primary event.

Implements genbb::base_decay_driver.

◆ fire_event_kinematics()

int genbb::beta_decay::fire_event_kinematics ( mygsl::rng prng_,
double &  ke_,
double &  pr_,
double &  pnu_,
double &  cer_,
double &  cenu_ 
) const

Shoot the kinematics of the decay:

  • prng_ The pseudo-random number generator
  • ke_ the kinetic energy of the emitted beta particle
  • pr_ the momentum energy of the emitted recoil ion
  • cer_ the cosine of the angle between the beta particle and the recoil ion
  • cenu_ the cosine of the angle between the beta particle and the (anti-)neutrino

◆ get_A()

int genbb::beta_decay::get_A ( ) const

Return the A of the decaying nucleus.

◆ get_a()

double genbb::beta_decay::get_a ( ) const

Return the beta-neutrino angular correlation coefficient.

◆ get_coupling()

coupling_type genbb::beta_decay::get_coupling ( ) const

Return the coupling of the beta decay.

◆ get_electron_shakeoff_data_random()

const electron_shakeoff_data_type& genbb::beta_decay::get_electron_shakeoff_data_random ( ) const

Return the random for random electron shakeoff.

◆ get_electron_shakeoff_fixed_charge()

int genbb::beta_decay::get_electron_shakeoff_fixed_charge ( ) const

Return the fixed electron shakeoff charge of the daughter recoil ion.

◆ get_energy_daughter()

double genbb::beta_decay::get_energy_daughter ( ) const

Return the isotopic mass of the daughter nucleus.

◆ get_energy_parent()

double genbb::beta_decay::get_energy_parent ( ) const

Return the excitation energy of the parent nucleus.

◆ get_ke_cut()

double genbb::beta_decay::get_ke_cut ( ) const

Return the cut on beta kinetic energy.

◆ get_log_filename()

const std::string& genbb::beta_decay::get_log_filename ( ) const

Return the name of the log file.

◆ get_mass_daughter()

double genbb::beta_decay::get_mass_daughter ( ) const

Return the isotopic mass of the daughter nucleus (not the atomic mass)

◆ get_mass_parent()

double genbb::beta_decay::get_mass_parent ( ) const

Return the isotopic mass of the parent nucleus (not the atomic mass)

◆ get_pr_max()

double genbb::beta_decay::get_pr_max ( ) const

Return the maximum value of the recoil ion momentum.

◆ get_probability_max()

double genbb::beta_decay::get_probability_max ( ) const

Return the maximum value of the probability density for Von Neumann method.

◆ get_q_beta()

double genbb::beta_decay::get_q_beta ( ) const

Return the Q beta of the decay.

◆ get_type()

decay_type genbb::beta_decay::get_type ( ) const

Return the type of the beta decay.

◆ get_Z_daughter()

int genbb::beta_decay::get_Z_daughter ( ) const

Return the Z of the daughter nucleus.

◆ get_Z_parent()

int genbb::beta_decay::get_Z_parent ( ) const

Return the Z of the parent nucleus.

◆ has_electron_shakeoff_fixed_charge()

bool genbb::beta_decay::has_electron_shakeoff_fixed_charge ( ) const

Check the fixed electron shakeoff charge of the daughter recoil ion.

◆ has_q_beta()

bool genbb::beta_decay::has_q_beta ( ) const

Check if Q beta is set.

◆ initialize()

virtual void genbb::beta_decay::initialize ( const datatools::properties config_)
virtual

Initialization.

Implements genbb::base_decay_driver.

◆ is_beta_generated()

bool genbb::beta_decay::is_beta_generated ( ) const

Check the beta generation flag.

◆ is_beta_minus()

bool genbb::beta_decay::is_beta_minus ( ) const

Check if the decay is a beta minus.

◆ is_beta_plus()

bool genbb::beta_decay::is_beta_plus ( ) const

Check if the decay is a beta plus.

◆ is_daughter_generated()

bool genbb::beta_decay::is_daughter_generated ( ) const

Check the daughter nucleus/ion generation flag.

◆ is_electron_shakeoff()

bool genbb::beta_decay::is_electron_shakeoff ( ) const

Check electron shakeoff mode.

◆ is_neutrino_generated()

bool genbb::beta_decay::is_neutrino_generated ( ) const

Check the neutrino generation flag.

◆ label_from_coupling()

static std::string genbb::beta_decay::label_from_coupling ( coupling_type  )
static

Return a label associated to a coupling.

◆ label_from_decay_type()

static std::string genbb::beta_decay::label_from_decay_type ( decay_type  )
static

Return a label associated to a decay type.

◆ pdf_ke_pr()

double genbb::beta_decay::pdf_ke_pr ( double  ke_,
double  pr_ 
) const

Compute the probability density function for a given electron kinetic energy and a given recoil ion momentum.

◆ reset()

virtual void genbb::beta_decay::reset ( )
virtual

Reset.

Implements genbb::base_decay_driver.

◆ set_A()

void genbb::beta_decay::set_A ( int  )

Set the A of the decaying nucleus.

◆ set_a()

void genbb::beta_decay::set_a ( double  )

Set the beta-neutrino angular correlation coefficient.

◆ set_beta_generated()

void genbb::beta_decay::set_beta_generated ( bool  )

Set the beta generation flag.

◆ set_coupling()

void genbb::beta_decay::set_coupling ( coupling_type  coupling_)

Set the coupling of the beta decay.

◆ set_daughter_generated()

void genbb::beta_decay::set_daughter_generated ( bool  )

Set the daughter nucleus/ion generation flag.

◆ set_electron_shakeoff()

void genbb::beta_decay::set_electron_shakeoff ( electron_shakeoff_mode_type  eso_mode_)

Set electron shakeoff mode.

◆ set_electron_shakeoff_fixed_charge()

void genbb::beta_decay::set_electron_shakeoff_fixed_charge ( int  charge_)

Set fixed electron shakeoff charge of the daughter recoil ion.

◆ set_energy_daughter()

void genbb::beta_decay::set_energy_daughter ( double  )

Set the excitation energy of the daughter nucleus.

◆ set_energy_parent()

void genbb::beta_decay::set_energy_parent ( double  )

Set the excitation energy of the parent nucleus.

◆ set_ke_cut()

void genbb::beta_decay::set_ke_cut ( double  )

Set the cut on beta kinetic energy.

◆ set_levels()

virtual void genbb::beta_decay::set_levels ( const nuclear_level level_start_,
const nuclear_level level_stop_ 
)
virtual

Set the transition parameter from the start and stop levels.

Reimplemented from genbb::base_decay_driver.

◆ set_log_filename()

void genbb::beta_decay::set_log_filename ( const std::string &  )

Set the name of the file.

◆ set_mass_daughter()

void genbb::beta_decay::set_mass_daughter ( double  )

Set the isotopic mass of the daughter nucleus (not the atomic mass)

◆ set_mass_parent()

void genbb::beta_decay::set_mass_parent ( double  )

Set the isotopic mass of the parent nucleus (not the atomic mass)

◆ set_neutrino_generated()

void genbb::beta_decay::set_neutrino_generated ( bool  )

Set the neutrino generation flag.

◆ set_q_beta()

void genbb::beta_decay::set_q_beta ( double  )

Set the Q beta of the decay.

◆ set_type()

void genbb::beta_decay::set_type ( decay_type  )

Set the type of the beta decay.

◆ set_Z_daughter()

void genbb::beta_decay::set_Z_daughter ( int  )

Set the Z of the daughter nucleus.

◆ set_Z_parent()

void genbb::beta_decay::set_Z_parent ( int  )

Set the Z of the parent nucleus.

◆ tree_dump()

virtual void genbb::beta_decay::tree_dump ( std::ostream &  out_ = std::clog,
const std::string &  title_ = "",
const std::string &  indent_ = "",
bool  inherit_ = false 
) const
virtual

Smart print.

Reimplemented from genbb::base_decay_driver.

Member Data Documentation

◆ ESO_INVALID_FIXED_CHARGE

const int genbb::beta_decay::ESO_INVALID_FIXED_CHARGE = 0xFFFFFFFF
static

Invalid electron shakeoff fixed charge.


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