v2.0.0
Loading...
Searching...
No Matches
fiff_constants.h
Go to the documentation of this file.
1//=============================================================================================================
36
37#ifndef FIFF_CONSTANTS_H
38#define FIFF_CONSTANTS_H
39
40//=============================================================================================================
41// DEFINE NAMESPACE FIFFLIB
42//=============================================================================================================
43
44namespace FIFFLIB
45{
46
47//=============================================================================================================
48// FIFF constants
49//=============================================================================================================
50
51#define FIFFC_FAIL -1
52#define FIFFC_OK 0
53
54#define FIFFV_TRUE 1
55#define FIFFV_FALSE 0
56
57/* Compatibility definitions */
58
59#define FIFF_FAIL -1
60#define FIFF_OK 0
61
62
63/*
64 * Quaternion channels for head position monitoring
65 */
66#define FIFFV_QUAT_0 700
67#define FIFFV_QUAT_1 701
68#define FIFFV_QUAT_2 702
69#define FIFFV_QUAT_3 703
70#define FIFFV_QUAT_4 704
71#define FIFFV_QUAT_5 705
72#define FIFFV_QUAT_6 706
73#define FIFFV_HPI_G 707
74#define FIFFV_HPI_ERR 708
75#define FIFFV_HPI_MOV 709
76
77#define FIFFM_QUAT_CH(X) ((X >= FIFFV_QUAT_0) && (X <= FIFFV_HPI_MOV)) /* Check for a quaternion channel */
78
79#define FIFFV_DIPOLE_WAVE_CH 1000 /* Dipole time curve */
80#define FIFFV_GOODNESS_FIT_CH 1001 /* Goodness of fit */
81
82#define FIFFM_CHPOS(x) &((x)->chpos)
83
84/*
85 * Units of measurement
86 */
87#define FIFF_UNIT_NONE -1
88
89/*
90 * SI base units
91 */
92#define FIFF_UNIT_M 1
93#define FIFF_UNIT_KG 2
94#define FIFF_UNIT_SEC 3
95#define FIFF_UNIT_A 4
96#define FIFF_UNIT_K 5
97#define FIFF_UNIT_MOL 6
98
99/*
100 * SI Supplementary units
101 */
102#define FIFF_UNIT_RAD 7
103#define FIFF_UNIT_SR 8
104
105/*
106 * SI base candela
107 */
108#define FIFF_UNIT_CD 9
109
110/*
111 * SI derived units
112 */
113#define FIFF_UNIT_HZ 101
114#define FIFF_UNIT_N 102
115#define FIFF_UNIT_PA 103
116#define FIFF_UNIT_J 104
117#define FIFF_UNIT_W 105
118#define FIFF_UNIT_C 106
119#define FIFF_UNIT_V 107
120#define FIFF_UNIT_F 108
121#define FIFF_UNIT_OHM 109
122#define FIFF_UNIT_MHO 110
123#define FIFF_UNIT_WB 111
124#define FIFF_UNIT_T 112
125#define FIFF_UNIT_H 113
126#define FIFF_UNIT_CEL 114
127#define FIFF_UNIT_LM 115
128#define FIFF_UNIT_LX 116
129
130/*
131 * Others we need
132 */
133#define FIFF_UNIT_T_M 201 /* T/m */
134#define FIFF_UNIT_AM 202 /* Am */
135#define FIFF_UNIT_AM_M2 203 /* Am/m^2 */
136#define FIFF_UNIT_AM_M3 204 /* Am/m^3 */
137
138/*
139 * Multipliers
140 */
141#define FIFF_UNITM_E 18
142#define FIFF_UNITM_PET 15
143#define FIFF_UNITM_T 12
144#define FIFF_UNITM_MEG 6
145#define FIFF_UNITM_K 3
146#define FIFF_UNITM_H 2
147#define FIFF_UNITM_DA 1
148#define FIFF_UNITM_NONE 0
149#define FIFF_UNITM_D -1
150#define FIFF_UNITM_C -2
151#define FIFF_UNITM_M -3
152#define FIFF_UNITM_MU -6
153#define FIFF_UNITM_N -9
154#define FIFF_UNITM_P -12
155#define FIFF_UNITM_F -15
156#define FIFF_UNITM_A -18
157
158/*
159 * Coil types
160 */
161#define FIFFV_COIL_NONE 0
162#define FIFFV_COIL_EEG 1
163#define FIFFV_COIL_NM_122 2
164#define FIFFV_COIL_NM_24 3
165#define FIFFV_COIL_NM_MCG_AXIAL 4
166#define FIFFV_COIL_EEG_BIPOLAR 5
167#define FIFFV_COIL_DIPOLE 200
168#define FIFFV_COIL_MCG_42 1000
169#define FIFFV_COIL_POINT_MAGNETOMETER 2000
170#define FIFFV_COIL_AXIAL_GRAD_5CM 2001
171#define FIFFV_COIL_VV_PLANAR_W 3011
172#define FIFFV_COIL_VV_PLANAR_T1 3012
173#define FIFFV_COIL_VV_PLANAR_T2 3013
174#define FIFFV_COIL_VV_PLANAR_T3 3014
175#define FIFFV_COIL_VV_MAG_W 3021
176#define FIFFV_COIL_VV_MAG_T1 3022
177#define FIFFV_COIL_VV_MAG_T2 3023
178#define FIFFV_COIL_VV_MAG_T3 3024
179#define FIFFV_COIL_MAGNES_MAG 4001
180#define FIFFV_COIL_MAGNES_GRAD 4002
181#define FIFFV_COIL_CTF_GRAD 5001
182#define FIFFV_COIL_CTF_REF_MAG 5002
183#define FIFFV_COIL_CTF_REF_GRAD 5003
184#define FIFFV_COIL_CTF_REF_GOFF 5004
185#define FIFFV_COIL_KIT_GRAD 6001
186#define FIFFV_COIL_KIT_REF_GRAD 6002
187#define FIFFV_COIL_BABY_GRAD 7001
188#define FIFFV_COIL_BABY_MAG 7002
189#define FIFFV_COIL_BABY_REF_MAG 7003
190#define FIFFV_COIL_BABY_REF_MAG2 7004
191#define FIFFV_COIL_ARTEMIS123_GRAD 7501
192#define FIFFV_COIL_ARTEMIS123_REF_MAG 7502
193#define FIFFV_COIL_ARTEMIS123_REF_GRAD 7503
194#define FIFFV_COIL_QUSPIN_ZFOPM_MAG 8001
195#define FIFFV_COIL_KRISS_GRAD 9001
196#define FIFFV_COIL_COMPUMEDICS_ADULT_GRAD 9101
197#define FIFFV_COIL_COMPUMEDICS_PEDIATRIC_GRAD 9102
198
199#define FIFFM_IS_VV_COIL(c) ((c)/1000 == 3)
200
201/*
202 * These are the cardinal points for MCG data
203 * Left and right are supposed to be located below the sternum point
204 */
205#define FIFFV_POINT_CHEST_LEFT 1
206#define FIFFV_POINT_CHEST_STERNUM 2
207#define FIFFV_POINT_CHEST_RIGHT 3
208
209/*
210 * Coordinate transformation descriptor
211 */
212#define FIFFV_COORD_UNKNOWN 0
213#define FIFFV_COORD_DEVICE 1
214#define FIFFV_COORD_ISOTRAK 2
215#define FIFFV_COORD_HPI 3
216#define FIFFV_COORD_HEAD 4
217#define FIFFV_COORD_MRI 5
218#define FIFFV_COORD_MRI_SLICE 6
219#define FIFFV_COORD_MRI_DISPLAY 7
220#define FIFFV_COORD_XRAY FIFF_COORD_MRI
221#define FIFFV_COORD_XRAY_SLICE FIFF_COORD_MRI_SLICE
222#define FIFFV_COORD_CT FIFF_COORD_MRI
223#define FIFFV_COORD_CT_SLICE FIFF_COORD_MRI_SLICE
224
225#define FIFFV_COORD_DICOM_DEVICE 8
226#define FIFFV_COORD_IMAGING_DEVICE 9
227
228#define FIFFV_COORD_TORSO 100
229
230#define FIFFV_MOVE 1
231#define FIFFV_NO_MOVE 0
232
233/*
234 * Artefact removal parameters
235 */
236#define FIFFV_ARTEF_MAX 100
237#define FIFFV_ARTEF_NONE -1
238#define FIFFV_ARTEF_KEEP 0
239#define FIFFV_ARTEF_JUMP 1
240#define FIFFV_ARTEF_NOJUMP 2
241
242/*
243 * The layered sphere model
244 */
245#define FIFFV_LAYER_BRAIN 1
246#define FIFFV_LAYER_CSF 2
247#define FIFFV_LAYER_SKULL 3
248#define FIFFV_LAYER_HEAD 4
249
250#define FIFFV_XFIT_MAP_SURF_SENSORS 0
251#define FIFFV_XFIT_MAP_SURF_HEAD 1
252#define FIFFV_XFIT_MAP_SURF_SPHERE 2
253
254/*
255 * Pointers
256 */
257#define FIFFV_NEXT_SEQ 0
258#define FIFFV_NEXT_NONE -1
259
260/*
261 * Channel types
262 */
263#define FIFFV_MAGN_CH 1
264#define FIFFV_EL_CH 2
265#define FIFFV_MEG_CH FIFFV_MAGN_CH
266#define FIFFV_MCG_CH 201
267#define FIFFV_REF_MEG_CH 301
268#define FIFFV_EEG_CH FIFFV_EL_CH
269#define FIFFV_STIM_CH 3
270
271#define FIFFV_EOG_CH 202
272#define FIFFV_EMG_CH 302
273#define FIFFV_ECG_CH 402
274#define FIFFV_MISC_CH 502
275#define FIFFV_RESP_CH 602
276
277/*
278 * Intracranial EEG channel types
279 */
280#define FIFFV_ECOG_CH 2001
281#define FIFFV_SEEG_CH 2002
282#define FIFFV_DBS_CH 2003
283
284/*
285 * Coil types for intracranial EEG
286 */
287#define FIFFV_COIL_EEG_ECOG 140
288#define FIFFV_COIL_EEG_SEEG 150
289#define FIFFV_COIL_EEG_DBS 160
290
291/*
292 * More of those defined in MNE
293 */
294#define FIFFV_MNE_SURF_UNKNOWN -1
295#define FIFFV_MNE_SURF_LEFT_HEMI 101
296#define FIFFV_MNE_SURF_RIGHT_HEMI 102
297
298/*
299 * These relate to the Isotrak data
300 */
301#define FIFFV_POINT_CARDINAL 1
302#define FIFFV_POINT_HPI 2
303#define FIFFV_POINT_EEG 3
304#define FIFFV_POINT_ECG FIFFV_POINT_EEG
305#define FIFFV_POINT_EXTRA 4
306
307#define FIFFV_POINT_LPA 1
308#define FIFFV_POINT_NASION 2
309#define FIFFV_POINT_RPA 3
310
311/*
312 * These are the MNE fiff definitions
313 */
314#define FIFFB_MNE 350
315#define FIFFB_MNE_SOURCE_SPACE 351
316#define FIFFB_MNE_FORWARD_SOLUTION 352
317#define FIFFB_MNE_PARENT_MRI_FILE 353
318#define FIFFB_MNE_PARENT_MEAS_FILE 354
319#define FIFFB_MNE_COV 355
320#define FIFFB_MNE_INVERSE_SOLUTION 356
321#define FIFFB_MNE_NAMED_MATRIX 357
322#define FIFFB_MNE_ENV 358
323#define FIFFB_MNE_BAD_CHANNELS 359
324#define FIFFB_MNE_VERTEX_MAP 360
325#define FIFFB_MNE_EVENTS 361
326#define FIFFB_MNE_MORPH_MAP 362
327
328/*
329 * CTF compensation data
330 */
331#define FIFFB_MNE_CTF_COMP 370
332#define FIFFB_MNE_CTF_COMP_DATA 371
333
334/*
335 * Fiff tags associated with MNE computations (3500...)
336 * 3500... Bookkeeping
337 */
338#define FIFF_MNE_ROW_NAMES 3502
339#define FIFF_MNE_COL_NAMES 3503
340#define FIFF_MNE_NROW 3504
341#define FIFF_MNE_NCOL 3505
342#define FIFF_MNE_COORD_FRAME 3506
343//FIFFB_MNE_SOURCE_SPACE #define FIFFV_COORD_MRI
344//FIFFB_MNE_FORWARD_SOLUTION FIFFV_COORD_HEAD
345//FIFFB_MNE_INVERSE_SOLUTION FIFFV_COORD_HEAD
346#define FIFF_MNE_CH_NAME_LIST 3507
347#define FIFF_MNE_FILE_NAME 3508
348
349/*
350 * 3510... 3590... Source space or surface
351 */
352#define FIFF_MNE_SOURCE_SPACE_POINTS 3510
353#define FIFF_MNE_SOURCE_SPACE_NORMALS 3511
354#define FIFF_MNE_SOURCE_SPACE_NPOINTS 3512
355#define FIFF_MNE_SOURCE_SPACE_SELECTION 3513
356#define FIFF_MNE_SOURCE_SPACE_NUSE 3514
357#define FIFF_MNE_SOURCE_SPACE_NEAREST 3515
358#define FIFF_MNE_SOURCE_SPACE_NEAREST_DIST 3516
359#define FIFF_MNE_SOURCE_SPACE_ID 3517
360#define FIFF_MNE_SOURCE_SPACE_TYPE 3518
361
362#define FIFF_MNE_SOURCE_SPACE_NTRI 3590
363#define FIFF_MNE_SOURCE_SPACE_TRIANGLES 3591
364#define FIFF_MNE_SOURCE_SPACE_NUSE_TRI 3592
365#define FIFF_MNE_SOURCE_SPACE_USE_TRIANGLES 3593
366
367#define FIFF_MNE_SOURCE_SPACE_VOXEL_DIMS 3596
368#define FIFF_MNE_SOURCE_SPACE_INTERPOLATOR 3597
369#define FIFF_MNE_SOURCE_SPACE_MRI_FILE 3598
370
371#define FIFF_MNE_SOURCE_SPACE_DIST 3599
372#define FIFF_MNE_SOURCE_SPACE_DIST_LIMIT 3600
373
374/*
375 * 3520... Forward solution
376 */
377#define FIFF_MNE_FORWARD_SOLUTION 3520
378#define FIFF_MNE_SOURCE_ORIENTATION 3521
379#define FIFF_MNE_INCLUDED_METHODS 3522
380#define FIFF_MNE_FORWARD_SOLUTION_GRAD 3523
381
382/*
383 * 3530... Covariance matrix
384 */
385#define FIFF_MNE_COV_KIND 3530
386#define FIFF_MNE_COV_DIM 3531
387#define FIFF_MNE_COV 3532
388#define FIFF_MNE_COV_DIAG 3533
389#define FIFF_MNE_COV_EIGENVALUES 3534
390#define FIFF_MNE_COV_EIGENVECTORS 3535
391#define FIFF_MNE_COV_NFREE 3536
392
393/*
394 * 3540... Inverse operator
395 * We store the inverse operator as the eigenleads eigenfields and weights
396 */
397#define FIFF_MNE_INVERSE_LEADS 3540
398#define FIFF_MNE_INVERSE_LEADS_WEIGHTED 3546
399#define FIFF_MNE_INVERSE_FIELDS 3541
400#define FIFF_MNE_INVERSE_SING 3542
401#define FIFF_MNE_PRIORS_USED 3543
402#define FIFF_MNE_INVERSE_FULL 3544
403 // This matrix includes the whitening operator as well
404 // The regularization is applied
405#define FIFF_MNE_INVERSE_SOURCE_ORIENTATIONS 3545
406 // The source orientations must be expressed in the coordinate system
407 // given by FIFF_MNE_COORD_FRAME
408
409/*
410 * 3550... Saved environment info
411 */
412#define FIFF_MNE_ENV_WORKING_DIR 3550
413#define FIFF_MNE_ENV_COMMAND_LINE 3551
414
415/*
416 * 3560... Miscellaneous
417 */
418#define FIFF_MNE_PROJ_ITEM_ACTIVE 3560
419#define FIFF_MNE_EVENT_LIST 3561
420#define FIFF_MNE_HEMI 3562
421
422/*
423 * 3570... Morphing maps
424 */
425#define FIFF_MNE_MORPH_MAP 3570
426#define FIFF_MNE_MORPH_MAP_FROM 3571
427#define FIFF_MNE_MORPH_MAP_TO 3572
428
429/*
430 * 3580... CTF compensation data
431 */
432#define FIFF_MNE_CTF_COMP_KIND 3580
433#define FIFF_MNE_CTF_COMP_DATA 3581
434#define FIFF_MNE_CTF_COMP_CALIBRATED 3582
435
436/*
437 * 3700... Real-Time Communication
438 */
439#define FIFF_MNE_RT_COMMAND 3700
440#define FIFF_MNE_RT_CLIENT_ID 3701
441
442/*
443 * 3710... Real-Time Blocks
444 */
445#define FIFFB_MNE_RT_MEAS_INFO 3710
446
447/*
448 * Fiff values associated with MNE computations
449 */
450#define FIFFV_MNE_FIXED_ORI 1
451#define FIFFV_MNE_FREE_ORI 2
452
453#define FIFFV_MNE_MEG 1
454#define FIFFV_MNE_EEG 2
455#define FIFFV_MNE_MEG_EEG 3
456
457#define FIFFV_MNE_UNKNOWN_COV 0
458#define FIFFV_MNE_SENSOR_COV 1
459#define FIFFV_MNE_NOISE_COV 1
460#define FIFFV_MNE_SOURCE_COV 2
461#define FIFFV_MNE_FMRI_PRIOR_COV 3
462#define FIFFV_MNE_SIGNAL_COV 4
463#define FIFFV_MNE_DEPTH_PRIOR_COV 5
464#define FIFFV_MNE_ORIENT_PRIOR_COV 6
465
466/*
467 * Source space types (values of FIFF_MNE_SOURCE_SPACE_TYPE)
468 */
469#define FIFFV_MNE_SPACE_UNKNOWN -1
470#define FIFFV_MNE_SPACE_SURFACE 1
471#define FIFFV_MNE_SPACE_VOLUME 2
472#define FIFFV_MNE_SPACE_DISCRETE 3
473
474/*
475 * Covariance matrix channel classification
476 */
477#define FIFFV_MNE_COV_CH_UNKNOWN -1
478#define FIFFV_MNE_COV_CH_MEG_MAG 0
479#define FIFFV_MNE_COV_CH_MEG_GRAD 1
480#define FIFFV_MNE_COV_CH_EEG 2
481
482/*
483 * Projection item kinds
484 */
485#define FIFFV_MNE_PROJ_ITEM_EEG_AVREF 10
486
487/*
488 * Additional coordinate frames
489 */
490#define FIFFV_MNE_COORD_TUFTS_EEG 300
491#define FIFFV_MNE_COORD_CTF_DEVICE 1001
492#define FIFFV_MNE_COORD_CTF_HEAD 1004
493#define FIFFV_MNE_COORD_MRI_VOXEL 2001
494#define FIFFV_MNE_COORD_RAS 2002
495#define FIFFV_MNE_COORD_MNI_TAL 2003
496#define FIFFV_MNE_COORD_FS_TAL_GTZ 2004
497#define FIFFV_MNE_COORD_FS_TAL_LTZ 2005
498#define FIFFV_MNE_COORD_FS_TAL 2006
499} // NAMESPACE
500
501#endif // FIFF_CONSTANTS_H
FIFF file I/O and data structures (raw, epochs, evoked, covariance, forward).