4const double INukeOsetFormula :: fCouplingConstant = 0.36 * 4.0 *
kPi;
6const double INukeOsetFormula :: fNormalDensity = 0.17;
8const double INukeOsetFormula :: fNormFactor = 197.327 * 197.327 * 10.0;
12const double INukeOsetFormula :: fNucleonMass =
kNucleonMass * 1000.0;
13const double INukeOsetFormula :: fNucleonMass2 = fNucleonMass * fNucleonMass;
15const double INukeOsetFormula :: fDeltaMass = 1232.0;
19const double INukeOsetFormula :: fCoefSigma[3] = {-0.01334, 0.06889, 0.19753};
20const double INukeOsetFormula :: fCoefB[3] = {-0.01866, 0.06602, 0.21972};
21const double INukeOsetFormula :: fCoefD[3] = {-0.08229, 0.37062,-0.03130};
22const double INukeOsetFormula :: ImB0 = 0.035;
25const double INukeOsetFormula :: fCoefCQ[3] = { -5.19, 15.35, 2.06};
27const double INukeOsetFormula :: fCoefCA2[3] = { 1.06, -6.64, 22.66};
29const double INukeOsetFormula :: fCoefCA3[3] = {-13.46, 46.17, -20.34};
31const double INukeOsetFormula :: fCoefAlpha[3] = {0.382, -1.322, 1.466};
33const double INukeOsetFormula :: fCoefBeta[3] = {-0.038, 0.204, 0.613};
38void INukeOsetFormula :: setNucleus (
const double &density)
40 static const double constFactor = 3.0 / 2.0 *
kPi *
kPi;
52void INukeOsetFormula :: setKinematics (
const double &pionTk,
const bool &isPi0)
83void INukeOsetFormula :: setDelta ()
85 static const double constFactor = 1.0 / 12.0 /
kPi;
108void INukeOsetFormula :: setCrossSections ()
118 static const double pAborptionFactor = 4.0 / 9.0;
121 const double pXsecAbsorption = pAborptionFactor * pXsecCommon *
125 static const double sAbsorptionFactor = 4.0 *
kPi * 197.327 * 10.0 *
ImB0;
149 const double A = 0.5 + 0.5*D;
150 const double C = 1.0 - A;
153 const double sTotalQelFactor[
fNChannels] = {C - B, A + B, 1.0};
156 static const double pTotalQelFactor[
fNChannels] = {2.0 / 9.0, 2.0 / 3.0,
161 fQelCrossSections[i] = pTotalQelFactor[i] * pXsecTotalQel + sTotalQelFactor[i] * sXsecTotalQel;
166 static const double pCexFactor[
fNChannels] = {4.0 / 27.0, 0.0, 5.0 / 27.0};
169 const double sCexFactor[
fNChannels] = {2.0 * C, 0.0, 2.0 * C};
173 fCexCrossSections[i] = pCexFactor[i] * pXsecTotalQel + sCexFactor[i] * sXsecTotalQel;
177double INukeOsetFormula :: deltaReduction ()
const
188 if (mu0 < -1.0)
return 0.0;
189 if (mu0 > 1.0)
return 1.0;
191 return (mu0*mu0*mu0 + mu0 + 2) / 4.0;
195void INukeOsetFormula :: setSelfEnergy ()
206 absNN *= pow (densityFraction, beta);
208 if (absNNN < 0.0) absNNN = 0.0;
209 else absNNN *= pow (densityFraction, 2.0 * beta);
227void INukeOsetFormula :: setupOset (
const double &density,
const double &pionTk,
const int &pionPDG,
228 const double &protonFraction)
double fCexCrossSections[fNChannels]
cex cross section for each channel
double fQelCrossSections[fNChannels]
total qel (el+cex) cross section for each channel
double fAbsorptionCrossSection
absorption cross section (averaged over proton / neutron fraction)
double fNuclearDensity
nuclear density in fm-3
virtual void setCrossSections()=0
calculalte cross sections for each channel
static const unsigned int fNChannels
number of possible channels: pi+n, pi+p, pi0
double fPionKineticEnergy
pion kinetic energy in MeV
static PDGLibrary * Instance(void)
TParticlePDG * Find(int pdgc, bool must_exist=true)
static const double kNucleonMass
double quadraticFunction(const double &x, const double *a)