-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtof_in.h
62 lines (56 loc) · 2.5 KB
/
tof_in.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#ifndef TOF_IN_H
#define TOF_IN_H
#include <jibal_option.h>
#define CARBON_DENSITY
typedef struct tofin_file {
double toflen;
double foil_thickness; /* initially in ug/cm2, then in tfu */
double tof_slope;
double tof_offset;
double angle_slope;
double angle_offset;
char *efficiency_directory;
} tofin_file;
typedef enum {
TOFIN_HEADER_NONE = 0,
TOFIN_HEADER_BEAM = 1,
TOFIN_HEADER_ENERGY = 2,
TOFIN_HEADER_DETECTOR_ANGLE = 3,
TOFIN_HEADER_TARGET_ANGLE = 4,
TOFIN_HEADER_TOFLEN = 5,
TOFIN_HEADER_CARBON_FOIL_THICKNESS = 6,
TOFIN_HEADER_TARGET_DENSITY = 7,
TOFIN_HEADER_TOF_CALIBRATION = 8,
TOFIN_HEADER_ANGLE_CALIBRATION = 9,
TOFIN_HEADER_DEPTH_STEPS = 10,
TOFIN_HEADER_DEPTH_STEP_STOPPING = 11,
TOFIN_HEADER_DEPTH_STEP_OUTPUT = 12,
TOFIN_HEADER_DEPTHS_CONCENTRATION_SCALING = 13,
TOFIN_HEADER_CROSS_SECTION = 14,
TOFIN_HEADER_ITERATIONS = 15,
TOFIN_HEADER_EFFICIENCY_DIRECTORY = 16
} tofin_header_type;
static const jibal_option tofin_headers[] = {
{JIBAL_OPTION_STR_NONE, TOFIN_HEADER_NONE},
{"Beam", TOFIN_HEADER_BEAM},
{"Energy", TOFIN_HEADER_ENERGY},
{"Detector angle", TOFIN_HEADER_DETECTOR_ANGLE},
{"Target angle", TOFIN_HEADER_TARGET_ANGLE},
{"Toflen", TOFIN_HEADER_TOFLEN},
{"Carbon foil thickness", TOFIN_HEADER_CARBON_FOIL_THICKNESS},
{"Target density", TOFIN_HEADER_TARGET_DENSITY},
{"TOF calibration", TOFIN_HEADER_TOF_CALIBRATION},
{"Angle calibration", TOFIN_HEADER_ANGLE_CALIBRATION},
{"Number of depth steps", TOFIN_HEADER_DEPTH_STEPS},
{"Depth step for stopping", TOFIN_HEADER_DEPTH_STEP_STOPPING},
{"Depth step for output", TOFIN_HEADER_DEPTH_STEP_OUTPUT},
{"Depths for concentration scaling", TOFIN_HEADER_DEPTHS_CONCENTRATION_SCALING},
{"Cross section", TOFIN_HEADER_CROSS_SECTION},
{"Number of iterations", TOFIN_HEADER_ITERATIONS},
{"Efficiency directory", TOFIN_HEADER_EFFICIENCY_DIRECTORY},
{0, 0}
};
tofin_file *tofin_file_load(const char *filename);
int tofin_file_parse_header(tofin_file *tofin, const char *header, const char *data);
void tofin_file_free(tofin_file *tofin);
#endif