16#include <Math/IFunction.h>
17#include <Math/IntegratorMultiDim.h>
20#include "Framework/Conventions/GBuild.h"
68 LOG(
"ReinSehgalRESXSecFast",
pDEBUG) <<
"*** Below energy threshold";
105 << Ev <<
" GeV) = " << xsec/(1E-38 *
cm2)<<
" x 1E-38 cm^2";
127 <<
"Finding cache branch with key: " << key;
132 <<
"No cached RES v-production data for input neutrino"
133 <<
" (pdgc: " << nu_pdgc <<
")";
135 <<
"Wait while computing/caching RES production xsec first...";
139 LOG(
"ReinSehgalResTF",
pINFO) <<
"Done caching resonance xsec data";
141 <<
"Finding newly created cache branch with key: " << key;
144 assert(cache_branch);
151 double rxsec = (Ev<
fEMax-1) ? cbranch(Ev) : cbranch(
fEMax-1);
155 << Ev <<
" GeV) = " << rxsec/(1E-38 *
cm2)<<
" x 1E-38 cm^2";
172 <<
"*** Integrating d^2 XSec/dWdQ^2 for R: "
175 <<
"{W} = " << rW.
min <<
", " << rW.
max;
177 <<
"{Q^2} = " << rQ2.
min <<
", " << rQ2.
max;
182 ig.SetFunction(*
func);
183 double kine_min[2] = { rW.
min, rQ2.
min };
184 double kine_max[2] = { rW.
max, rQ2.
max };
185 double xsec = ig.Integral(kine_min, kine_max) * (1E-38 *
units::cm2);
220 GetParam(
"ResonanceNameList", resonances ) ;
221 fResList.DecodeFromNameList(resonances);
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE,...
#define SLOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a short string (using the FUNCTION and...
Most commonly used PDG codes. A set of utility functions to handle PDG codes is provided in PDGUtils.
bool GetParam(const RgKey &name, T &p, bool is_top_call=true) const
virtual void Configure(const Registry &config)
bool GetParamDef(const RgKey &name, T &p, const T &def) const
A simple cache branch storing the cached data in a TNtuple.
static Cache * Instance(void)
CacheBranchI * FindCacheBranch(string key)
finding/adding cache branches
Initial State information.
const Target & Tgt(void) const
double ProbeE(RefFrame_t rf) const
Target * TgtPtr(void) const
Summary information for an interaction.
const XclsTag & ExclTag(void) const
InitialState * InitStatePtr(void) const
const ProcessInfo & ProcInfo(void) const
const KPhaseSpace & PhaseSpace(void) const
const InitialState & InitState(void) const
bool IsAboveThreshold(void) const
Checks whether the interaction is above the energy threshold.
A class encapsulating an enumeration of interaction types (EM, Weak-CC, Weak-NC) and scattering types...
InteractionType_t InteractionTypeId(void) const
A simple [min,max] interval for doubles.
A registry. Provides the container for algorithm configuration parameters.
double Integrate(const XSecAlgorithmI *model, const Interaction *i) const
virtual ~ReinSehgalRESXSecFast()
bool fUsePauliBlocking
account for Pauli blocking?
void Configure(const Registry &config)
ReinSehgalRESXSecWithCacheFast()
void CacheResExcitationXSec(const Interaction *interaction) const
const XSecAlgorithmI * fSingleResXSecModel
string CacheBranchName(Resonance_t r, InteractionType_t it, int nu, int nuc) const
bool BareXSecPreCalc(void) const
static RunOpt * Instance(void)
A numeric analysis tool class for interpolating 1-D functions.
double Evaluate(double x) const
A Neutrino Interaction Target. Is a transparent encapsulation of quite different physical systems suc...
int HitNucPdg(void) const
bool IsNucleus(void) const
Cross Section Calculation Interface.
virtual bool ValidProcess(const Interaction *i) const =0
Can this cross section algorithm handle the input process?
string fGSLIntgType
name of GSL numerical integrator
int fGSLMaxEval
GSL max evaluations.
double fGSLRelTol
required relative tolerance (error)
List of cross section vs energy splines.
bool SplineExists(const XSecAlgorithmI *alg, const Interaction *i) const
const Spline * GetSpline(const XSecAlgorithmI *alg, const Interaction *i) const
static XSecSplineList * Instance()
Resonance_t Resonance(void) const
double func(double x, double y)
Physical System of Units.
static constexpr double cm2
ROOT::Math::IntegrationMultiDim::Type IntegrationNDimTypeFromString(string type)
const char * AsString(Resonance_t res)
resonance id -> string
THE MAIN GENIE PROJECT NAMESPACE
enum genie::EInteractionType InteractionType_t
enum genie::EResonance Resonance_t
const UInt_t kIAssumeFreeNucleon