GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
INukeOsetFormula.h
Go to the documentation of this file.
1 /**
2  * @brief Formula-based implementation of Oset model
3  *
4  * @author Tomasz Golan
5  * @date 2015
6  * @warning Applicable for pion with Tk < 350 MeV
7  * @remarks Based on E. Oset et al., Nucl. Phys. A484 (1988) 557-592
8  *
9 */
10 
11 #ifndef INUKE_OSET_FORMULA_H
12 #define INUKE_OSET_FORMULA_H
13 
14 #include "INukeOset.h"
15 
16 // calculate cross section for piN based on Oset model
18 {
19  public:
20 
21  //! use to set up Oset class (assign pion Tk, nuclear density etc)
22  void setupOset (const double &density, const double &pionTk,
23  const int &pionPDG, const double &protonFraction);
24 
25  private:
26 
27  // constants
28  static const double fCouplingConstant; //!< f*^2
29  static const double fNucleonMass; //!< average nucleon mass [MeV]
30  static const double fNucleonMass2; //!< average nucleon mass squared
31  static const double fDeltaMass; //!< delta mass in MeV
32  static const double fNormalDensity; //!< normal nuclear density [fm-3]
33  static const double fNormFactor; //!< MeV^-2 -> mb
34 
35  static const double fCoefSigma[fNChannels]; //!< s-wave parametrization eq. 3.7
36  static const double fCoefB[fNChannels]; //!< s-wave parametrization eq. 3.8
37  static const double fCoefD[fNChannels]; //!< s-wave parametrization eq. 3.8
38  static const double ImB0; //!< s-wave parametrization eq. 3.12
39 
40  static const double fCoefCQ[fNChannels]; //!< quasi-elastic term (eq. 2.21)
41  static const double fCoefCA2[fNChannels]; //!< two-body absorption (eq. 2.21)
42  static const double fCoefCA3[fNChannels]; //!< three-body absorption (eq. 2.21)
43  static const double fCoefAlpha[fNChannels]; //!< alpha (eq. 2.21)
44  static const double fCoefBeta[fNChannels]; //!< beta (eq. 2.21)
45 
46  // kinematics variables
47  double fPionMass; //!< pion mass in MeV
48  double fPionMass2; //!< pion mass squared
49  double fPionMomentum; //!< pion momentum in MeV
50  double fPionEnergy; //!< pion total energy in MeV
51  double fMomentumCMS; //!< momentum in CMS in MeV
52  double fMomentumCMS2; //!< momentum in CMS squared
53  double fInvariantMass; //!< inv mass = sqrt(s mandelstam) in MeV
54 
55  // delta variables
56  double fReducedHalfWidth; //!< reduced delta half width in MeV
57  double fSelfEnergyTotal; //!< total delta self energy in MeV
58  double fSelfEnergyAbsorption; //!< abs part of delta self energy in MeV
59  double fDeltaPropagator2; //!< |delta propagator|^2 in MeV-2
60 
61  // nucleus variables
62  double fFermiMomentum; //!< Fermi momentum in MeV
63  double fFermiEnergy; //!< Fermi energy in MeV
64 
65  // cross sections
66  double fCouplingFactor; //!< (coupling constant / pion mass)^2
67 
68  //! set nuclear density and Fermi momentum / energy
69  void setNucleus (const double &density);
70  //! do kinematics
71  void setKinematics (const double &pionTk, const bool &isPi0);
72  //! set up Delta
73  void setDelta ();
74 
75  //! calculate delta self energy
76  void setSelfEnergy ();
77 
78  //! calculalte delta width reduction in nuclear medium
79  double deltaReduction () const;
80 
81  //! calculalte cross sections for each channel
82  void setCrossSections ();
83 };
84 
85 
86 #endif // INUKE_OSET_FORMULA_H
static const double fCoefSigma[fNChannels]
s-wave parametrization eq. 3.7
double deltaReduction() const
calculalte delta width reduction in nuclear medium
void setCrossSections()
calculalte cross sections for each channel
double fDeltaPropagator2
|delta propagator|^2 in MeV-2
void setKinematics(const double &pionTk, const bool &isPi0)
do kinematics
double fSelfEnergyTotal
total delta self energy in MeV
double fInvariantMass
inv mass = sqrt(s mandelstam) in MeV
static const double fCoefAlpha[fNChannels]
alpha (eq. 2.21)
static const double fCoefD[fNChannels]
s-wave parametrization eq. 3.8
static const double fCoefCA2[fNChannels]
two-body absorption (eq. 2.21)
double fPionMomentum
pion momentum in MeV
static const double fCoefCQ[fNChannels]
quasi-elastic term (eq. 2.21)
void setDelta()
set up Delta
static const double ImB0
s-wave parametrization eq. 3.12
static const double fNormFactor
MeV^-2 -&gt; mb.
double fMomentumCMS2
momentum in CMS squared
double fCouplingFactor
(coupling constant / pion mass)^2
double fFermiEnergy
Fermi energy in MeV.
double fFermiMomentum
Fermi momentum in MeV.
static const double fNormalDensity
normal nuclear density [fm-3]
void setNucleus(const double &density)
set nuclear density and Fermi momentum / energy
void setSelfEnergy()
calculate delta self energy
static const double fNucleonMass2
average nucleon mass squared
static const unsigned int fNChannels
number of possible channels: pi+n, pi+p, pi0
Definition: INukeOset.h:81
static const double fDeltaMass
delta mass in MeV
static const double fCoefCA3[fNChannels]
three-body absorption (eq. 2.21)
double fSelfEnergyAbsorption
abs part of delta self energy in MeV
double fPionEnergy
pion total energy in MeV
static const double fNucleonMass
average nucleon mass [MeV]
static const double fCoefB[fNChannels]
s-wave parametrization eq. 3.8
void setupOset(const double &density, const double &pionTk, const int &pionPDG, const double &protonFraction)
use to set up Oset class (assign pion Tk, nuclear density etc)
double fPionMass2
pion mass squared
static const double fCouplingConstant
f*^2
double fMomentumCMS
momentum in CMS in MeV
double fReducedHalfWidth
reduced delta half width in MeV
double fPionMass
pion mass in MeV
static const double fCoefBeta[fNChannels]
beta (eq. 2.21)
Formula-based implementation of Oset model.