EffectiveSF.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::EffectiveSF
5 
6 \brief An effective spectral function to match psi' superscaling.
7  Implements the NuclearModelI interface.
8 
9 \ref http://arxiv.org/abs/1405.0583
10 
11 \author Brian Coopersmith, University of Rochester
12 
13 \created April 02, 2014
14 
15 \cpright Copyright (c) 2003-2019, The GENIE Collaboration
16  For the full text of the license visit http://copyright.genie-mc.org
17  or see $GENIE/LICENSE
18 */
19 //____________________________________________________________________________
20 
21 #ifndef _EFFECTIVE_SF_H_
22 #define _EFFECTIVE_SF_H_
23 
24 #include <map>
25 
26 #include <TH1D.h>
27 
29 
30 using std::map;
31 
32 namespace genie {
33 
34 class EffectiveSF : public NuclearModelI {
35 
36 public:
37  EffectiveSF();
38  EffectiveSF(string config);
39  virtual ~EffectiveSF();
40 
41  using NuclearModelI::GenerateNucleon; // inherit versions not overridden here
42  using NuclearModelI::Prob;
43 
44  //-- implement the NuclearModelI interface
45  bool GenerateNucleon (const Target & t) const;
46  double Prob (double mom, double w, const Target & t) const;
48  {
49  return kNucmEffSpectralFunc;
50  }
51 
52  //-- override the Algorithm::Configure methods to load configuration
53  // data to private data members
54  void Configure (const Registry & config);
55  void Configure (string param_set);
56 
57 private:
58  TH1D * ProbDistro (const Target & t) const;
59 
60  TH1D * MakeEffectiveSF(const Target & target) const;
61 
62  TH1D * MakeEffectiveSF(double bs, double bp, double alpha, double beta,
63  double c1, double c2, double c3,
64  const Target & target) const;
65 
66  double ReturnBindingEnergy(const Target & target) const;
67  double GetTransEnh1p1hMod(const Target& target) const;
68 
69  double Returnf1p1h(const Target & target) const;
70  void LoadConfig (void);
71 
72  mutable map<string, TH1D *> fProbDistroMap;
73  double fPMax;
74  double fPCutOff;
77 
78  // Map from PDG code to spectral function parameters
79  map<int, double> fNucRmvE;
80  map<int, double> f1p1hMap;
81  map<int, std::vector<double> > fProbDistParams;
82  map<int, double> fTransEnh1p1hMods;
83 
84  // Map from range of A (pair<lowA, highA> inclusive> to spectral
85  // function parameters.
86  map<pair<int, int>, double> fRangeNucRmvE;
87  map<pair<int, int>, double> fRange1p1hMap;
88  map<pair<int, int>, std::vector<double> > fRangeProbDistParams;
89  map<pair<int, int>, double> fRangeTransEnh1p1hMods;
90 };
91 
92 } // genie namespace
93 #endif // _EFFECTIVE_SF_H_
void Configure(const Registry &config)
const XML_Char * target
Definition: expat.h:268
THE MAIN GENIE PROJECT NAMESPACE
Definition: GeneratorBase.h:8
map< string, TH1D * > fProbDistroMap
Definition: EffectiveSF.h:72
double Prob(double mom, double w, const Target &t) const
Pure abstract base class. Defines the NuclearModelI interface to be implemented by any physics model ...
Definition: NuclearModelI.h:42
Definition: config.py:1
Double_t beta
map< int, std::vector< double > > fProbDistParams
Definition: EffectiveSF.h:81
TH1D * MakeEffectiveSF(const Target &target) const
map< pair< int, int >, std::vector< double > > fRangeProbDistParams
Definition: EffectiveSF.h:88
map< int, double > fTransEnh1p1hMods
Definition: EffectiveSF.h:82
virtual ~EffectiveSF()
Definition: EffectiveSF.cxx:52
c2
Definition: demo5.py:33
map< int, double > f1p1hMap
Definition: EffectiveSF.h:80
map< pair< int, int >, double > fRangeNucRmvE
Definition: EffectiveSF.h:86
map< pair< int, int >, double > fRange1p1hMap
Definition: EffectiveSF.h:87
An effective spectral function to match psi&#39; superscaling. Implements the NuclearModelI interface...
Definition: EffectiveSF.h:34
double GetTransEnh1p1hMod(const Target &target) const
A Neutrino Interaction Target. Is a transparent encapsulation of quite different physical systems suc...
Definition: Target.h:41
double ReturnBindingEnergy(const Target &target) const
double Returnf1p1h(const Target &target) const
TH1D * ProbDistro(const Target &t) const
enum genie::ENuclearModel NuclearModel_t
void LoadConfig(void)
Definition: bp.py:1
A registry. Provides the container for algorithm configuration parameters.
Definition: Registry.h:66
virtual bool GenerateNucleon(const Target &) const =0
c1
Definition: demo5.py:24
bool fEjectSecondNucleon2p2h
Definition: EffectiveSF.h:75
map< int, double > fNucRmvE
Definition: EffectiveSF.h:79
bool GenerateNucleon(const Target &t) const
Definition: EffectiveSF.cxx:67
virtual double Prob(double p, double w, const Target &) const =0
Float_t w
Definition: plot.C:20
NuclearModel_t ModelType(const Target &) const
Definition: EffectiveSF.h:47
map< pair< int, int >, double > fRangeTransEnh1p1hMods
Definition: EffectiveSF.h:89