GENIEGenerator
Loading...
Searching...
No Matches
ARSampledNucleus.h
Go to the documentation of this file.
1//____________________________________________________________________________
2/*!
3
4\class genie::alvarezruso::ARSampledNucleus
5
6\brief Nucleus class for Alvarez-Ruso Coherent Pion Production xsec
7
8\ref
9
10\author Steve Dennis
11 University of Warwick, Rutherford Appleton Laboratory
12
13\created 05/12/2013
14
15\cpright Copyright (c) 2003-2025, The GENIE Collaboration
16 For the full text of the license visit http://copyright.genie-mc.org
17*/
18//____________________________________________________________________________
19
20#ifndef _AR_NUCLEUS_H_
21#define _AR_NUCLEUS_H_
22
23#include <TF1.h>
24
25namespace genie
26{
27namespace alvarezruso
28{
29
31{
32 public:
33
34 ARSampledNucleus(unsigned int ZNumber, unsigned int ANumber, unsigned int sampling = 20);
35
37
38 unsigned int A() const { return fA; }
39
40 unsigned int Z() const { return fZ; }
41
42 unsigned int N() const { return (fA-fZ); }
43
44 double Density (const int i, const int j) const;
45 double DensityOfCentres(const int i, const int j) const;
46 double Radius (const int i, const int j) const;
47
48 double RadiusMax() const
49 {
50 return fR_max;
51 }
52 double SamplePoint1(const unsigned int i) const // absib in original fortran
53 {
54 return fSample_points_1[i];
55 }
56 double SamplePoint2(const unsigned int i) const // absiz in original fortran
57 {
58 return fSample_points_2[i];
59 }
60 //~ double SampleWeight1(const unsigned int i) const
61 //~ {
62 //~ return fSample_weights_1[i];
63 //~ }
64 //~ double SampleWeight2(const unsigned int i) const
65 //~ {
66 //~ return fSample_weights_2[i];
67 //~ }
68
69 unsigned int GetSampling (void) const;
70 unsigned int GetNDensities(void) const;
71
72 double CalcMatterDensity(double r) const;
73 double CalcNumberDensity(double r) const;
74
75 private:
76
77 void Fill();
78 void FillSamplePoints();
79 void FillDensities();
80 // Members
81
82 const unsigned int fZ;
83 const unsigned int fA;
84 unsigned int fSampling;
85
86 unsigned int fNDensities;
87
88 double fR_max;
89 double** fRadii;
90 double** fDensities;
92 double* fSample_points_1; // absib: 0 < r < r_max
93 double* fSample_points_2; // absiz: -r_max < r < r_max
96
98 double fNucRadius;
102 //double fRadiusCentresSq;
104
105 double CalcDensity(double radius, double nuc_rad, double nuc_diff) const;
106
107 // warning: in-class initializer for static data member of type 'const double' is a GNU extension [-Wgnu-static-float-init]
108 // static const double mean_radius_squared = 0.69; // in fermi
109 static double mean_radius_squared;
110
111 double Density0(unsigned int number, double diffuseness, double radius) const;
112 TF1* Density0Function() const;
113 static Double_t Density0FunctionFermiLiquid(Double_t* r, Double_t* parameters);
114
115};
116
117} //namespace alvarezruso
118} //namespace genie
119
120#endif
double DensityOfCentres(const int i, const int j) const
double Density0(unsigned int number, double diffuseness, double radius) const
double SamplePoint2(const unsigned int i) const
double CalcDensity(double radius, double nuc_rad, double nuc_diff) const
ARSampledNucleus(unsigned int ZNumber, unsigned int ANumber, unsigned int sampling=20)
double Density(const int i, const int j) const
static Double_t Density0FunctionFermiLiquid(Double_t *r, Double_t *parameters)
double Radius(const int i, const int j) const
double SamplePoint1(const unsigned int i) const
THE MAIN GENIE PROJECT NAMESPACE
Definition AlgCmp.h:25