Bayeux  3.4.1
Core Foundation library for SuperNEMO
fermi_function.h
Go to the documentation of this file.
1 /* Author(s) : Francois Mauger <mauger@lpccaen.in2p3.fr>
3  * Creation date: 2014-06-06
4  * Last modified: 2014-06-06
5  *
6  * License:
7  * Copyright 2014 F. Mauger
8  *
9  * This program is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation; either version 3 of the License, or (at
12  * your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful, but
15  * WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17  * General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program; if not, write to the Free Software
21  * Foundation, Inc., 51 Franklin Street, Fifth Floor,
22  * Boston, MA 02110-1301, USA.
23  *
24  * Description:
25  *
26  * Fermi function.
27  *
28  * History:
29  *
30  */
31 
32 #ifndef GENBB_HELP_FERMI_FUNCTION_H
33 #define GENBB_HELP_FERMI_FUNCTION_H 1
34 
35 namespace genbb {
36 
39  {
40  public:
41 
43  enum mode_type {
47  };
48 
50  enum decay_type {
54  };
55 
57  bool is_valid() const;
58 
60  bool is_beta_plus() const;
61 
63  bool is_beta_minus() const;
64 
67 
69  fermi_function(int z_,
70  int a_,
71  decay_type beta_type_,
72  unsigned int mode_,
73  double ke_cut_ = -1.0);
74 
76  void set(int z_,
77  int a_,
78  decay_type beta_type_,
79  unsigned int mode_,
80  double ke_cut_ = -1.0);
81 
83  void reset();
84 
86  double operator()(double ke_) const;
87 
89  static double eval_non_relativistic_approx(int z_daughter_,
90  decay_type type_,
91  double ke_cut_,
92  bool shape_only_,
93  double ke_);
94 
96  static double eval_spherically_symmetric_approx(int z_daughter_,
97  int a_daughter_,
98  decay_type type_,
99  double ke_cut_,
100  bool shape_only_,
101  double ke_);
102 
103  private:
104 
105  unsigned int _mode_;
106  int _Z_;
107  int _A_;
108  decay_type _decay_type_;
109  double _ke_cut_;
110  };
111 
112 } // end of namespace genbb
113 
114 #endif // GENBB_HELP_FERMI_FUNCTION_H
115 
116 // Local Variables: --
117 // mode: c++ --
118 // End: --
Use only the unnormalized shape of the Fermi function.
Definition: fermi_function.h:46
bool is_beta_minus() const
Check beta minus decay type.
USe the "spherically symmetric" approximation.
Definition: fermi_function.h:45
bool is_valid() const
Check validity.
Fermi function for beta+/- decays.
Definition: fermi_function.h:38
bool is_beta_plus() const
Check beta plus decay type.
void set(int z_, int a_, decay_type beta_type_, unsigned int mode_, double ke_cut_=-1.0)
Set the function parameters.
void reset()
Reset the function parameters.
Definition: fermi_function.h:53
Use the non relativistic approximation.
Definition: fermi_function.h:44
decay_type
Decay type.
Definition: fermi_function.h:50
static double eval_spherically_symmetric_approx(int z_daughter_, int a_daughter_, decay_type type_, double ke_cut_, bool shape_only_, double ke_)
Spherically symmetric wavefunctions approximation.
Top-level namespace of the Bayeux/genbb_help module library.
Definition: alpha_decay.h:51
static double eval_non_relativistic_approx(int z_daughter_, decay_type type_, double ke_cut_, bool shape_only_, double ke_)
Non relativistic approximation.
fermi_function()
Default constructor.
double operator()(double ke_) const
Evaluation.
Definition: fermi_function.h:52
mode_type
Approximation mode for the calculation of the Fermi function.
Definition: fermi_function.h:43
Definition: fermi_function.h:51