GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
NuclDensityMomentIntegrand.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 \class genie::utils::gsl::wrap::NuclDensityMomentIntegrand
4 
5 \brief Integrand for the calculation of the k^th nuclear density moment:
6  \int_{0}^{\infinity} \rho_{A}(r) r^k d^{3}r
7  where \rho_{A}(r) is the nuclear density for a nucleus with atomic
8  mass number A.
9 
10 \author Costas Andreopoulos <c.andreopoulos \at cern.ch>
11  University of Liverpool
12 
13 \created July 12, 2019
14 
15 \cpright Copyright (c) 2003-2024, The GENIE Collaboration
16  For the full text of the license visit http://copyright.genie-mc.org
17 */
18 //____________________________________________________________________________
19 
20 #ifndef _NUCL_DENSITY_MOMENT_INTEGRAND_H_
21 #define _NUCL_DENSITY_MOMENT_INTEGRAND_H_
22 
23 #include <Math/IFunction.h>
24 
25 namespace genie {
26  namespace utils {
27  namespace gsl {
28  namespace wrap {
29 
30  class NuclDensityMomentIntegrand : public ROOT::Math::IBaseFunctionOneDim
31  {
32  public:
33  NuclDensityMomentIntegrand(int A, int k /*, would be good to have options on \rho */);
35  // ROOT::Math::IBaseFunctionOneDim interface
36  unsigned int NDim (void) const;
37  double DoEval (double xin) const;
38  ROOT::Math::IBaseFunctionOneDim * Clone (void) const;
39  private:
40  int fA; // atomic mass
41  int fK; // which nuclear density moment
42  };
43 
44  } // wrap namespace
45  } // gsl namespace
46  } // utils namespace
47 } // genie namespace
48 
49 
50 #endif // _NUCL_DENSITY_MOMENT_INTEGRAND_H_
ROOT::Math::IBaseFunctionOneDim * Clone(void) const
static constexpr double A
Definition: Units.h:74
Integrand for the calculation of the k^th nuclear density moment: {0}^{} {A}(r) r^k d^{3}r where {A}(...