SuSAv2MECPXSec.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::SuSAv2MECPXSec
5 
6 \brief Computes the SuSAv2-MEC 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-2018, 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_MEC_PXSEC_H_
29 #define _SUSAV2_MEC_PXSEC_H_
30 
35 
36 namespace genie {
37 
38 class XSecIntegratorI;
39 
41 
42 public:
43 
45  SuSAv2MECPXSec(string config);
46  virtual ~SuSAv2MECPXSec();
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  // Method specifically for evaluating nn/np pair probabilities
59  double PairRatio(const Interaction* i) const;
60 
61 
62 private:
63 
64  /// Load algorithm configuration
65  void LoadConfig (void);
66 
67  // Calculate Qvalue Shift for susa:
68  double Qvalue(const Interaction & interaction ) const ;
69 
70  /// External scaling factor for this cross section
71  double fXSecScale;
72 
74 
75  // Fermi momentum table used for scaling
76  string fKFTable;
77 
78  // Binding energies:
79  double fEbHe;
80  double fEbLi;
81  double fEbC;
82  double fEbO;
83  double fEbMg;
84  double fEbAr;
85  double fEbCa;
86  double fEbFe;
87  double fEbNi;
88  double fEbSn;
89  double fEbAu;
90  double fEbPb;
91 
92  /// GSL numerical integrator
94 
95  const XSecScaleI * fMECScaleAlg ; // Optional algorithm to scale the xsec as a function of W
96  const QvalueShifter * fQvalueShifter ; // Optional algorithm to retrieve the qvalue shift for a given target
97 
98 };
99 
100 } // genie namespace
101 #endif // _SUSAV2_MEC_PXSEC_H_
Cross Section Calculation Interface.
THE MAIN GENIE PROJECT NAMESPACE
Definition: AlgCmp.h:25
Cross Section Integrator Interface.
const genie::HadronTensorModelI * fHadronTensorModel
This class is responsible to compute a scaling factor for the XSec.
Definition: XSecScaleI.h:25
double XSec(const Interaction *i, KinePhaseSpace_t k) const
Compute the cross section for the input interaction.
const XSecIntegratorI * fXSecIntegrator
GSL numerical integrator.
double PairRatio(const Interaction *i) const
enum genie::EKinePhaseSpace KinePhaseSpace_t
Computes the SuSAv2-MEC model differential cross section. Uses precomputed hadron tensor tables...
Summary information for an interaction.
Definition: Interaction.h:56
double Integral(const Interaction *i) const
static Config * config
Definition: config.cpp:1054
void LoadConfig(void)
Load algorithm configuration.
void Configure(const Registry &config)
double Qvalue(const Interaction &interaction) const
A registry. Provides the container for algorithm configuration parameters.
Definition: Registry.h:65
const QvalueShifter * fQvalueShifter
double fXSecScale
External scaling factor for this cross section.
bool ValidProcess(const Interaction *i) const
Can this cross section algorithm handle the input process?
Creates hadron tensor objects for use in cross section calculations.
const XSecScaleI * fMECScaleAlg