2017-07-25 12:19:11 -04:00
|
|
|
/// \file config.h
|
|
|
|
#ifndef CONFIG
|
|
|
|
#define CONFIG
|
|
|
|
#include <cstring>
|
|
|
|
namespace catima{
|
2019-10-09 02:19:07 -04:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \enum z_eff_type
|
2017-07-25 12:19:11 -04:00
|
|
|
* enum to select formulat to calculate effective charge of the Projectile
|
|
|
|
*/
|
2019-05-10 15:08:08 -04:00
|
|
|
enum z_eff_type:unsigned char {
|
2017-07-25 12:19:11 -04:00
|
|
|
none = 0,
|
|
|
|
pierce_blann = 1,
|
|
|
|
anthony_landorf = 2,
|
2018-01-15 09:11:51 -05:00
|
|
|
hubert = 3,
|
|
|
|
winger = 4,
|
|
|
|
schiwietz = 5,
|
2018-01-18 13:20:42 -05:00
|
|
|
global = 6,
|
|
|
|
atima14 = 7
|
2017-07-25 12:19:11 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* enum to select which dEdx correction to skip
|
|
|
|
*/
|
2018-07-31 09:34:41 -04:00
|
|
|
enum corrections:unsigned char{
|
2017-07-25 12:19:11 -04:00
|
|
|
no_barkas = 1,
|
|
|
|
no_lindhard = 2,
|
2018-10-31 14:14:29 -04:00
|
|
|
no_shell_correction = 4,
|
|
|
|
no_highenergy = 8
|
2017-07-25 12:19:11 -04:00
|
|
|
};
|
|
|
|
|
2018-01-18 13:20:42 -05:00
|
|
|
/**
|
2019-10-09 02:19:07 -04:00
|
|
|
* enum to select dEdx straggling options
|
2018-01-18 13:20:42 -05:00
|
|
|
*/
|
2019-05-10 15:08:08 -04:00
|
|
|
enum omega_types:unsigned char{
|
2018-01-18 13:20:42 -05:00
|
|
|
atima = 0,
|
|
|
|
bohr = 1,
|
|
|
|
};
|
|
|
|
|
2019-05-10 15:08:08 -04:00
|
|
|
/**
|
2019-10-09 02:19:07 -04:00
|
|
|
* enum to select how low energy part is calculated
|
2019-05-10 15:08:08 -04:00
|
|
|
*/
|
|
|
|
enum low_energy_types:unsigned char{
|
|
|
|
srim_85 = 0,
|
|
|
|
srim_95 = 1,
|
|
|
|
};
|
|
|
|
|
2020-12-16 16:53:44 -05:00
|
|
|
/**
|
|
|
|
* enum to select angular scattering
|
|
|
|
*/
|
|
|
|
enum scattering_types:unsigned char{
|
|
|
|
fermi_rossi = 0,
|
2021-01-12 15:50:15 -05:00
|
|
|
dhighland = 1,
|
|
|
|
gottschalk = 2,
|
2020-12-16 16:53:44 -05:00
|
|
|
atima_scattering = 255,
|
|
|
|
};
|
|
|
|
|
2017-07-25 12:19:11 -04:00
|
|
|
/**
|
|
|
|
* structure to store calculation configuration
|
|
|
|
*/
|
|
|
|
struct Config{
|
2019-05-10 15:08:08 -04:00
|
|
|
#ifndef GLOBAL
|
2018-07-31 09:34:41 -04:00
|
|
|
unsigned char z_effective=z_eff_type::pierce_blann;
|
2019-05-10 15:08:08 -04:00
|
|
|
#else
|
|
|
|
unsigned char z_effective=z_eff_type::atima14;
|
|
|
|
#endif
|
|
|
|
|
|
|
|
unsigned char corrections = 0;
|
|
|
|
unsigned char calculation = 1;
|
2020-12-16 16:53:44 -05:00
|
|
|
unsigned char low_energy = low_energy_types::srim_85;
|
2021-01-12 15:50:15 -05:00
|
|
|
unsigned char scattering = scattering_types::atima_scattering;
|
2017-07-25 12:19:11 -04:00
|
|
|
};
|
2019-05-10 15:08:08 -04:00
|
|
|
|
|
|
|
|
2017-07-25 12:19:11 -04:00
|
|
|
extern Config default_config;
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|