Monte Carlo eXtreme (MCX)
mcx_const.h
Go to the documentation of this file.
1 /***************************************************************************/
25 /***************************************************************************/
31 #ifndef _MCEXTREME_CONSTANT_H
32 #define _MCEXTREME_CONSTANT_H
33 
34 #define MCX_VERSION "v2023"
35 #define MCX_VERSION_MAJOR 2
36 #define MCX_VERSION_MINOR 0
37 
38 #define ONE_PI 3.1415926535897932f
39 #define TWO_PI 6.28318530717959f
40 #define R_PI 0.318309886183791f
42 #define C0 299792458000.f
43 #define R_C0 3.335640951981520e-12f
45 #define JUST_ABOVE_ONE 1.0001f
46 #define JUST_BELOW_ONE 0.9998f
47 #define SAME_VOXEL -9999.f
48 #define NO_LAUNCH 9999
49 #define FILL_MAXDETPHOTON 3
50 #define OUTSIDE_VOLUME_MIN 0xFFFFFFFF
51 #define OUTSIDE_VOLUME_MAX 0x7FFFFFFF
52 #define BOUNDARY_DET_MASK 0xFFFF0000
53 #define MAX_PROP_AND_DETECTORS 4000
54 #define SEED_FROM_FILE -999
55 #define NANGLES 1000
57 #define SIGN_BIT 0x80000000U
58 #define DET_MASK 0x80000000
59 #define MED_MASK 0x7FFFFFFF
60 #define LOWER_MASK 0xFF000000
61 #define UPPER_MASK 0x00FF0000
63 #define MCX_DEBUG_RNG 1
64 #define MCX_DEBUG_MOVE 2
65 #define MCX_DEBUG_PROGRESS 4
66 #define MCX_DEBUG_MOVE_ONLY 8
68 #define MEDIA_2LABEL_SPLIT 97
69 #define MEDIA_2LABEL_MIX 98
70 #define MEDIA_LABEL_HALF 99
71 #define MEDIA_AS_F2H 100
72 #define MEDIA_MUA_FLOAT 101
73 #define MEDIA_AS_HALF 102
74 #define MEDIA_ASGN_BYTE 103
75 #define MEDIA_AS_SHORT 104
77 #define MCX_DEBUG_REC_LEN 6
79 #define MCX_SRC_PENCIL 0
80 #define MCX_SRC_ISOTROPIC 1
81 #define MCX_SRC_CONE 2
82 #define MCX_SRC_GAUSSIAN 3
83 #define MCX_SRC_PLANAR 4
84 #define MCX_SRC_PATTERN 5
85 #define MCX_SRC_FOURIER 6
86 #define MCX_SRC_ARCSINE 7
87 #define MCX_SRC_DISK 8
88 #define MCX_SRC_FOURIERX 9
89 #define MCX_SRC_FOURIERX2D 10
90 #define MCX_SRC_ZGAUSSIAN 11
91 #define MCX_SRC_LINE 12
92 #define MCX_SRC_SLIT 13
93 #define MCX_SRC_PENCILARRAY 14
94 #define MCX_SRC_PATTERN3D 15
95 #define MCX_SRC_HYPERBOLOID_GAUSSIAN 16
96 #define MCX_SRC_RING 17
98 #define SAVE_DETID(a) ((a) & 0x1)
99 #define SAVE_NSCAT(a) ((a)>>1 & 0x1)
100 #define SAVE_PPATH(a) ((a)>>2 & 0x1)
101 #define SAVE_MOM(a) ((a)>>3 & 0x1)
102 #define SAVE_PEXIT(a) ((a)>>4 & 0x1)
103 #define SAVE_VEXIT(a) ((a)>>5 & 0x1)
104 #define SAVE_W0(a) ((a)>>6 & 0x1)
105 #define SAVE_IQUV(a) ((a)>>7 & 0x1)
107 #define SET_SAVE_DETID(a) ((a) | 0x1 )
108 #define SET_SAVE_NSCAT(a) ((a) | 0x1<<1)
109 #define SET_SAVE_PPATH(a) ((a) | 0x1<<2)
110 #define SET_SAVE_MOM(a) ((a) | 0x1<<3)
111 #define SET_SAVE_PEXIT(a) ((a) | 0x1<<4)
112 #define SET_SAVE_VEXIT(a) ((a) | 0x1<<5)
113 #define SET_SAVE_W0(a) ((a) | 0x1<<6)
114 #define SET_SAVE_IQUV(a) ((a) | 0x1<<7)
116 #define UNSET_SAVE_DETID(a) ((a) & ~(0x1) )
117 #define UNSET_SAVE_NSCAT(a) ((a) & ~(0x1<<1))
118 #define UNSET_SAVE_PPATH(a) ((a) & ~(0x1<<2))
119 #define UNSET_SAVE_MOM(a) ((a) & ~(0x1<<3))
120 #define UNSET_SAVE_PEXIT(a) ((a) & ~(0x1<<4))
121 #define UNSET_SAVE_VEXIT(a) ((a) & ~(0x1<<5))
122 #define UNSET_SAVE_W0(a) ((a) & ~(0x1<<6))
123 #define UNSET_SAVE_IQUV(a) ((a) & ~(0x1<<7))
125 #if !defined(MCX_CONTAINER) && !defined(_MSC_VER)
126  #define S_RED "\x1b[31m"
127  #define S_GREEN "\x1b[32m"
128  #define S_YELLOW "\x1b[33m"
129  #define B_WHITE "\x1b[100m"
130  #define S_BLUE "\x1b[34m"
131  #define S_MAGENTA "\x1b[35m"
132  #define L_MAGENTA "\x1b[95m"
133  #define S_CYAN "\x1b[36m"
134  #define S_BOLD "\x1b[1m"
135  #define S_ITALIC "\x1b[3m"
136  #define S_RESET "\x1b[0m"
137 #else
138  #define S_RED
139  #define S_GREEN
140  #define S_YELLOW
141  #define B_WHITE
142  #define S_BLUE
143  #define S_MAGENTA
144  #define L_MAGENTA
145  #define S_CYAN
146  #define S_BOLD
147  #define S_ITALIC
148  #define S_RESET
149 #endif
150 
151 #endif