2017-07-25 12:19:11 -04:00
|
|
|
#ifndef CATIMA_CWRAPPER
|
|
|
|
#define CATIMA_CWRAPPER
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
struct CatimaResult{
|
|
|
|
double Ein;
|
|
|
|
double Eout;
|
|
|
|
double Eloss;
|
|
|
|
double range;
|
|
|
|
double dEdxi;
|
|
|
|
double dEdxo;
|
|
|
|
double sigma_E;
|
|
|
|
double sigma_a;
|
|
|
|
double sigma_r;
|
2019-10-08 14:25:30 -04:00
|
|
|
double tof;
|
2017-07-25 12:19:11 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
enum z_eff_type {
|
|
|
|
none = 0,
|
2019-10-08 14:25:30 -04:00
|
|
|
pierce_blann = 1,
|
|
|
|
anthony_landorf = 2,
|
|
|
|
hubert = 3,
|
|
|
|
winger = 4,
|
|
|
|
schiwietz = 5,
|
|
|
|
global = 6,
|
|
|
|
atima14 = 7
|
2017-07-25 12:19:11 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
struct CatimaConfig {
|
|
|
|
char z_effective;
|
|
|
|
};
|
|
|
|
|
2019-10-08 14:25:30 -04:00
|
|
|
struct CatimaConfig catima_defaults = {none};
|
2017-07-25 12:19:11 -04:00
|
|
|
|
|
|
|
typedef struct CatimaResult CatimaResult;
|
|
|
|
|
|
|
|
CatimaResult catima_calculate(double pa, int pz, double T, double ta, double tz, double thickness, double density);
|
|
|
|
double catima_angular_straggling_from_E(double pa, int pz, double Tin, double Tout,double ta, double tz);
|
|
|
|
double catima_energy_straggling_from_E(double pa, int pz, double Tin, double Tout,double ta, double tz);
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
2019-10-08 14:25:30 -04:00
|
|
|
#endif
|