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