58 const Kinematics & kinematics = interaction -> Kine();
59 const KPhaseSpace & ps = interaction -> PhaseSpace();
60 double W = kinematics.
W();
63 if ( W<Wl.
min )
return 0.;
64 else if ( W>Wl.
max )
return 0.;
66 const InitialState & init_state = interaction -> InitState();
68 double y = kinematics.
y();
69 double Q2 = kinematics.
Q2();
70 double x = kinematics.
x();
73 double Mlep2 = TMath::Power(interaction->
FSPrimLepton()->Mass(),2);
95 double propagator = 0;
99 xsec *=
kGF2/(2*
kPi*x) * propagator;
101 LOG(
"HEDISPXSec",
pINFO) <<
"d2xsec/dxdy[FreeN] (x= " << x <<
", y= " << y <<
", Q2= " << Q2 <<
") = " << xsec;
121 double term1 = y * ( x*y );
122 double term2 = ( 1 - y );
123 double term3 = ( x*y*(1-y/2) );
128 return fmax( term1*sf.
F1 + term2*sf.
F2 + term3*sf.
F3 , 0.);
135 double term1 = y * ( x*y + ml2/2/
e/mt );
136 double term2 = ( 1 - y - mt*x*y/2/
e - ml2/4/
e/
e );
137 double term3 = (x*y*(1-y/2) - y*ml2/4/mt/
e);
138 double term4 = x*y*ml2/2/mt/
e + ml2*ml2/4/mt/mt/
e/
e;
139 double term5 = -1.*ml2/2/mt/
e;
147 return fmax( term1*sf.
F1 + term2*sf.
F2 + term3*sf.
F3 + term4*F4 + term5*F5 , 0.);
166 const InitialState & init_state = interaction -> InitState();
167 int probe_pdg = init_state.
ProbePdg();
#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
double ds_dxdy(SF_xQ2 sf, double x, double y) const
double ds_dxdy_mass(SF_xQ2 sf, double x, double y, double e, double mt, double ml2) const
SF_info fSFinfo
Information used to computed SF.
bool ValidProcess(const Interaction *i) const
Can this cross section algorithm handle the input process?
double XSec(const Interaction *i, KinePhaseSpace_t k) const
Compute the cross section for the input interaction.
double Integral(const Interaction *i) const
const XSecIntegratorI * fXSecIntegrator
diff. xsec integrator
double fWmin
Minimum value of W.
void Configure(const Registry &config)
bool fMassTerms
Account for second order effects in DDxsec.
SF_xQ2 EvalNucSFLO(const Interaction *in, double x, double Q2)
SF_xQ2 EvalQrkSFLO(const Interaction *in, double x, double Q2)
SF_xQ2 EvalNucSFNLO(const Interaction *in, double x, double Q2)
static HEDISStrucFunc * Instance(SF_info sfinfo)
Initial State information.
const Target & Tgt(void) const
double ProbeE(RefFrame_t rf) const
Summary information for an interaction.
const ProcessInfo & ProcInfo(void) const
TParticlePDG * FSPrimLepton(void) const
final state primary lepton
Range1D_t WLim(void) const
W limits.
Generated/set kinematical variables for an event.
double Q2(bool selected=false) const
double y(bool selected=false) const
double W(bool selected=false) const
double x(bool selected=false) const
A class encapsulating an enumeration of interaction types (EM, Weak-CC, Weak-NC) and scattering types...
bool IsDeepInelastic(void) const
A simple [min,max] interval for doubles.
A registry. Provides the container for algorithm configuration parameters.
int HitNucPdg(void) const
double HitNucMass(void) const
bool HitNucIsSet(void) const
virtual bool ValidKinematics(const Interaction *i) const
Is the input kinematical point a physically allowed one?
Cross Section Integrator Interface.
bool IsNeutronOrProton(int pdgc)
double Jacobian(const Interaction *const i, KinePhaseSpace_t f, KinePhaseSpace_t t)
THE MAIN GENIE PROJECT NAMESPACE
enum genie::EKinePhaseSpace KinePhaseSpace_t
const UInt_t kISkipProcessChk
if set, skip process validity checks
const UInt_t kIAssumeFreeNucleon