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;
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 =
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) * (1
E-38 *
units::cm2);
Cross Section Calculation Interface.
const KPhaseSpace & PhaseSpace(void) const
string fGSLIntgType
name of GSL numerical integrator
void Configure(const Registry &config)
THE MAIN GENIE PROJECT NAMESPACE
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 Integrate(const XSecAlgorithmI *model, const Interaction *i) const
static const double kASmallNum
static int max(int a, int b)
int fGSLMaxEval
GSL max evaluations.
T min(sqlite3 *const db, std::string const &table_name, std::string const &column_name)
A registry. Provides the container for algorithm configuration parameters.
bool IsAboveThreshold(void) const
Checks whether the interaction is above the energy threshold.
virtual bool ValidProcess(const Interaction *i) const =0
Can this cross section algorithm handle the input process?
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.
Root of GENIE utility namespaces.
const UInt_t kISkipProcessChk
if set, skip process validity checks
double fGSLRelTol
required relative tolerance (error)