12 #include <Math/IFunction.h> 13 #include <Math/Integrator.h> 14 #include <Math/IntegratorMultiDim.h> 15 #include "Math/AdaptiveIntegratorMultiDim.h" 17 #include "Framework/Conventions/GBuild.h" 29 using namespace genie;
61 LOG(
"COHXSecAR",
pDEBUG) <<
"*** Below energy threshold";
69 double Elep_min = (1.-y_lim.
max) * Enu;
70 double Elep_max = (1.-y_lim.
min) * Enu;
73 <<
"Lepton energy integration range = [" << Elep_min <<
", " << Elep_max <<
"]";
91 ROOT::Math::Integrator ig(*func,ig_type,abstol,
fGSLRelTol,size,rule);
93 xsec = ig.Integral(Elep_min, Elep_max) * (1
E-38 *
units::cm2);
106 ROOT::Math::IBaseFunctionMultiDim *
func =
108 double kine_min[4] = { Elep_min, zero , zero , zero };
109 double kine_max[4] = { Elep_max,
pi ,
pi , twopi };
117 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
THE MAIN GENIE PROJECT NAMESPACE
Cross Section Integrator Interface.
ROOT::Math::IntegrationMultiDim::Type IntegrationNDimTypeFromString(string type)
A simple [min,max] interval for doubles.
double Integrate(const XSecAlgorithmI *model, const Interaction *i) const
Range1D_t Limits(KineVar_t kvar) const
Return the kinematical variable limits.
decltype(auto) constexpr size(T &&obj)
ADL-aware version of std::size.
void Configure(const Registry &config)
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)
static const double kASmallNum
Misc GENIE control constants.
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.
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
double ProbeE(RefFrame_t rf) const
Root of GENIE utility namespaces.
const UInt_t kISkipProcessChk
if set, skip process validity checks
Initial State information.
double fGSLRelTol
required relative tolerance (error)