22 #ifndef _NIEVES_QELCC_CROSS_SECTION_H_ 
   23 #define _NIEVES_QELCC_CROSS_SECTION_H_ 
   29 #include <Math/IFunction.h> 
   45 class QELFormFactorsModelI;
 
   46 class XSecIntegratorI;
 
  121   void CNCTCLimUcalc(TLorentzVector qTildeP4, 
double M, 
double r,
 
  122     bool is_neutrino, 
bool tgtIsNucleus, 
int tgt_pdgc, 
int A, 
int Z, 
int N,
 
  123     bool hitNucIsProton, 
double & CN, 
double & CT, 
double & CL, 
double & imU,
 
  124     double & t0, 
double & r00, 
bool assumeFreeNucleon) 
const;
 
  127   std::complex<double> 
relLindhardIm(
double q0gev, 
double dqgev,
 
  128                                      double kFngev, 
double kFpgev,
 
  129                                      double M, 
bool isNeutrino,
 
  130                                      double & t0, 
double & r00) 
const;
 
  131   std::complex<double> 
relLindhard(
double q0gev, 
double dqgev,
 
  132                                    double kFgev, 
double M,
 
  134                                    std::complex<double> relLindIm) 
const;
 
  135   std::complex<double> 
ruLinRelX(
double q0, 
double qm,
 
  136                                  double kf, 
double m) 
const;
 
  137   std::complex<double> 
deltaLindhard(
double q0gev, 
double dqgev,
 
  138                                      double rho, 
double kFgev) 
const;
 
  141   double vcr(
const Target * target, 
double r) 
const;
 
  148   double LmunuAnumu(
const TLorentzVector neutrinoMom,
 
  149     const TLorentzVector inNucleonMom, 
const TLorentzVector leptonMom,
 
  150     const TLorentzVector outNucleonMom, 
double M, 
bool is_neutrino,
 
  151     const Target& target, 
bool assumeFreeNucleon) 
const;
 
  189        unsigned int                      NDim   (
void)       
const;
 
  190        double                            DoEval (
double rin) 
const;
 
  191        ROOT::Math::IBaseFunctionOneDim * 
Clone  (
void)       
const;
 
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 
double DoEval(double rin) const 
bool fRPA
use RPA corrections 
double fXSecCCScale
external xsec scaling factor for CC 
void Configure(const Registry &config)
Cross Section Integrator Interface. 
enum genie::EQELRmax Nieves_Coulomb_Rmax_t
QELEvGen_BindingMode_t fIntegralNucleonBindingMode
const FermiMomentumTable * fKFTable
double fXSecEMScale
external xsec scaling factor for EM 
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
ROOT::Math::IBaseFunctionOneDim * Clone(void) const 
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. 
NievesQELvcrIntegrand(double Rcurr, int A, int Z)
static constexpr double A
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 fXSecNCScale
external xsec scaling factor for NC 
unsigned int NDim(void) const 
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. 
static constexpr double m
std::complex< double > relLindhardIm(double q0gev, double dqgev, double kFngev, double kFpgev, double M, bool isNeutrino, double &t0, double &r00) const