GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SuSAv2QELPXSec.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::SuSAv2QELPXSec
5 
6 \brief Computes the SuSAv2-QE model differential cross section.
7  Uses precomputed hadron tensor tables.
8  Is a concrete implementation of the XSecAlgorithmI interface.
9 
10 \author Steven Gardiner <gardiner \at fnal.gov>
11  Fermi National Acclerator Laboratory
12 
13  Stephen Dolan <stephen.joseph.dolan \at cern.ch>
14  European Organization for Nuclear Research (CERN)
15 
16 \ref G.D. Megias et al., "Meson-exchange currents and quasielastic
17  predictions for charged-current neutrino-12C scattering in the
18  superscaling approach," PRD 91 (2015) 073004
19 
20 \created November 2, 2018
21 
22 \cpright Copyright (c) 2003-2024, The GENIE Collaboration
23  For the full text of the license visit http://copyright.genie-mc.org
24  or see $GENIE/LICENSE
25 */
26 //____________________________________________________________________________
27 
28 #ifndef _SUSAV2_QE_PXSEC_H_
29 #define _SUSAV2_QE_PXSEC_H_
30 
35 
36 namespace genie {
37 
38 class XSecIntegratorI;
39 
41 
42 public:
43 
45  SuSAv2QELPXSec(string config);
46  virtual ~SuSAv2QELPXSec();
47 
48  // XSecAlgorithmI interface implementation
49  double XSec(const Interaction* i, KinePhaseSpace_t k) const;
50  double Integral(const Interaction* i) const;
51  bool ValidProcess(const Interaction* i) const;
52 
53  // override the Algorithm::Configure methods to load configuration
54  // data to private data members
55  void Configure (const Registry & config);
56  void Configure (string config);
57 
58 private:
59 
60  /// Load algorithm configuration
61  void LoadConfig (void);
62 
63  // Apply scaling of the first kind to the xsec
64  // (A-scaling with tuning based on Fermi momentum)
65  double XSecScaling(double xsec, const Interaction* i, int target_pdg, int tensor_pdg, bool need_to_scale) const;
66 
67 
68  /// External scaling factor for this cross section
69  double fXSecCCScale;
70  double fXSecNCScale;
71  double fXSecEMScale;
72 
73  /// Blending start/end q0 value for the combined models
74  int blendMode;
75  double q0BlendStart;
76  double q0BlendEnd;
77  double qBlendDel;
78  double qBlendRef;
79 
80  // Which model to run
81  enum modelType {
84  kMd_CRPA = 2,
85  kMd_HF = 3,
89  kMd_HFPW = 7,
93  };
94 
96 
98 
99  // Fermi momentum table used for scaling
100  string fKFTable;
101 
102  // Binding energies:
103  double fEbHe;
104  double fEbLi;
105  double fEbC;
106  double fEbO;
107  double fEbMg;
108  double fEbAr;
109  double fEbCa;
110  double fEbFe;
111  double fEbNi;
112  double fEbSn;
113  double fEbAu;
114  double fEbPb;
115 
116  /// GSL numerical integrator
118 
119  /// Alternate cross section model for free nucleon targets
121 
122  const QvalueShifter * fQvalueShifter ; // Gives the option to retrieve a qvalue shift for a given target
123 };
124 
125 } // genie namespace
126 #endif // _SUSAV2_QE_PXSEC_H_
Cross Section Calculation Interface.
void LoadConfig(void)
Load algorithm configuration.
Cross Section Integrator Interface.
int blendMode
Blending start/end q0 value for the combined models.
const XSecIntegratorI * fXSecIntegrator
GSL numerical integrator.
const QvalueShifter * fQvalueShifter
enum genie::EKinePhaseSpace KinePhaseSpace_t
double XSec(const Interaction *i, KinePhaseSpace_t k) const
Compute the cross section for the input interaction.
Summary information for an interaction.
Definition: Interaction.h:56
double fXSecCCScale
External scaling factor for this cross section.
const HadronTensorModelI * fHadronTensorModel
const XSecAlgorithmI * fFreeNucleonXSecAlg
Alternate cross section model for free nucleon targets.
double XSecScaling(double xsec, const Interaction *i, int target_pdg, int tensor_pdg, bool need_to_scale) const
bool ValidProcess(const Interaction *i) const
Can this cross section algorithm handle the input process?
A registry. Provides the container for algorithm configuration parameters.
Definition: Registry.h:65
Computes the SuSAv2-QE model differential cross section. Uses precomputed hadron tensor tables...
Creates hadron tensor objects for use in cross section calculations.
void Configure(const Registry &config)
double Integral(const Interaction *i) const