25 using namespace genie;
53 const InitialState & init_state = interaction -> InitState();
54 const Kinematics & kinematics = interaction -> Kine();
58 double Q2 = kinematics.
Q2();
60 double M2 = TMath::Power(M, 2.);
61 double E2 = TMath::Power(E, 2.);
62 double qmv2 = TMath::Power(1 + Q2/
fMv2, 2);
63 double qma2 = TMath::Power(1 + Q2/
fMa2, 2);
74 double Ge0 = 1.5 *
fkGamma / qmv2;
78 double Ge1 = 0.5 *
fkAlpha / qmv2;
80 double Ga1 = -0.5 *
fFa0 * (1 + (nucsign) *
fEta) / qma2;
83 double Ge = Ge0 + (nucsign) * Ge1;
84 double Gm = Gm0 + (nucsign) * Gm1;
85 double Ga = (nucsign) * Ga1;
86 double Ge2 = TMath::Power(Ge,2);
87 double Gm2 = TMath::Power(Gm,2);
88 double Ga2 = TMath::Power(Ga,2);
91 double tau = 0.25 * Q2/M2;
92 double fa = 1-M*tau/
E;
93 double fa2 = TMath::Power(fa,2);
94 double fb = tau*(tau+1)*M2/E2;
95 double A = (Ge2/(1+tau)) * (fa2-fb);
96 double B = (Ga2 + tau*Gm2/(1+tau)) * (fa2+fb);
97 double C = 4*tau*(M/
E)*Gm*Ga * fa;
99 double xsec = xsec0 * (A + B + (nusign)*C);
102 <<
"dXSec[vN,El]/dQ2 [FreeN](Ev = "<< E<<
", Q2 = "<< Q2 <<
") = "<< xsec;
122 <<
"Nuclear suppression factor R(Q2) = " << R <<
", NNucl = " << NNucl;
159 double sin2thw = TMath::Power(TMath::Sin(thw), 2);
171 fMa2 = TMath::Power(ma,2);
172 fMv2 = TMath::Power(mv,2);
Cross Section Calculation Interface.
double XSec(const Interaction *i, KinePhaseSpace_t k) const
Compute the cross section for the input interaction.
bool ValidProcess(const Interaction *i) const
Can this cross section algorithm handle the input process?
double J(double q0, double q3, double Enu, double ml)
THE MAIN GENIE PROJECT NAMESPACE
Cross Section Integrator Interface.
double Q2(const Interaction *const i)
int HitNucPdg(void) const
double HitNucMass(void) const
Generated/set kinematical variables for an event.
enum genie::EKinePhaseSpace KinePhaseSpace_t
const XSecIntegratorI * fXSecIntegrator
Summary information for an interaction.
virtual bool ValidKinematics(const Interaction *i) const
Is the input kinematical point a physically allowed one?
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
bool IsAntiNeutrino(int pdgc)
A Neutrino Interaction Target. Is a transparent encapsulation of quite different physical systems suc...
virtual void Configure(const Registry &config)
A registry. Provides the container for algorithm configuration parameters.
const UInt_t kIAssumeFreeNucleon
virtual ~AhrensNCELPXSec()
virtual double Integrate(const XSecAlgorithmI *model, const Interaction *interaction) const =0
double Jacobian(const Interaction *const i, KinePhaseSpace_t f, KinePhaseSpace_t t)
double Integral(const Interaction *i) const
double Q2(bool selected=false) const
bool GetParam(const RgKey &name, T &p, bool is_top_call=true) const
const Target & Tgt(void) const
double ProbeE(RefFrame_t rf) const
void Configure(const Registry &config)
Root of GENIE utility namespaces.
const UInt_t kISkipProcessChk
if set, skip process validity checks
double NuclQELXSecSuppression(string kftable, double pmax, const Interaction *in)
Initial State information.
const Algorithm * SubAlg(const RgKey ®istry_key) const