GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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-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_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 np/pp pair probabilities
59  double PairRatio(const Interaction* i,
60  const std::string& final_state_ratio = "pnFraction") const;
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 fXSecCCScale;
72  double fXSecNCScale;
73  double fXSecEMScale;
74 
76 
77  // Fermi momentum table used for scaling
78  string fKFTable;
79 
80  // Binding energies:
81  double fEbHe;
82  double fEbLi;
83  double fEbC;
84  double fEbO;
85  double fEbMg;
86  double fEbAr;
87  double fEbCa;
88  double fEbFe;
89  double fEbNi;
90  double fEbSn;
91  double fEbAu;
92  double fEbPb;
93 
94  /// GSL numerical integrator
96 
97  const XSecScaleI * fMECScaleAlg ; // Optional algorithm to scale the xsec as a function of W
98  const QvalueShifter * fQvalueShifter ; // Optional algorithm to retrieve the qvalue shift for a given target
99 
100 };
101 
102 } // genie namespace
103 #endif // _SUSAV2_MEC_PXSEC_H_
Cross Section Calculation Interface.
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.
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
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
double fXSecCCScale
External scaling factor for this cross section.
const QvalueShifter * fQvalueShifter
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.
double PairRatio(const Interaction *i, const std::string &final_state_ratio="pnFraction") const
const XSecScaleI * fMECScaleAlg