GENIEGenerator
Loading...
Searching...
No Matches
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-2025, 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
30using std::map;
31
32namespace genie {
33
34class LocalFGM : public NuclearModelI {
35
36public:
37 LocalFGM();
38 LocalFGM(string config);
39 virtual ~LocalFGM();
40
41 using NuclearModelI::GenerateNucleon; // inherit versions not overridden here
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 }
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
72private:
73 TH1D * ProbDistro (const Target & t, double r) const;
74
75 /// Throw a value from the Maxwell-Boltzmann distribution with the configured
76 /// parameters
77 double MaxwellBoltzmannRemovalE(const Target & t, double Ermv_min,
78 double Ermv_max) const;
79
80 map<int, double> fNucRmvE;
81
82 double fPMax;
86
87 // options related to SRC pairs
89 double fPCutOff;
90
91 /// Center of Maxwell-Boltmann distribution used for SRC removal energy
92 /// distribution, GeV
94
95 /// Sigma of Maxwell-Boltmann distribution used for SRC removal energy
96 /// distribution, GeV
98};
99
100} // genie namespace
101#endif // _LOCAL_FGM_H_
102
bool fForcePositiveErmv
Definition LocalFGM.h:84
NuclearModel_t ModelType(const Target &) const
Definition LocalFGM.h:56
double fSRC_Ermv_sigma
Definition LocalFGM.h:97
double fPCutOff
Definition LocalFGM.h:89
virtual double LocalFermiMomentum(const Target &t, int nucleon_pdg, double radius) const
Definition LocalFGM.cxx:296
virtual ~LocalFGM()
Definition LocalFGM.cxx:48
double fSRC_Fraction
Definition LocalFGM.h:88
double fSRC_Ermv_C
Definition LocalFGM.h:93
double Prob(double p, double w, const Target &t, double hitNucleonRadius) const
Definition LocalFGM.cxx:176
map< int, double > fNucRmvE
Definition LocalFGM.h:80
double MaxwellBoltzmannRemovalE(const Target &t, double Ermv_min, double Ermv_max) const
Definition LocalFGM.cxx:267
TH1D * ProbDistro(const Target &t, double r) const
Definition LocalFGM.cxx:192
bool GenerateNucleon(const Target &t) const
Definition LocalFGM.h:50
void LoadConfig(void)
Definition LocalFGM.cxx:324
double Prob(double p, double w, const Target &t) const
Definition LocalFGM.h:53
bool GenerateNucleon(const Target &t, double hitNucleonRadius) const
Definition LocalFGM.cxx:53
void Configure(const Registry &config)
Definition LocalFGM.cxx:312
virtual double Prob(double p, double w, const Target &) const =0
virtual bool GenerateNucleon(const Target &) const =0
A registry. Provides the container for algorithm configuration parameters.
Definition Registry.h:65
A Neutrino Interaction Target. Is a transparent encapsulation of quite different physical systems suc...
Definition Target.h:40
THE MAIN GENIE PROJECT NAMESPACE
Definition AlgCmp.h:25
enum genie::ENuclearModel NuclearModel_t
@ kNucmLocalFermiGas