15#include "Framework/Conventions/GBuild.h"
56 const InitialState & init_state = interaction -> InitState();
65 double Q2 = 2.*x*y*M*E;
68 double fp2 = TMath::Power(fp,2.);
69 double Epi = y*E - t/(2*M);
71 double ma2 = TMath::Power(
fMa,2);
72 double propg = TMath::Power(ma2/(ma2+Q2),2.);
74 double sTot2 = TMath::Power(sTot,2.);
75 double tFac = TMath::Exp(-b*t);
77#ifdef __GENIE_LOW_LEVEL_MESG_ENABLED__
79 <<
"E = " << E <<
", x = " << x <<
", y = " << y <<
", Q2 = " << Q2;
81 <<
"Epi = " << Epi <<
", s^{piN}_{tot} = " << sTot;
83 <<
"b = " << b <<
", t = [" << tmin <<
", " << tmax <<
"]";
93 double xsec = Gf*E*fp2*(1-y)*propg*sTot2*tFac;
102#ifdef __GENIE_LOW_LEVEL_MESG_ENABLED__
104 <<
"Jacobian for transformation to: "
130 const InitialState & init_state = interaction -> InitState();
131 const Target & target = init_state.
Tgt();
132 if(target.
A() > 1 || target.
Z() != 1)
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE,...
bool GetParam(const RgKey &name, T &p, bool is_top_call=true) const
virtual void Configure(const Registry &config)
const Algorithm * SubAlg(const RgKey ®istry_key) const
Initial State information.
const Target & Tgt(void) const
double ProbeE(RefFrame_t rf) const
Summary information for an interaction.
const ProcessInfo & ProcInfo(void) const
static string AsString(KinePhaseSpace_t kps)
Generated/set kinematical variables for an event.
bool IsDiffractive(void) const
bool IsWeakCC(void) const
A registry. Provides the container for algorithm configuration parameters.
double XSec(const Interaction *i, KinePhaseSpace_t k) const
Compute the cross section for the input interaction.
double fBeta
b in dsig{piN}/dt = dsig0{piN}/dt * exp(-b(t-tmin)), b ~ 0.333 (nucleon_size)^2
const XSecIntegratorI * fXSecIntegrator
void Configure(const Registry &config)
bool ValidProcess(const Interaction *i) const
Can this cross section algorithm handle the input process?
double Integral(const Interaction *i) const
A Neutrino Interaction Target. Is a transparent encapsulation of quite different physical systems suc...
int HitNucPdg(void) const
double HitNucMass(void) const
virtual bool ValidKinematics(const Interaction *i) const
Is the input kinematical point a physically allowed one?
Cross Section Integrator Interface.
static const double kPionMass
Misc GENIE control constants.
Simple functions for loading and reading nucleus dependent keys from config files.
double TotalPionNucleonXSec(double Epion, bool isChargedPion=true)
double Jacobian(const Interaction *const i, KinePhaseSpace_t f, KinePhaseSpace_t t)
Root of GENIE utility namespaces.
THE MAIN GENIE PROJECT NAMESPACE
enum genie::EKinePhaseSpace KinePhaseSpace_t
const UInt_t kISkipProcessChk
if set, skip process validity checks
const UInt_t kIAssumeFreeNucleon