KaliVeda
Toolkit for HIC analysis
Loading...
Searching...
No Matches
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 39 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 1275 of file KVRangeYanezMaterial.cpp.

◆ alref()

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

Definition at line 1307 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 905 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 849 of file KVRangeYanezMaterial.cpp.

◆ def_absorber()

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

Definition at line 368 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 939 of file KVRangeYanezMaterial.cpp.

◆ ededxh()

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

Definition at line 1035 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 595 of file KVRangeYanezMaterial.cpp.

◆ gfact()

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

Definition at line 1182 of file KVRangeYanezMaterial.cpp.

◆ locate()

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

Definition at line 243 of file KVRangeYanezMaterial.cpp.

◆ mpyers()

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

Definition at line 1100 of file KVRangeYanezMaterial.cpp.

◆ ndedx()

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

Definition at line 1010 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 554 of file KVRangeYanezMaterial.cpp.

◆ polint()

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

Definition at line 201 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 678 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 707 of file KVRangeYanezMaterial.cpp.

◆ s2az()

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

Definition at line 1653 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 135 of file KVRangeYanezMaterial.cpp.

◆ splie2()

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

Definition at line 261 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 280 of file KVRangeYanezMaterial.cpp.

◆ spline()

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

Definition at line 297 of file KVRangeYanezMaterial.cpp.

◆ splint()

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

Definition at line 332 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 641 of file KVRangeYanezMaterial.cpp.

Member Data Documentation

◆ absorb

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

Definition at line 94 of file KVRangeYanezMaterial.cpp.

◆ cmpnd

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

Definition at line 89 of file KVRangeYanezMaterial.cpp.

◆ FMT

const double range::FMT = 0.005
private

Definition at line 74 of file KVRangeYanezMaterial.cpp.

◆ is_gas

int range::is_gas = 0

Definition at line 93 of file KVRangeYanezMaterial.cpp.

◆ isw1

int range::isw1 = 0
private

Definition at line 76 of file KVRangeYanezMaterial.cpp.

◆ isw2

int range::isw2 = 0
private

Definition at line 77 of file KVRangeYanezMaterial.cpp.

◆ isw3

int range::isw3 = 0
private

Definition at line 78 of file KVRangeYanezMaterial.cpp.

◆ isw4

int range::isw4 = 0
private

Definition at line 79 of file KVRangeYanezMaterial.cpp.

◆ isw5

int range::isw5 = 0
private

Definition at line 80 of file KVRangeYanezMaterial.cpp.

◆ nelem

int range::nelem

Definition at line 92 of file KVRangeYanezMaterial.cpp.

◆ numel

int range::numel
private

Definition at line 82 of file KVRangeYanezMaterial.cpp.