44 using namespace starlightConstants;
49 const int productionMode)
52 _productionMode(productionMode)
115 printWarn <<
"density not defined for projectile with Z = " <<
_Z <<
". using defaults." << endl;
117 _rho0 = 0.138/(1.13505-0.0004283*
_A);
149 if ((
_Z == 1) && (
_A == 1)) {
150 const double rec = 1. / (1. + t / 0.71);
161 const double q = sqrt(t);
162 const double arg1 = q * R /
hbarc;
163 const double arg2 =
hbarc / (q *
R);
164 const double sph = (sin(arg1) - arg1 *
cos(arg1)) * 3. * arg2 * arg2 * arg2;
165 const double a0 = 0.70;
166 return sph / (1. + (a0 * a0 *
t) / (
hbarc *
hbarc));
175 const double rec = 1. / (1. + t / t0);
188 const unsigned int nmbPoints = 5;
189 const double xg[nmbPoints + 1] = {0., 0.1488743390, 0.4333953941, 0.6794095683,
190 0.8650633667, 0.9739065285};
191 const double ag[nmbPoints + 1] = {0., 0.2955242247, 0.2692667193, 0.2190863625,
192 0.1494513492, 0.0666713443};
194 const double zMin = 0;
195 const double zMax = 15;
196 const double zRange = 0.5 * (zMax - zMin);
197 const double zMean = 0.5 * (zMax + zMin);
199 for(
unsigned int i = 1; i <= nmbPoints; ++i) {
200 double zsp = zRange * xg[i] + zMean;
201 double radius = sqrt(b * b + zsp * zsp);
202 sum += ag[i] *
rws(radius);
203 zsp = zRange * (-xg[i]) + zMean;
204 radius = sqrt(b * b + zsp * zsp);
205 sum += ag[i] *
rws(radius);
208 return 2. * zRange * sum;