20 using namespace genie;
64 GetParam(
"IBDNucXSecModel", dgmodel ) ;
66 <<
"Default IBD cross section model: " << dgmodel;
76 for(
int Z=1; Z<140; Z++) {
77 for(
int A=Z;
A<3*Z;
A++) {
78 std::ostringstream key;
80 key <<
"IBDNucXSecModel@Pdg=" << nucpdg;
81 RgKey rgkey = key.str();
85 <<
"Nucleus =" << nucpdg
86 <<
" -> refined nuclear model: " << rgmodel;
92 insert(map<int,const XSecAlgorithmI*>::value_type(mapkeyval,
105 map<int,const XSecAlgorithmI*>::const_iterator it =
fRefinedModels.find(t.
Pdg());
115 return xs->
XSec(i, k);
117 LOG(
"IBD",
pERROR) <<
"No IBD XSec model found for target "
129 LOG(
"IBD",
pERROR) <<
"No IBD XSec model found for target "
141 LOG(
"IBD",
pERROR) <<
"No IBD XSec model found for target "
153 LOG(
"IBD",
pERROR) <<
"No IBD XSec model found for target "
Cross Section Calculation Interface.
void Configure(const Registry &config)
const XSecAlgorithmI * fDefaultModel
double Integral(const Interaction *i) const
enum genie::EKinePhaseSpace KinePhaseSpace_t
virtual const Registry & GetConfig(void) const
bool ValidKinematics(const Interaction *i) const
Is the input kinematical point a physically allowed one?
Summary information for an interaction.
virtual bool ValidKinematics(const Interaction *i) const
Is the input kinematical point a physically allowed one?
std::map< int, const XSecAlgorithmI * > fRefinedModels
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
static constexpr double A
A Neutrino Interaction Target. Is a transparent encapsulation of quite different physical systems suc...
virtual void Configure(const Registry &config)
Maps specific nuclei to appropriate cross section models.
virtual bool ValidProcess(const Interaction *i) const =0
Can this cross section algorithm handle the input process?
virtual double XSec(const Interaction *i, KinePhaseSpace_t k=kPSfE) const =0
Compute the cross section for the input interaction.
bool fIsotopesUseSameModel
const XSecAlgorithmI * SelectModel(const Target &t) const
A registry. Provides the container for algorithm configuration parameters.
int IonPdgCode(int A, int Z)
double XSec(const Interaction *i, KinePhaseSpace_t k) const
Compute the cross section for the input interaction.
const InitialState & InitState(void) const
bool GetParam(const RgKey &name, T &p, bool is_top_call=true) const
const Target & Tgt(void) const
Most commonly used PDG codes. A set of utility functions to handle PDG codes is provided in PDGUtils...
bool ValidProcess(const Interaction *i) const
Can this cross section algorithm handle the input process?
virtual double Integral(const Interaction *i) const =0
RgAlg GetAlg(RgKey key) const
const Algorithm * SubAlg(const RgKey ®istry_key) const