12 #include <Math/IFunction.h>
13 #include <Math/Integrator.h>
17 #include "Framework/Conventions/GBuild.h"
35 using namespace genie;
36 using namespace genie::constants;
59 LOG(
"QELXSec",
pDEBUG) <<
"Beginning integrate";
64 LOG(
"QELXSec",
pDEBUG) <<
"*** Below energy threshold";
68 if(rQ2.
min<0 || rQ2.
max<0)
return 0;
70 <<
"Q2 integration range = (" << rQ2.
min <<
", " << rQ2.
max <<
")";
76 ROOT::Math::IBaseFunctionOneDim *
func =
new
78 ROOT::Math::IntegrationOneDim::Type ig_type =
110 int max_size_of_subintervals;
111 GetParamDef(
"gsl-max-size-of-subintervals", max_size_of_subintervals, 40000);
Cross Section Calculation Interface.
const KPhaseSpace & PhaseSpace(void) const
ROOT::Math::IntegrationOneDim::Type Integration1DimTypeFromString(string type)
string fGSLIntgType
name of GSL numerical integrator
Cross Section Integrator Interface.
A simple [min,max] interval for doubles.
unsigned int fGSLRule
GSL Gauss-Kronrod integration rule (only for GSL 1D adaptive type)
Range1D_t Limits(KineVar_t kvar) const
Return the kinematical variable limits.
Summary information for an interaction.
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
static constexpr double cm2
virtual void Configure(const Registry &config)
double func(double x, double y)
const UInt_t kISkipKinematicChk
if set, skip kinematic validity checks
virtual bool ValidProcess(const Interaction *i) const =0
Can this cross section algorithm handle the input process?
void Configure(const Registry &config)
unsigned int fGSLMaxSizeOfSubintervals
GSL maximum number of sub-intervals for 1D integrator.
A registry. Provides the container for algorithm configuration parameters.
bool IsAboveThreshold(void) const
Checks whether the interaction is above the energy threshold.
double Integrate(const XSecAlgorithmI *model, const Interaction *i) const
XSecIntegratorI interface implementation.
bool GetParamDef(const RgKey &name, T &p, const T &def) const
const UInt_t kISkipProcessChk
if set, skip process validity checks
double fGSLRelTol
required relative tolerance (error)