25 using namespace genie;
26 using namespace genie::constants;
53 LOG(
"COHXSec",
pDEBUG) <<
"*** Below energy threshold";
79 for(
unsigned int ires = 0; ires < nres; ires++) {
87 <<
"Finding cache branch with key: " << key;
93 <<
"No cached RES v-production data for input neutrino"
94 <<
" (pdgc: " << nu_pdgc <<
")";
96 <<
"Wait while computing/caching RES production xsec first...";
100 LOG(
"ReinSehgalSpp",
pINFO) <<
"Done caching resonance xsec data";
102 <<
"Finding newly created cache branch with key: " << key;
105 assert(cache_branch);
112 double rxsec = (Ev<
fEMax-1) ? cbranch(Ev) : cbranch(
fEMax-1);
123 double res_xsec_contrib = rxsec*br*igg;
127 <<
"<Clebsch-Gordon = " << igg
128 <<
"> * <BR(->1pi) = " << br
129 <<
"> * <Breit-Wigner * d^2xsec/dQ^2dW = " << rxsec
130 <<
"> = " << res_xsec_contrib;
133 xsec += res_xsec_contrib;
139 <<
"/free] (Ev = " << Ev <<
" GeV) = " << xsec;
178 GetParam(
"ResonanceNameList", resonances ) ;
Cross Section Calculation Interface.
static SppChannel_t FromInteraction(const Interaction *interaction)
const KPhaseSpace & PhaseSpace(void) const
InteractionType_t InteractionTypeId(void) const
string fGSLIntgType
name of GSL numerical integrator
int HitNucPdg(void) const
double Integrate(const XSecAlgorithmI *model, const Interaction *i) const
void DecodeFromNameList(string list, string delimiter=",")
virtual ~ReinSehgalSPPXSec()
void Configure(const Registry &config)
static double IsospinWeight(SppChannel_t channel, Resonance_t res)
enum genie::EResonance Resonance_t
unsigned int NResonances(void) const
enum genie::ESppChannel SppChannel_t
static string AsString(SppChannel_t channel)
Summary information for an interaction.
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
A class encapsulating an enumeration of interaction types (EM, Weak-CC, Weak-NC) and scattering types...
string CacheBranchName(Resonance_t r, InteractionType_t it, int nu, int nuc) const
A Neutrino Interaction Target. Is a transparent encapsulation of quite different physical systems suc...
virtual void Configure(const Registry &config)
void CacheResExcitationXSec(const Interaction *interaction) const
virtual bool ValidProcess(const Interaction *i) const =0
Can this cross section algorithm handle the input process?
CacheBranchI * FindCacheBranch(string key)
finding/adding cache branches
int fGSLMaxEval
GSL max evaluations.
A registry. Provides the container for algorithm configuration parameters.
const UInt_t kIAssumeFreeNucleon
bool IsAboveThreshold(void) const
Checks whether the interaction is above the energy threshold.
An ABC that caches resonance neutrinoproduction cross sections on free nucleons according to the Rein...
const InitialState & InitState(void) const
const char * AsString(Resonance_t res)
resonance id -> string
const ProcessInfo & ProcInfo(void) const
bool GetParamDef(const RgKey &name, T &p, const T &def) const
bool GetParam(const RgKey &name, T &p, bool is_top_call=true) const
const Target & Tgt(void) const
static Cache * Instance(void)
A simple cache branch storing the cached data in a TNtuple.
static double BranchingRatio(Resonance_t res)
#define SLOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a short string (using the FUNCTION and...
double ProbeE(RefFrame_t rf) const
enum genie::EInteractionType InteractionType_t
const XSecAlgorithmI * fSingleResXSecModel
Initial State information.
double fGSLRelTol
required relative tolerance (error)
Resonance_t ResonanceId(unsigned int ires) const