1
0
Fork 0
mirror of https://github.com/gwm17/catima.git synced 2024-11-22 18:28:51 -05:00
catima/config.h

79 lines
1.7 KiB
C
Raw Normal View History

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,
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;
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