GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
LocalFGM.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::LocalFGM
5 
6 \brief local Fermi gas model. Implements the NuclearModelI
7  interface.
8 
9 \ref
10 
11 \author Joe Johnston, Steven Dytman
12 
13 \created December 2015
14 
15 \cpright Copyright (c) 2003-2024, The GENIE Collaboration
16  For the full text of the license visit http://copyright.genie-mc.org
17 
18 */
19 //____________________________________________________________________________
20 
21 #ifndef _LOCAL_FGM_H_
22 #define _LOCAL_FGM_H_
23 
24 #include <map>
25 
26 #include <TH1D.h>
27 
29 
30 using std::map;
31 
32 namespace genie {
33 
34 class LocalFGM : public NuclearModelI {
35 
36 public:
37  LocalFGM();
38  LocalFGM(string config);
39  virtual ~LocalFGM();
40 
41  using NuclearModelI::GenerateNucleon; // inherit versions not overridden here
42  using NuclearModelI::Prob;
43 
44  //-- allow methods to be called with a radius
45  bool GenerateNucleon (const Target & t, double hitNucleonRadius) const;
46  double Prob (double p, double w, const Target & t,
47  double hitNucleonRadius) const;
48 
49  //-- implement the NuclearModelI interface
50  bool GenerateNucleon (const Target & t) const {
51  return GenerateNucleon(t,0.0);
52  }
53  double Prob (double p, double w, const Target & t) const {
54  return Prob(p,w,t,0.0);
55  }
56  NuclearModel_t ModelType (const Target &) const
57  {
58  return kNucmLocalFermiGas;
59  }
60 
61  virtual double LocalFermiMomentum( const Target & t, int nucleon_pdg, double radius ) const ;
62 
63  //-- override the Algorithm::Configure methods to load configuration
64  // data to private data members
65  void Configure (const Registry & config);
66  void Configure (string param_set) ;
67 
68  protected:
69  void LoadConfig (void);
70 
71 
72 private:
73  TH1D * ProbDistro (const Target & t, double r) const;
74 
75  map<int, double> fNucRmvE;
76 
77  double fPMax;
80 
81  // options related to SRC pairs
82  double fSRC_Fraction;
83  double fPCutOff;
84 
85 };
86 
87 } // genie namespace
88 #endif // _LOCAL_FGM_H_
89 
double Prob(double p, double w, const Target &t) const
Definition: LocalFGM.h:53
bool fMomDepErmv
Definition: LocalFGM.h:78
double Prob(double p, double w, const Target &t, double hitNucleonRadius) const
Definition: LocalFGM.cxx:147
Pure abstract base class. Defines the NuclearModelI interface to be implemented by any physics model ...
Definition: NuclearModelI.h:46
NuclearModel_t ModelType(const Target &) const
Definition: LocalFGM.h:56
local Fermi gas model. Implements the NuclearModelI interface.
Definition: LocalFGM.h:34
map< int, double > fNucRmvE
Definition: LocalFGM.h:75
void LoadConfig(void)
Definition: LocalFGM.cxx:265
A Neutrino Interaction Target. Is a transparent encapsulation of quite different physical systems suc...
Definition: Target.h:40
double fSRC_Fraction
Definition: LocalFGM.h:82
double fPCutOff
Definition: LocalFGM.h:83
bool GenerateNucleon(const Target &t, double hitNucleonRadius) const
Definition: LocalFGM.cxx:52
virtual double Prob(double p, double w, const Target &) const =0
double fPMax
Definition: LocalFGM.h:77
bool GenerateNucleon(const Target &t) const
Definition: LocalFGM.h:50
TH1D * ProbDistro(const Target &t, double r) const
Definition: LocalFGM.cxx:163
enum genie::ENuclearModel NuclearModel_t
A registry. Provides the container for algorithm configuration parameters.
Definition: Registry.h:65
virtual ~LocalFGM()
Definition: LocalFGM.cxx:47
virtual double LocalFermiMomentum(const Target &t, int nucleon_pdg, double radius) const
Definition: LocalFGM.cxx:237
void Configure(const Registry &config)
Definition: LocalFGM.cxx:253
virtual bool GenerateNucleon(const Target &) const =0
bool fForcePositiveErmv
Definition: LocalFGM.h:79