26 #include <Math/GaussLegendreIntegrator.h>
39 using namespace genie::constants;
42 namespace alvarezruso {
44 double ARSampledNucleus::mean_radius_squared = 0.69;
46 ARSampledNucleus::ARSampledNucleus(
unsigned int ZNumber,
unsigned int ANumber,
unsigned int fSampling_):
128 fR_max = 3.0 * TMath::Power(this->
A(), (1.0/3.0));
130 #ifdef __GENIE_LOW_LEVEL_MESG_ENABLED__
221 dens_rel = (1.0 + nuc_diff*r*r/(nuc_rad*nuc_rad)) * exp(-r*r/(nuc_rad*nuc_rad));
224 dens_rel = 1.0 / (1.0 + exp((r - nuc_rad)/nuc_diff));
228 double dens_0 =
Density0(
fA,nuc_rad,nuc_diff);
230 return dens_0 * dens_rel;
243 double dterm = (3*diffuseness+2);
244 double term1 = TMath::Sqrt(TMath::Pi())*dterm*TMath::Power(radius,3)*TMath::Exp(u*u)*TMath::Erf(u);
245 double term2 = 2*
fR_max*(dterm*radius*radius+2*diffuseness*radius*radius);
246 result = (0.5)*TMath::Pi()*TMath::Exp(-u*u)*(term1 - term2);
253 f->SetParameter(0, diffuseness);
254 f->SetParameter(1, radius);
255 result = f->Integral(0.0,
fR_max);
259 return ( number / result );
270 double diffuseness = parameters[0];
271 double radius = parameters[1];
273 double dens = 1.0 / (1.0 + exp((r - radius)/diffuseness));
275 return 4.0*TMath::Pi()*r*r*dens;
double Density(const int i, const int j) const
double * fSample_points_1
TF1 * Density0Function() const
double Radius(const int i, const int j) const
static double mean_radius_squared
double fUseHarmonicOscillator
double fDiffusenessCentres
double CalcMatterDensity(double r) const
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
static Double_t Density0FunctionFermiLiquid(Double_t *r, Double_t *parameters)
double * fSample_weights_2
double Density0(unsigned int number, double diffuseness, double radius) const
double ** fDensitiesOfCentres
double CalcDensity(double radius, double nuc_rad, double nuc_diff) const
unsigned int GetNDensities(void) const
unsigned int GetSampling(void) const
double CalcNumberDensity(double r) const
double DensityOfCentres(const int i, const int j) const
double * fSample_points_2
double * fSample_weights_1