10 #ifndef INUKE_NUCLEON_CORR_H
11 #define INUKE_NUCLEON_CORR_H
15 #include <TGenPhaseSpace.h>
29 double AvgCorrection (
const double rho,
const int A,
const int Z,
const int pdg,
const double Ek);
84 inline double beta (
const double rho) {
return fBeta1 * rho;}
96 double mstar (
const double rho,
const double k2);
98 double localFermiMom (
const double rho,
const int A,
const int Z,
const int pdg);
103 const TVector3 &k1,
const TVector3 &k2,
104 const TVector3 &k3,
const TVector3 &k4);
107 #endif // INUKE_NUCLEON_CORR_H
static const int fNEnergyBins2
cache binning for energy
static const int fNEnergyBins1
cache binning for energy
static const double fDensityStep
within this density step correction is assumed to be constant
double beta(const double rho)
potential component (Eq. 2.18)
static INukeNucleonCorr * getInstance()
get single instance of INukeNucleonCorr; create if necessary
void setFermiLevel(const double rho, const int A, const int Z)
double lambda(const double rho)
potential component (Eq. 2.19)
double getCorrection(const double mass, const double rho, const TVector3 &k1, const TVector3 &k2, const TVector3 &k3, const TVector3 &k4)
calculate xsec correction
static INukeNucleonCorr * fInstance
single instance of INukeNucleonCorr
double mstar(const double rho, const double k2)
m* calculated based on Eqs. 2.6 and 2.16
static const int fNDensityBins
cache binning for density
static const double fEnergyStep1
within this energy step correction is assumed to be constant
static const double fRho0
equilibrium density
static const double fMaxEnergy2
above this energy correction is assumed to be constant
INukeNucleonCorr()
private constructor (called only by getInstance())
double fermiMomentum(const int pdg)
return proper Fermi momentum based on nucleon PDG
TLorentzVector generateTargetNucleon(const double mass, const double fermiMomentum)
generate target nucleon
static const double fEnergyStep3
within this energy step correction is assumed to be constant
double AvgCorrection(const double rho, const int A, const int Z, const int pdg, const double Ek)
generate kinematics fRepeat times to calculate average correction
static const double fAlpha2
alpha coefficient as defined by Eq. 2.17
static constexpr double A
Correction to free NN xsec in nuclear matter.
static const double fLambda0
lambda coefficient as defined by Eq. 2.19
static const double fLambda1
lambda coefficient as defined by Eq. 2.19
static const double fAlpha1
alpha coefficient as defined by Eq. 2.17
static const int fNEnergyBins3
cache binning for energy
void OutputFiles(int A, int Z)
double getAvgCorrection(const double rho, const double A, const double Ek)
get the correction for given four-momentum and density
static const double fBeta1
beta coefficient as defined by Eq. 2.18
static const double fEnergyStep2
within this energy step correction is assumed to be constant
static const unsigned int fRepeat
number of repetition to get average correction
static const double fMaxEnergy1
above this energy correction is assumed to be constant
INukeNucleonCorr & operator=(const INukeNucleonCorr &)
block assignment operator
double localFermiMom(const double rho, const int A, const int Z, const int pdg)
calculate local Fermi momentum
Most commonly used PDG codes. A set of utility functions to handle PDG codes is provided in PDGUtils...
static const double fMaxEnergy3
above this energy correction is assumed to be constant