12 #include <Math/IFunction.h>
13 #include <Math/IntegratorMultiDim.h>
14 #include "Math/AdaptiveIntegratorMultiDim.h"
18 #include "Framework/Conventions/GBuild.h"
33 using namespace genie;
34 using namespace genie::utils;
63 LOG(
"DFRXSec",
pDEBUG) <<
"*** Below energy threshold";
80 <<
"x integration range = [" << xl.
min <<
", " << xl.
max <<
"]";
82 <<
"y integration range = [" << yl.
min <<
", " << yl.
max <<
"]";
84 <<
"t integration range = [" << tl.
min <<
", " << tl.
max <<
"]";
86 ROOT::Math::IBaseFunctionMultiDim *
func =
88 ROOT::Math::IntegrationMultiDim::Type ig_type =
93 if (ig_type == ROOT::Math::IntegrationMultiDim::kADAPTIVE) {
94 ROOT::Math::AdaptiveIntegratorMultiDim * cast =
95 dynamic_cast<ROOT::Math::AdaptiveIntegratorMultiDim*
>( ig.GetIntegrator() );
100 double kine_min[3] = { xl.
min, yl.
min, tl.
min };
101 double kine_max[3] = { xl.
max, yl.
max, tl.
max };
102 xsec = ig.Integral(kine_min, kine_max) * (1E-38 *
units::cm2);
Cross Section Calculation Interface.
const KPhaseSpace & PhaseSpace(void) const
string fGSLIntgType
name of GSL numerical integrator
void Configure(const Registry &config)
double fTMax
upper bound for t = (q - p_pi)^2
Cross Section Integrator Interface.
ROOT::Math::IntegrationMultiDim::Type IntegrationNDimTypeFromString(string type)
A simple [min,max] interval for doubles.
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)
double Integrate(const XSecAlgorithmI *model, const Interaction *i) const
static const double kASmallNum
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.
bool IsAboveThreshold(void) const
Checks whether the interaction is above the energy threshold.
bool GetParamDef(const RgKey &name, T &p, const T &def) const
bool GetParam(const RgKey &name, T &p, bool is_top_call=true) const
Most commonly used PDG codes. A set of utility functions to handle PDG codes is provided in PDGUtils...
int fGSLMinEval
GSL min evaluations. Ignored by some integrators.
const UInt_t kISkipProcessChk
if set, skip process validity checks
double fGSLRelTol
required relative tolerance (error)