GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PattonCEvNSPXSec.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::PattonCEvNSPXSec
5 
6 \brief Differential cross section for v+As coherent elastic scattering.
7  Is a concrete implementation of the XSecAlgorithmI interface.
8 
9 \ref K.Patton, J.Engel, G.McLaughlin, and N.Schunck, arXiv:1207.0693v1
10 
11 \author Costas Andreopoulos <c.andreopoulos \at cern.ch>
12  University of Liverpool
13 
14 \created July 12, 2019
15 
16 \cpright Copyright (c) 2003-2024, The GENIE Collaboration
17  For the full text of the license visit http://copyright.genie-mc.org
18 */
19 //____________________________________________________________________________
20 
21 #ifndef _PATTON_ET_AL_COHERENT_ELASTIC_PXSEC_H_
22 #define _PATTON_ET_AL_COHERENT_ELASTIC_PXSEC_H_
23 
25 
26 namespace genie {
27 
28 class XSecIntegratorI;
29 
31 
32 public:
34  PattonCEvNSPXSec(string config);
35  virtual ~PattonCEvNSPXSec();
36 
37  // XSecAlgorithmI interface implementation
38  double XSec (const Interaction * i, KinePhaseSpace_t k) const;
39  double Integral (const Interaction * i) const;
40  bool ValidProcess (const Interaction * i) const;
41 
42  // Override the Algorithm::Configure methods to load configuration
43  // data to private data members
44  void Configure (const Registry & config);
45  void Configure (string param_set);
46 
47 private:
48 
49  void LoadConfig(void);
50 
51  // Calculate nuclear density moments
52  double NuclearDensityMoment(int A, int k) const;
53 
54  const XSecIntegratorI * fXSecIntegrator; ///< cross section integrator
55  double fSin2thw; ///< sin^2(weinberg angle)
56 
57  // Parameters used for the numerical integration yielding nuclear density moments
58  double fNuclDensMomentCalc_UpperIntegrationLimit; // upper integration limit (in units of nuclear radii R0*A^1/3)
59  double fNuclDensMomentCalc_RelativeTolerance; // relative tolerance for numerical integrator
60  double fNuclDensMomentCalc_AbsoluteTolerance; // absolute tolerance for numerical integrator
61  int fNuclDensMomentCalc_MaxNumOfEvaluations; // maximum number of integran evaluations in numerical integration
62 
63 };
64 
65 } // genie namespace
66 
67 #endif // _PATTON_ET_AL_COHERENT_ELASTIC_PXSEC_H_
Cross Section Calculation Interface.
bool ValidProcess(const Interaction *i) const
Can this cross section algorithm handle the input process?
double fNuclDensMomentCalc_AbsoluteTolerance
Cross Section Integrator Interface.
double XSec(const Interaction *i, KinePhaseSpace_t k) const
Compute the cross section for the input interaction.
double fNuclDensMomentCalc_RelativeTolerance
Differential cross section for v+As coherent elastic scattering. Is a concrete implementation of the ...
const XSecIntegratorI * fXSecIntegrator
cross section integrator
enum genie::EKinePhaseSpace KinePhaseSpace_t
double Integral(const Interaction *i) const
void Configure(const Registry &config)
double NuclearDensityMoment(int A, int k) const
Summary information for an interaction.
Definition: Interaction.h:56
static constexpr double A
Definition: Units.h:74
double fSin2thw
sin^2(weinberg angle)
double fNuclDensMomentCalc_UpperIntegrationLimit
A registry. Provides the container for algorithm configuration parameters.
Definition: Registry.h:65