GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
FGMBodekRitchie.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::FGMBodekRitchie
5 
6 \brief The Bodek Richie Fermi Gass model. Implements the NuclearModelI
7  interface.
8 
9 \ref
10 
11 \author Costas Andreopoulos <c.andreopoulos \at cern.ch>
12  University of Liverpool
13 
14 \created October 09, 2004
15 
16 \cpright Copyright (c) 2003-2024, The GENIE Collaboration
17  For the full text of the license visit http://copyright.genie-mc.org
18 
19 */
20 //____________________________________________________________________________
21 
22 #ifndef _FGM_BODEK_RITCHIE_H_
23 #define _FGM_BODEK_RITCHIE_H_
24 
25 #include <map>
26 
27 #include <TH1D.h>
28 
30 
31 using std::map;
32 
33 namespace genie {
34 
36 
37 public:
39  FGMBodekRitchie(string config);
40  virtual ~FGMBodekRitchie();
41 
42  using NuclearModelI::GenerateNucleon; // inherit versions not overridden here
43  using NuclearModelI::Prob;
44 
45  //-- implement the NuclearModelI interface
46  bool GenerateNucleon (const Target & t) const;
47  double Prob (double mom, double w, const Target & t) const;
48  NuclearModel_t ModelType (const Target &) const
49  {
50  return kNucmFermiGas;
51  }
52 
53  virtual double FermiMomentum( const Target & t, int nucleon_pdg ) const ;
54 
55  //-- override the Algorithm::Configure methods to load configuration
56  // data to private data members
57  void Configure (const Registry & config);
58  void Configure (string param_set);
59 
60  protected:
61  void LoadConfig (void);
62 
63 private:
64 
65  TH1D * ProbDistro (const Target & t) const;
66 
67  mutable map<string, TH1D *> fProbDistroMap;
68 
69  map<int, double> fNucRmvE;
70 
71  double fPMax;
72  double fPCutOff;
74 
75 };
76 
77 } // genie namespace
78 #endif // _FGM_BODEK_RITCHIE_H_
79 
map< int, double > fNucRmvE
Pure abstract base class. Defines the NuclearModelI interface to be implemented by any physics model ...
Definition: NuclearModelI.h:46
The Bodek Richie Fermi Gass model. Implements the NuclearModelI interface.
void Configure(const Registry &config)
A Neutrino Interaction Target. Is a transparent encapsulation of quite different physical systems suc...
Definition: Target.h:40
virtual double Prob(double p, double w, const Target &) const =0
bool GenerateNucleon(const Target &t) const
TH1D * ProbDistro(const Target &t) const
enum genie::ENuclearModel NuclearModel_t
double Prob(double mom, double w, const Target &t) const
A registry. Provides the container for algorithm configuration parameters.
Definition: Registry.h:65
NuclearModel_t ModelType(const Target &) const
map< string, TH1D * > fProbDistroMap
virtual double FermiMomentum(const Target &t, int nucleon_pdg) const
virtual bool GenerateNucleon(const Target &) const =0