![]() |
KaliVeda
Toolkit for HIC analysis
|
Based on the 'range' C library of: Author: Ricardo Yanez Copyright (c) 2005-2011 Ricardo Yanez ricar Calculates energy loss of an ion in an absorber by constructing range tables based on either the, Northcliffe-Schilling correlations (E/A < 12 MeV/A) (L.C. Northcliffe, R.F. Schilling, Nucl. Data Tables A7, 233, 1970). or, Hubert-Bimbot-Gauvin correlations (2.5 < E/A < 100 MeV/A) (Atomic Data and Nuclear Data Tables, 1990, 46, pp. 1-213). License: This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA do.y anez@ cale l.org
Definition at line 40 of file KVRangeYanezMaterial.cpp.
Classes | |
struct | elem |
Public Member Functions | |
void | alion (int zp, double *dedxz2) |
void | alref (double le, double *lz, double *dedx) |
double | dedx (int icorr, double e, int zp, int ap, int zt, int at) |
void | dedxtab (int icorr, int zp, int ap, int iabso, int zt, int at, double e, double *tdedxe, double *tdedxn) |
void | def_absorber (int zt, int at, int iabso) |
double | ededx (double e, int zp, int zt) |
double | ededxh (double e, int zp, int zt) |
double | egassap (int icorr, int zp, int ap, int iabso, int zt, int at, double t, double eut, double *err) |
void | gfact (double *le, int zt, double *f) |
unsigned int | locate (double y[], int n, double x) |
void | mpyers (double *le, int zt, double *f) |
double | ndedx (double e, int zp, int ap, int zt, int at) |
double | passage (int icorr, int zp, int ap, int iabso, int zt, int at, double ein, double t, double *err) |
double | polint (double *xa, double *ya, int n, double x, double *dy) |
double | rangen (int icorr, int zp, int ap, int iabso, int zt, int at, double ein) |
void | rangetab (int icorr, int zp, int ap, int iabso, int zt, int at, double *em, double *r, int *n) |
double | s2az (double e, int zt) |
double | SMOOTHERSTEP (double x) |
void | splie2 (double TOTO[], double x2a[], double *ya[], int m, int n, double *y2a[]) |
void | splin2 (double x1a[], double x2a[], double *ya[], double *y2a[], int m, int n, double x1, double x2, double *y) |
void | spline (double x[], double y[], int n, double yp1, double ypn, double *y2) |
void | splint (double xa[], double ya[], double y2a[], int n, double x, double *y) |
double | thickn (int icorr, int zp, int ap, int iabso, int zt, int at, double ein, double delen) |
Public Attributes | |
std::vector< elem > | absorb {NELMAX} |
int | is_gas = 0 |
int | nelem |
Private Attributes | |
std::vector< elem > | cmpnd {NELMAX} |
const double | FMT = 0.005 |
int | isw1 = 0 |
int | isw2 = 0 |
int | isw3 = 0 |
int | isw4 = 0 |
int | isw5 = 0 |
int | numel |
void range::alion | ( | int | zp, |
double * | dedxz2 | ||
) |
Definition at line 1276 of file KVRangeYanezMaterial.cpp.
void range::alref | ( | double | le, |
double * | lz, | ||
double * | dedx | ||
) |
Definition at line 1308 of file KVRangeYanezMaterial.cpp.
double range::dedx | ( | int | icorr, |
double | e, | ||
int | zp, | ||
int | ap, | ||
int | zt, | ||
int | at | ||
) |
Compute 1/(dE/dx) for a given energy E/A and projectile and target.
Definition at line 906 of file KVRangeYanezMaterial.cpp.
void range::dedxtab | ( | int | icorr, |
int | zp, | ||
int | ap, | ||
int | iabso, | ||
int | zt, | ||
int | at, | ||
double | e, | ||
double * | tdedxe, | ||
double * | tdedxn | ||
) |
Definition at line 850 of file KVRangeYanezMaterial.cpp.
void range::def_absorber | ( | int | zt, |
int | at, | ||
int | iabso | ||
) |
Definition at line 369 of file KVRangeYanezMaterial.cpp.
double range::ededx | ( | double | e, |
int | zp, | ||
int | zt | ||
) |
Compute the "electrical" energy loss rate in any material (-dE/dx)/Z2
Definition at line 940 of file KVRangeYanezMaterial.cpp.
double range::ededxh | ( | double | e, |
int | zp, | ||
int | zt | ||
) |
Definition at line 1036 of file KVRangeYanezMaterial.cpp.
double range::egassap | ( | int | icorr, |
int | zp, | ||
int | ap, | ||
int | iabso, | ||
int | zt, | ||
int | at, | ||
double | t, | ||
double | eut, | ||
double * | err | ||
) |
Calculate incoming energy of ion before passage through an absorber of thickness t.
Definition at line 596 of file KVRangeYanezMaterial.cpp.
void range::gfact | ( | double * | le, |
int | zt, | ||
double * | f | ||
) |
Definition at line 1183 of file KVRangeYanezMaterial.cpp.
|
inline |
Definition at line 244 of file KVRangeYanezMaterial.cpp.
void range::mpyers | ( | double * | le, |
int | zt, | ||
double * | f | ||
) |
Definition at line 1101 of file KVRangeYanezMaterial.cpp.
double range::ndedx | ( | double | e, |
int | zp, | ||
int | ap, | ||
int | zt, | ||
int | at | ||
) |
Definition at line 1011 of file KVRangeYanezMaterial.cpp.
double range::passage | ( | int | icorr, |
int | zp, | ||
int | ap, | ||
int | iabso, | ||
int | zt, | ||
int | at, | ||
double | ein, | ||
double | t, | ||
double * | err | ||
) |
Calculate energy of ion after passage through an absorber foil.
Definition at line 555 of file KVRangeYanezMaterial.cpp.
|
inline |
Definition at line 202 of file KVRangeYanezMaterial.cpp.
double range::rangen | ( | int | icorr, |
int | zp, | ||
int | ap, | ||
int | iabso, | ||
int | zt, | ||
int | at, | ||
double | ein | ||
) |
Calculate the range of a projectile
Definition at line 679 of file KVRangeYanezMaterial.cpp.
void range::rangetab | ( | int | icorr, |
int | zp, | ||
int | ap, | ||
int | iabso, | ||
int | zt, | ||
int | at, | ||
double * | em, | ||
double * | r, | ||
int * | n | ||
) |
Calculates a range table given projectile and absorber. Tables are saved in memory to speed up calculations. Up to NSAV such tables are saved.
Definition at line 708 of file KVRangeYanezMaterial.cpp.
double range::s2az | ( | double | e, |
int | zt | ||
) |
Definition at line 1654 of file KVRangeYanezMaterial.cpp.
|
inline |
SMOOTHERSTEP = interpolating function with zero first- and second- derivatives at the end points
Definition at line 136 of file KVRangeYanezMaterial.cpp.
|
inline |
Definition at line 262 of file KVRangeYanezMaterial.cpp.
|
inline |
Definition at line 281 of file KVRangeYanezMaterial.cpp.
|
inline |
Definition at line 298 of file KVRangeYanezMaterial.cpp.
|
inline |
Definition at line 333 of file KVRangeYanezMaterial.cpp.
double range::thickn | ( | int | icorr, |
int | zp, | ||
int | ap, | ||
int | iabso, | ||
int | zt, | ||
int | at, | ||
double | ein, | ||
double | delen | ||
) |
Calculate absorber thickness for a given energy decrement
Definition at line 642 of file KVRangeYanezMaterial.cpp.
std::vector<elem> range::absorb {NELMAX} |
Definition at line 95 of file KVRangeYanezMaterial.cpp.
|
private |
Definition at line 90 of file KVRangeYanezMaterial.cpp.
|
private |
Definition at line 75 of file KVRangeYanezMaterial.cpp.
int range::is_gas = 0 |
Definition at line 94 of file KVRangeYanezMaterial.cpp.
|
private |
Definition at line 77 of file KVRangeYanezMaterial.cpp.
|
private |
Definition at line 78 of file KVRangeYanezMaterial.cpp.
|
private |
Definition at line 79 of file KVRangeYanezMaterial.cpp.
|
private |
Definition at line 80 of file KVRangeYanezMaterial.cpp.
|
private |
Definition at line 81 of file KVRangeYanezMaterial.cpp.
int range::nelem |
Definition at line 93 of file KVRangeYanezMaterial.cpp.
|
private |
Definition at line 83 of file KVRangeYanezMaterial.cpp.