KaliVeda
Toolkit for HIC analysis
range Class Reference

Detailed Description

Based on the 'range' C library of: Author: Ricardo Yanez Copyright (c) 2005-2011 Ricardo Yanez ricar.nosp@m.do.y.nosp@m.anez@.nosp@m.cale.nosp@m.l.org 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

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< elemabsorb {NELMAX}
 
int is_gas = 0
 
int nelem
 

Private Attributes

std::vector< elemcmpnd {NELMAX}
 
const double FMT = 0.005
 
int isw1 = 0
 
int isw2 = 0
 
int isw3 = 0
 
int isw4 = 0
 
int isw5 = 0
 
int numel
 

Member Function Documentation

◆ alion()

void range::alion ( int  zp,
double *  dedxz2 
)

Definition at line 1276 of file KVRangeYanezMaterial.cpp.

◆ alref()

void range::alref ( double  le,
double *  lz,
double *  dedx 
)

Definition at line 1308 of file KVRangeYanezMaterial.cpp.

◆ dedx()

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.

◆ dedxtab()

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.

◆ def_absorber()

void range::def_absorber ( int  zt,
int  at,
int  iabso 
)

Definition at line 369 of file KVRangeYanezMaterial.cpp.

◆ ededx()

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.

◆ ededxh()

double range::ededxh ( double  e,
int  zp,
int  zt 
)

Definition at line 1036 of file KVRangeYanezMaterial.cpp.

◆ egassap()

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.

◆ gfact()

void range::gfact ( double *  le,
int  zt,
double *  f 
)

Definition at line 1183 of file KVRangeYanezMaterial.cpp.

◆ locate()

unsigned int range::locate ( double  y[],
int  n,
double  x 
)
inline

Definition at line 244 of file KVRangeYanezMaterial.cpp.

◆ mpyers()

void range::mpyers ( double *  le,
int  zt,
double *  f 
)

Definition at line 1101 of file KVRangeYanezMaterial.cpp.

◆ ndedx()

double range::ndedx ( double  e,
int  zp,
int  ap,
int  zt,
int  at 
)

Definition at line 1011 of file KVRangeYanezMaterial.cpp.

◆ passage()

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.

◆ polint()

double range::polint ( double *  xa,
double *  ya,
int  n,
double  x,
double *  dy 
)
inline

Definition at line 202 of file KVRangeYanezMaterial.cpp.

◆ rangen()

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.

◆ rangetab()

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.

◆ s2az()

double range::s2az ( double  e,
int  zt 
)

Definition at line 1654 of file KVRangeYanezMaterial.cpp.

◆ SMOOTHERSTEP()

double range::SMOOTHERSTEP ( double  x)
inline

SMOOTHERSTEP = interpolating function with zero first- and second- derivatives at the end points

Definition at line 136 of file KVRangeYanezMaterial.cpp.

◆ splie2()

void range::splie2 ( double  TOTO[],
double  x2a[],
double *  ya[],
int  m,
int  n,
double *  y2a[] 
)
inline

Definition at line 262 of file KVRangeYanezMaterial.cpp.

◆ splin2()

void range::splin2 ( double  x1a[],
double  x2a[],
double *  ya[],
double *  y2a[],
int  m,
int  n,
double  x1,
double  x2,
double *  y 
)
inline

Definition at line 281 of file KVRangeYanezMaterial.cpp.

◆ spline()

void range::spline ( double  x[],
double  y[],
int  n,
double  yp1,
double  ypn,
double *  y2 
)
inline

Definition at line 298 of file KVRangeYanezMaterial.cpp.

◆ splint()

void range::splint ( double  xa[],
double  ya[],
double  y2a[],
int  n,
double  x,
double *  y 
)
inline

Definition at line 333 of file KVRangeYanezMaterial.cpp.

◆ thickn()

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.

Member Data Documentation

◆ absorb

std::vector<elem> range::absorb {NELMAX}

Definition at line 95 of file KVRangeYanezMaterial.cpp.

◆ cmpnd

std::vector<elem> range::cmpnd {NELMAX}
private

Definition at line 90 of file KVRangeYanezMaterial.cpp.

◆ FMT

const double range::FMT = 0.005
private

Definition at line 75 of file KVRangeYanezMaterial.cpp.

◆ is_gas

int range::is_gas = 0

Definition at line 94 of file KVRangeYanezMaterial.cpp.

◆ isw1

int range::isw1 = 0
private

Definition at line 77 of file KVRangeYanezMaterial.cpp.

◆ isw2

int range::isw2 = 0
private

Definition at line 78 of file KVRangeYanezMaterial.cpp.

◆ isw3

int range::isw3 = 0
private

Definition at line 79 of file KVRangeYanezMaterial.cpp.

◆ isw4

int range::isw4 = 0
private

Definition at line 80 of file KVRangeYanezMaterial.cpp.

◆ isw5

int range::isw5 = 0
private

Definition at line 81 of file KVRangeYanezMaterial.cpp.

◆ nelem

int range::nelem

Definition at line 93 of file KVRangeYanezMaterial.cpp.

◆ numel

int range::numel
private

Definition at line 83 of file KVRangeYanezMaterial.cpp.