22 #ifndef _NIEVES_QELCC_CROSS_SECTION_H_ 23 #define _NIEVES_QELCC_CROSS_SECTION_H_ 29 #include <Math/IFunction.h> 120 bool is_neutrino,
bool tgtIsNucleus,
int tgt_pdgc,
int A,
int Z,
int N,
121 bool hitNucIsProton,
double & CN,
double & CT,
double & CL,
double & imU,
122 double &
t0,
double & r00,
bool assumeFreeNucleon)
const;
125 std::complex<double>
relLindhardIm(
double q0gev,
double dqgev,
126 double kFngev,
double kFpgev,
127 double M,
bool isNeutrino,
128 double &
t0,
double & r00)
const;
129 std::complex<double>
relLindhard(
double q0gev,
double dqgev,
130 double kFgev,
double M,
132 std::complex<double> relLindIm)
const;
133 std::complex<double>
ruLinRelX(
double q0,
double qm,
134 double kf,
double m)
const;
135 std::complex<double>
deltaLindhard(
double q0gev,
double dqgev,
136 double rho,
double kFgev)
const;
146 double LmunuAnumu(
const TLorentzVector neutrinoMom,
147 const TLorentzVector inNucleonMom,
const TLorentzVector leptonMom,
148 const TLorentzVector outNucleonMom,
double M,
bool is_neutrino,
187 unsigned int NDim (
void)
const;
188 double DoEval (
double rin)
const;
189 ROOT::Math::IBaseFunctionOneDim * Clone (
void)
const;
code to link reconstructed objects back to the MC truth information
Cross Section Calculation Interface.
double XSec(const Interaction *i, KinePhaseSpace_t k) const
Compute the cross section for the input interaction.
const QvalueShifter * fQvalueShifter
Optional algorithm to retrieve the qvalue shift for a given target.
std::complex< double > ruLinRelX(double q0, double qm, double kf, double m) const
bool fRPA
use RPA corrections
void Configure(const Registry &config)
THE MAIN GENIE PROJECT NAMESPACE
Cross Section Integrator Interface.
enum genie::EQELRmax Nieves_Coulomb_Rmax_t
QELEvGen_BindingMode_t fIntegralNucleonBindingMode
const FermiMomentumTable * fKFTable
void CNCTCLimUcalc(TLorentzVector qTildeP4, double M, double r, bool is_neutrino, bool tgtIsNucleus, int tgt_pdgc, int A, int Z, int N, bool hitNucIsProton, double &CN, double &CT, double &CL, double &imU, double &t0, double &r00, bool assumeFreeNucleon) const
Examines whether the generated event should be Pauli blocked. Is a concerete implementation of the Ev...
const XSecIntegratorI * fXSecIntegrator
Pure abstract base class. Defines the NuclearModelI interface to be implemented by any physics model ...
A table of Fermi momentum constants.
QELFormFactors fFormFactors
double fCoulombScale
Scaling factor for the Coulomb potential.
bool fCoulomb
use Coulomb corrections
enum genie::EKinePhaseSpace KinePhaseSpace_t
enum genie::EQELEvGenBindingMode QELEvGen_BindingMode_t
Nieves_Coulomb_Rmax_t fCoulombRmaxMode
std::complex< double > deltaLindhard(double q0gev, double dqgev, double rho, double kFgev) const
const QELFormFactorsModelI * fFormFactorsModel
double fhbarc
hbar*c in GeV*fm
double fCos8c2
cos^2(cabibbo angle)
Summary information for an interaction.
const NuclearModelI * fNuclModel
Nuclear Model for integration.
bool fCompareNievesTensors
print tensors
double Integral(const Interaction *i) const
A Neutrino Interaction Target. Is a transparent encapsulation of quite different physical systems suc...
bool fDoPauliBlocking
Whether to apply Pauli blocking in XSec()
double fXSecScale
external xsec scaling factor
Computes neutrino-nucleon(nucleus) QELCC differential cross section with RPA corrections Is a concret...
double vcr(const Target *target, double r) const
TString fTensorsOutFile
file to print tensors to
virtual ~NievesQELCCPXSec()
A registry. Provides the container for algorithm configuration parameters.
int leviCivita(int input[]) const
void CompareNievesTensors(const Interaction *i) const
bool ValidProcess(const Interaction *i) const
Can this cross section algorithm handle the input process?
std::complex< double > relLindhard(double q0gev, double dqgev, double kFgev, double M, bool isNeutrino, std::complex< double > relLindIm) const
double LmunuAnumu(const TLorentzVector neutrinoMom, const TLorentzVector inNucleonMom, const TLorentzVector leptonMom, const TLorentzVector outNucleonMom, double M, bool is_neutrino, const Target &target, bool assumeFreeNucleon) const
const genie::PauliBlocker * fPauliBlocker
The PauliBlocker instance to use to apply that correction.
std::complex< double > relLindhardIm(double q0gev, double dqgev, double kFngev, double kFpgev, double M, bool isNeutrino, double &t0, double &r00) const