LwlynSmithQELCCPXSec.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::LwlynSmithQELCCPXSec
5 
6 \brief Computes neutrino-nucleon(nucleus) QELCC differential cross section
7  Is a concrete implementation of the XSecAlgorithmI interface. \n
8 
9 \ref C.H.Llewellyn Smith, Physics Reports (Sect. C of Physics Letters) 3,
10  No. 5 (1972) 261-379
11 
12 \author Costas Andreopoulos <costas.andreopoulos \at stfc.ac.uk>
13  University of Liverpool & STFC Rutherford Appleton Lab
14 
15 \created May 05, 2004
16 
17 \cpright Copyright (c) 2003-2019, The GENIE Collaboration
18  For the full text of the license visit http://copyright.genie-mc.org
19  or see $GENIE/LICENSE
20 */
21 //____________________________________________________________________________
22 
23 #ifndef _LLEWELLYN_SMITH_QELCC_CROSS_SECTION_H_
24 #define _LLEWELLYN_SMITH_QELCC_CROSS_SECTION_H_
25 
31 
32 namespace genie {
33 
34 class QELFormFactorsModelI;
35 class XSecIntegratorI;
36 
38 
39 public:
42  virtual ~LwlynSmithQELCCPXSec();
43 
44  // XSecAlgorithmI interface implementation
45  double XSec (const Interaction * i, KinePhaseSpace_t k) const;
46  double Integral (const Interaction * i) const;
47  bool ValidProcess (const Interaction * i) const;
48 
49  // Override the Algorithm::Configure methods to load configuration
50  // data to private data members
51  void Configure (const Registry & config);
52  void Configure (string param_set);
53 
54 private:
55  double FullDifferentialXSec(const Interaction * i) const;
56 
57  void LoadConfig (void);
58 
62  double fCos8c2; ///< cos^2(cabibbo angle)
63 
64  double fXSecScale; ///< external xsec scaling factor
65 
66  // Variables for integrating
68  bool fLFG; ///< If the nuclear model is lfg alway average over nucleons
69  bool fDoAvgOverNucleonMomentum; ///< Average cross section over hit nucleon monentum?
70  double fEnergyCutOff; ///< Average only for energies below this cutoff defining
71  ///< the region where nuclear modeling details do matter
72 
73  /// Enum specifying the method to use when calculating the binding energy of
74  /// the initial hit nucleon during spline generation
76 
77  /// Whether to apply Pauli blocking in FullDifferentialXSec
79  /// The PauliBlocker instance to use to apply that correction
81 };
82 
83 } // genie namespace
84 
85 #endif
double FullDifferentialXSec(const Interaction *i) const
Cross Section Calculation Interface.
A class holding Quasi Elastic (QEL) Form Factors.
THE MAIN GENIE PROJECT NAMESPACE
Definition: GeneratorBase.h:8
Cross Section Integrator Interface.
bool fLFG
If the nuclear model is lfg alway average over nucleons.
Examines whether the generated event should be Pauli blocked. Is a concerete implementation of the Ev...
Definition: PauliBlocker.h:36
const NuclearModelI * fNuclModel
Pure abstract base class. Defines the NuclearModelI interface to be implemented by any physics model ...
Definition: NuclearModelI.h:42
double fXSecScale
external xsec scaling factor
Definition: config.py:1
enum genie::EKinePhaseSpace KinePhaseSpace_t
enum genie::EQELEvGenBindingMode QELEvGen_BindingMode_t
bool fDoAvgOverNucleonMomentum
Average cross section over hit nucleon monentum?
double Integral(const Interaction *i) const
Computes neutrino-nucleon(nucleus) QELCC differential cross section Is a concrete implementation of t...
QELEvGen_BindingMode_t fIntegralNucleonBindingMode
Summary information for an interaction.
Definition: Interaction.h:56
const QELFormFactorsModelI * fFormFactorsModel
const XSecIntegratorI * fXSecIntegrator
Pure abstract base class. Defines the QELFormFactorsModelI interface to be implemented by any algorit...
bool fDoPauliBlocking
Whether to apply Pauli blocking in FullDifferentialXSec.
A registry. Provides the container for algorithm configuration parameters.
Definition: Registry.h:66
bool ValidProcess(const Interaction *i) const
Can this cross section algorithm handle the input process?
double fCos8c2
cos^2(cabibbo angle)
const genie::PauliBlocker * fPauliBlocker
The PauliBlocker instance to use to apply that correction.
void Configure(const Registry &config)
double XSec(const Interaction *i, KinePhaseSpace_t k) const
Compute the cross section for the input interaction.