GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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 <c.andreopoulos \at cern.ch>
13  University of Liverpool
14 
15 \created May 05, 2004
16 
17 \cpright Copyright (c) 2003-2024, The GENIE Collaboration
18  For the full text of the license visit http://copyright.genie-mc.org
19 
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:
41  LwlynSmithQELCCPXSec(string config);
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 fXSecCCScale; ///< external xsec scaling factor for CC
65  double fXSecNCScale; ///< external xsec scaling factor for NC
66  double fXSecEMScale; ///< external xsec scaling factor for EM
67 
68  // Variables for integrating
70  bool fLFG; ///< If the nuclear model is lfg alway average over nucleons
71  bool fDoAvgOverNucleonMomentum; ///< Average cross section over hit nucleon monentum?
72  double fEnergyCutOff; ///< Average only for energies below this cutoff defining
73  ///< the region where nuclear modeling details do matter
74 
75  /// Enum specifying the method to use when calculating the binding energy of
76  /// the initial hit nucleon during spline generation
78 
79  /// Whether to apply Pauli blocking in FullDifferentialXSec
81  /// The PauliBlocker instance to use to apply that correction
83 };
84 
85 } // genie namespace
86 
87 #endif
double FullDifferentialXSec(const Interaction *i) const
Cross Section Calculation Interface.
double fXSecCCScale
external xsec scaling factor for CC
double fXSecNCScale
external xsec scaling factor for NC
A class holding Quasi Elastic (QEL) Form Factors.
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:46
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:65
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.
double fXSecEMScale
external xsec scaling factor for EM