21 #ifndef _NUCLEAR_MODEL_MAP_H_
22 #define _NUCLEAR_MODEL_MAP_H_
43 double hitNucleonRadius)
const;
44 virtual double Prob (
double p,
double w,
const Target & t,
45 double hitNucleonRadius)
const;
51 double Prob (
double p,
double w,
const Target & t)
const {
52 return Prob(p,w,t,0.0);
74 #endif // _NUCLEAR_MODEL_MAP_H_
virtual double Prob(double p, double w, const Target &t, double hitNucleonRadius) const
virtual double LocalFermiMomentum(const Target &t, int nucleon_pdg, double radius) const
bool GenerateNucleon(const Target &t) const
Pure abstract base class. Defines the NuclearModelI interface to be implemented by any physics model ...
const NuclearModelI * fDefGlobModel
default basic model (should work for all nuclei)
virtual ~NuclearModelMap()
NuclearModel_t ModelType(const Target &t) const
A Neutrino Interaction Target. Is a transparent encapsulation of quite different physical systems suc...
virtual double Prob(double p, double w, const Target &) const =0
virtual bool GenerateNucleon(const Target &t, double hitNucleonRadius) const
map< int, const NuclearModelI * > fRefinedModels
refinements for specific elements
void Configure(const Registry &config)
double Prob(double p, double w, const Target &t) const
enum genie::ENuclearModel NuclearModel_t
A registry. Provides the container for algorithm configuration parameters.
virtual double FermiMomentum(const Target &t, int nucleon_pdg) const
This class is a hook for nuclear models and allows associating each one of them with specific nuclei...
const NuclearModelI * SelectModel(const Target &t) const
virtual bool GenerateNucleon(const Target &) const =0