GENIEGenerator
|
Correction to free NN xsec in nuclear matter. More...
#include <INukeNucleonCorr.h>
Public Member Functions | |
double | getAvgCorrection (const double rho, const double A, const double Ek) |
get the correction for given four-momentum and density More... | |
void | OutputFiles (int A, int Z) |
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 More... | |
Static Public Member Functions | |
static INukeNucleonCorr * | getInstance () |
get single instance of INukeNucleonCorr; create if necessary More... | |
Private Member Functions | |
INukeNucleonCorr () | |
private constructor (called only by getInstance()) More... | |
INukeNucleonCorr (const INukeNucleonCorr &) | |
block copy constructor More... | |
INukeNucleonCorr & | operator= (const INukeNucleonCorr &) |
block assignment operator More... | |
double | beta (const double rho) |
potential component (Eq. 2.18) More... | |
double | lambda (const double rho) |
potential component (Eq. 2.19) More... | |
void | setFermiLevel (const double rho, const int A, const int Z) |
double | fermiMomentum (const int pdg) |
return proper Fermi momentum based on nucleon PDG More... | |
double | mstar (const double rho, const double k2) |
m* calculated based on Eqs. 2.6 and 2.16 More... | |
double | localFermiMom (const double rho, const int A, const int Z, const int pdg) |
calculate local Fermi momentum More... | |
TLorentzVector | generateTargetNucleon (const double mass, const double fermiMomentum) |
generate target nucleon More... | |
double | getCorrection (const double mass, const double rho, const TVector3 &k1, const TVector3 &k2, const TVector3 &k3, const TVector3 &k4) |
calculate xsec correction More... | |
Private Attributes | |
double | fFermiMomProton |
double | fFermiMomNeutron |
Static Private Attributes | |
static INukeNucleonCorr * | fInstance = NULL |
single instance of INukeNucleonCorr More... | |
static const unsigned int | fRepeat = 1000 |
number of repetition to get average correction More... | |
static const double | fRho0 = 0.16 |
equilibrium density More... | |
static const double | fAlpha1 |
alpha coefficient as defined by Eq. 2.17 More... | |
static const double | fAlpha2 |
alpha coefficient as defined by Eq. 2.17 More... | |
static const double | fBeta1 = -116.00 / fRho0 / 1000.0 |
beta coefficient as defined by Eq. 2.18 More... | |
static const double | fLambda0 = 3.29 / (units::fermi) |
lambda coefficient as defined by Eq. 2.19 More... | |
static const double | fLambda1 = -0.373 / (units::fermi) / fRho0 |
lambda coefficient as defined by Eq. 2.19 More... | |
static const int | fNDensityBins |
cache binning for density More... | |
static const double | fDensityStep |
within this density step correction is assumed to be constant More... | |
static const int | fNEnergyBins1 |
cache binning for energy More... | |
static const double | fMaxEnergy1 |
above this energy correction is assumed to be constant More... | |
static const double | fEnergyStep1 |
within this energy step correction is assumed to be constant More... | |
static const int | fNEnergyBins2 |
cache binning for energy More... | |
static const double | fMaxEnergy2 |
above this energy correction is assumed to be constant More... | |
static const double | fEnergyStep2 |
within this energy step correction is assumed to be constant More... | |
static const int | fNEnergyBins3 |
cache binning for energy More... | |
static const double | fMaxEnergy3 |
above this energy correction is assumed to be constant More... | |
static const double | fEnergyStep3 |
within this energy step correction is assumed to be constant More... | |
Correction to free NN xsec in nuclear matter.
Definition at line 18 of file INukeNucleonCorr.h.
|
inlineprivate |
private constructor (called only by getInstance())
Definition at line 78 of file INukeNucleonCorr.h.
Referenced by getInstance().
|
private |
block copy constructor
double INukeNucleonCorr::AvgCorrection | ( | const double | rho, |
const int | A, | ||
const int | Z, | ||
const int | pdg, | ||
const double | Ek | ||
) |
generate kinematics fRepeat times to calculate average correction
Definition at line 147 of file INukeNucleonCorr.cxx.
References genie::PDGLibrary::Find(), genie::RandomGen::Instance(), genie::PDGLibrary::Instance(), genie::INukeHadroData2018::Instance(), genie::INukeHadroData2018::IntBounce(), genie::kIHNFtElas, genie::kIStUndefined, genie::kPdgNeutron, genie::kPdgProton, genie::RandomGen::RndGen(), and genie::utils::intranuke2018::TwoBodyKinematics().
|
inlineprivate |
|
inlineprivate |
return proper Fermi momentum based on nucleon PDG
Definition at line 94 of file INukeNucleonCorr.h.
References fFermiMomNeutron, fFermiMomProton, and genie::kPdgProton.
|
private |
generate target nucleon
generate random momentum direction and return 4-momentum of target nucleon
Definition at line 117 of file INukeNucleonCorr.cxx.
References genie::RandomGen::Instance(), genie::constants::kPi, and genie::RandomGen::RndGen().
double INukeNucleonCorr::getAvgCorrection | ( | const double | rho, |
const double | A, | ||
const double | Ek | ||
) |
get the correction for given four-momentum and density
Definition at line 237 of file INukeNucleonCorr.cxx.
References genie::units::A, CalciumValues, CarbonValues, clear, dir, HeliumValues, infile_values, IronValues, LOG, NColumns, NRows, pINFO, pNOTICE, read_file(), TinValues, and UraniumValues.
|
private |
calculate xsec correction
calculate correction given by eq. 2.9
Definition at line 136 of file INukeNucleonCorr.cxx.
|
inlinestatic |
get single instance of INukeNucleonCorr; create if necessary
Definition at line 23 of file INukeNucleonCorr.h.
References fInstance, and INukeNucleonCorr().
Referenced by genie::utils::intranuke2018::MeanFreePath(), and OutputFiles().
|
inlineprivate |
potential component (Eq. 2.19)
Definition at line 85 of file INukeNucleonCorr.h.
|
private |
calculate local Fermi momentum
Definition at line 101 of file INukeNucleonCorr.cxx.
References genie::units::A, genie::units::fermi, genie::kPdgProton, and genie::constants::kPi.
Referenced by setFermiLevel().
|
private |
m* calculated based on Eqs. 2.6 and 2.16
Definition at line 83 of file INukeNucleonCorr.cxx.
References genie::PDGLibrary::Find(), genie::PDGLibrary::Instance(), genie::kPdgNeutron, genie::kPdgProton, and genie::units::m.
|
private |
block assignment operator
void INukeNucleonCorr::OutputFiles | ( | int | A, |
int | Z | ||
) |
Definition at line 334 of file INukeNucleonCorr.cxx.
References e, genie_dir(), and getInstance().
|
inlineprivate |
Z | set up Fermi momenta |
Definition at line 87 of file INukeNucleonCorr.h.
References fFermiMomNeutron, fFermiMomProton, genie::kPdgNeutron, genie::kPdgProton, and localFermiMom().
|
staticprivate |
alpha coefficient as defined by Eq. 2.17
Definition at line 43 of file INukeNucleonCorr.h.
|
staticprivate |
alpha coefficient as defined by Eq. 2.17
Definition at line 44 of file INukeNucleonCorr.h.
|
staticprivate |
beta coefficient as defined by Eq. 2.18
Definition at line 45 of file INukeNucleonCorr.h.
Referenced by beta().
|
staticprivate |
within this density step correction is assumed to be constant
Definition at line 53 of file INukeNucleonCorr.h.
|
staticprivate |
within this energy step correction is assumed to be constant
Definition at line 61 of file INukeNucleonCorr.h.
|
staticprivate |
within this energy step correction is assumed to be constant
Definition at line 64 of file INukeNucleonCorr.h.
|
staticprivate |
within this energy step correction is assumed to be constant
Definition at line 67 of file INukeNucleonCorr.h.
|
private |
Definition at line 74 of file INukeNucleonCorr.h.
Referenced by fermiMomentum(), and setFermiLevel().
|
private |
Definition at line 73 of file INukeNucleonCorr.h.
Referenced by fermiMomentum(), and setFermiLevel().
|
staticprivate |
single instance of INukeNucleonCorr
Definition at line 33 of file INukeNucleonCorr.h.
Referenced by getInstance().
|
staticprivate |
lambda coefficient as defined by Eq. 2.19
Definition at line 46 of file INukeNucleonCorr.h.
Referenced by lambda().
|
staticprivate |
lambda coefficient as defined by Eq. 2.19
Definition at line 47 of file INukeNucleonCorr.h.
Referenced by lambda().
|
staticprivate |
above this energy correction is assumed to be constant
Definition at line 60 of file INukeNucleonCorr.h.
|
staticprivate |
above this energy correction is assumed to be constant
Definition at line 63 of file INukeNucleonCorr.h.
|
staticprivate |
above this energy correction is assumed to be constant
Definition at line 66 of file INukeNucleonCorr.h.
|
staticprivate |
cache binning for density
Definition at line 49 of file INukeNucleonCorr.h.
|
staticprivate |
cache binning for energy
Definition at line 59 of file INukeNucleonCorr.h.
|
staticprivate |
cache binning for energy
Definition at line 62 of file INukeNucleonCorr.h.
|
staticprivate |
cache binning for energy
Definition at line 65 of file INukeNucleonCorr.h.
|
staticprivate |
number of repetition to get average correction
Definition at line 37 of file INukeNucleonCorr.h.
|
staticprivate |
equilibrium density
Definition at line 41 of file INukeNucleonCorr.h.