12 #include <Math/IFunction.h>
13 #include <Math/Integrator.h>
17 #include "Framework/Conventions/GBuild.h"
32 using namespace genie;
33 using namespace genie::controls;
34 using namespace genie::constants;
61 LOG(
"HELeptonXSec",
pDEBUG) <<
"*** Below energy threshold";
84 NNucl = init_state.
Tgt().
Z();
90 NNucl = init_state.
Tgt().
Z();
94 NNucl = init_state.
Tgt().
N();
120 ROOT::Math::IBaseFunctionMultiDim *
func;
122 double kine_min[3] = { -1., 0., 0. };
123 double kine_max[3] = { 1., 1., 1. };
125 ROOT::Math::IntegratorMultiDim ig(*func,ig_type,0,0,
fGSLMaxEval);
126 xsec = ig.Integral(kine_min, kine_max);
129 double kine_min[2] = { -1., 0. };
130 double kine_max[2] = { 1., 1. };
132 ROOT::Math::IntegratorMultiDim ig(*func,ig_type,0,0,
fGSLMaxEval);
133 xsec = ig.Integral(kine_min, kine_max);
Cross Section Calculation Interface.
bool IsPhotonResonance(void) const
const KPhaseSpace & PhaseSpace(void) const
int FinalLeptonPdg(void) const
string fGSLIntgType
name of GSL numerical integrator
string ScatteringTypeAsString(void) const
Cross Section Integrator Interface.
ROOT::Math::IntegrationMultiDim::Type IntegrationNDimTypeFromString(string type)
int HitNucPdg(void) const
bool SplineExists(const XSecAlgorithmI *alg, const Interaction *i) const
A numeric analysis tool class for interpolating 1-D functions.
void Configure(const Registry &config)
static XSecSplineList * Instance()
double Evaluate(double x) const
Summary information for an interaction.
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
double Integrate(const XSecAlgorithmI *model, const Interaction *i) const
XSecIntegratorI interface implementation.
static constexpr double cm2
A class encapsulating an enumeration of interaction types (EM, Weak-CC, Weak-NC) and scattering types...
A Neutrino Interaction Target. Is a transparent encapsulation of quite different physical systems suc...
virtual void Configure(const Registry &config)
double func(double x, double y)
bool IsPhotonCoherent(void) const
virtual bool ValidProcess(const Interaction *i) const =0
Can this cross section algorithm handle the input process?
int fGSLMaxEval
GSL max evaluations.
A registry. Provides the container for algorithm configuration parameters.
const UInt_t kIAssumeFreeNucleon
const XclsTag & ExclTag(void) const
Target * TgtPtr(void) const
bool IsAboveThreshold(void) const
Checks whether the interaction is above the energy threshold.
InitialState * InitStatePtr(void) const
const InitialState & InitState(void) const
const ProcessInfo & ProcInfo(void) const
bool GetParamDef(const RgKey &name, T &p, const T &def) const
const Target & Tgt(void) const
bool IsGlashowResonance(void) const
const Spline * GetSpline(const XSecAlgorithmI *alg, const Interaction *i) const
List of cross section vs energy splines.
double ProbeE(RefFrame_t rf) const
Most commonly used PDG codes. A set of utility functions to handle PDG codes is provided in PDGUtils...
const UInt_t kISkipProcessChk
if set, skip process validity checks
Initial State information.