v2.0.0
Loading...
Searching...
No Matches
mne_inverse_operator.h
Go to the documentation of this file.
1//=============================================================================================================
36
37#ifndef MNEINVERSEOPERATOR_H
38#define MNEINVERSEOPERATOR_H
39
40//=============================================================================================================
41// INCLUDES
42//=============================================================================================================
43
44#include "../inverse_global.h"
45#include <fiff/fiff_types.h>
47
48//=============================================================================================================
49// EIGEN INCLUDES
50//=============================================================================================================
51
52#include <Eigen/Core>
53
54//=============================================================================================================
55// QT INCLUDES
56//=============================================================================================================
57
58#include <QSharedPointer>
59
60#include <memory>
61
62//=============================================================================================================
63// FORWARD DECLARATIONS
64//=============================================================================================================
65
66namespace FIFFLIB { class FiffCoordTrans; }
67
68namespace MNELIB
69{
70 class MNECovMatrix;
71 class MNENamedMatrix;
72 class MNEProjOp;
73}
74
75//=============================================================================================================
76// DEFINE NAMESPACE INVERSELIB
77//=============================================================================================================
78
79namespace INVERSELIB
80{
81
82//=============================================================================================================
83// FORWARD DECLARATIONS
84//=============================================================================================================
85
86//=============================================================================================================
93{
94public:
95 typedef QSharedPointer<MNEInverseOperator> SPtr;
96 typedef QSharedPointer<const MNEInverseOperator> ConstSPtr;
97
98 //=========================================================================================================
104
105 //=========================================================================================================
111
112public:
113 FIFFLIB::fiffId meas_id; /* The assosiated measurement ID */
114 std::vector<std::unique_ptr<MNELIB::MNESourceSpace>> spaces; /* The source spaces */
115 std::unique_ptr<FIFFLIB::FiffCoordTrans> meg_head_t; /* MEG device <-> head coordinate transformation */
116 std::unique_ptr<FIFFLIB::FiffCoordTrans> mri_head_t; /* MRI device <-> head coordinate transformation */
117 int methods; /* EEG, MEG or EEG+MEG (see mne_fiff.h) */
118 int nchan; /* Number of measurement channels */
119 int nsource; /* Number of source points */
120 int fixed_ori; /* Fixed source orientations? */
121 float **rr_source; /* The active source points */
122 float **nn_source; /* The source orientations (These are equal to the cortex normals in the fixed orientation case) */
123 int coord_frame; /* Which coordinates are the locations and orientations given in? */
124 MNELIB::MNECovMatrix* sensor_cov; /* Sensor covariance matrix */
125 int nave; /* Number of averaged responses (affects scaling of the noise covariance) */
126 int current_unit; /* This can be FIFF_UNIT_AM, FIFF_UNIT_AM_M2, FIFF_UNIT_AM_M3 */
127 MNELIB::MNECovMatrix* source_cov; /* Source covariance matrix */
128 MNELIB::MNECovMatrix* orient_prior; /* Orientation prior applied */
129 MNELIB::MNECovMatrix* depth_prior; /* Depth-weighting prior applied */
130 MNELIB::MNECovMatrix* fMRI_prior; /* fMRI prior applied */
131 float *sing; /* Singular values of the inverse operator */
132 MNELIB::MNENamedMatrix* eigen_leads; /* The eigen leadfields */
133 int eigen_leads_weighted; /* Have the above been already weighted with R^0.5? */
134 MNELIB::MNENamedMatrix* eigen_fields; /* Associated field patterns */
135 float trace_ratio; /* tr(GRG^T)/tr(C) */
136 MNELIB::MNEProjOp* proj; /* The associated projection operator */
137
138// ### OLD STRUCT ###
139//typedef struct { /* An inverse operator */
140// FIFFLIB::fiffId meas_id; /* The assosiated measurement ID */
141// INVERSELIB::MNESourceSpace* *spaces; /* The source spaces */
142// int nspace; /* Number of source spaces */
143// INVERSELIB::FiffCoordTransOld* meg_head_t; /* MEG device <-> head coordinate transformation */
144// INVERSELIB::FiffCoordTransOld* mri_head_t; /* MRI device <-> head coordinate transformation */
145// int methods; /* EEG, MEG or EEG+MEG (see mne_fiff.h) */
146// int nchan; /* Number of measurement channels */
147// int nsource; /* Number of source points */
148// int fixed_ori; /* Fixed source orientations? */
149// float **rr_source; /* The active source points */
150// float **nn_source; /* The source orientations (These are equal to the cortex normals in the fixed orientation case) */
151// int coord_frame; /* Which coordinates are the locations and orientations given in? */
152// INVERSELIB::MNECovMatrix* sensor_cov; /* Sensor covariance matrix */
153// int nave; /* Number of averaged responses (affects scaling of the noise covariance) */
154// int current_unit; /* This can be FIFF_UNIT_AM, FIFF_UNIT_AM_M2, FIFF_UNIT_AM_M3 */
155// INVERSELIB::MNECovMatrix* source_cov; /* Source covariance matrix */
156// INVERSELIB::MNECovMatrix* orient_prior; /* Orientation prior applied */
157// INVERSELIB::MNECovMatrix* depth_prior; /* Depth-weighting prior applied */
158// INVERSELIB::MNECovMatrix* fMRI_prior; /* fMRI prior applied */
159// float *sing; /* Singular values of the inverse operator */
160// INVERSELIB::MNENamedMatrix* eigen_leads; /* The eigen leadfields */
161// int eigen_leads_weighted; /* Have the above been already weighted with R^0.5? */
162// INVERSELIB::MNENamedMatrix* eigen_fields; /* Associated field patterns */
163// float trace_ratio; /* tr(GRG^T)/tr(C) */
164// INVERSELIB::MNEProjOp* proj; /* The associated projection operator */
165//} *mneInverseOperator,mneInverseOperatorRec;
166};
167
168//=============================================================================================================
169// INLINE DEFINITIONS
170//=============================================================================================================
171} // NAMESPACE INVERSELIB
172
173#endif // MNEINVERSEOPERATOR_H
Old fiff_type declarations - replace them.
MNE Surface or Volume (MNESurfaceOrVolume) class declaration.
inverse library export/import macros.
#define INVERSESHARED_EXPORT
Core MNE data structures (source spaces, source estimates, hemispheres).
FIFF file I/O and data structures (raw, epochs, evoked, covariance, forward).
FiffId * fiffId
Backward-compatible pointer typedef for the old fiffId pointer.
Definition fiff_types.h:130
Inverse source estimation (MNE, dSPM, sLORETA, dipole fitting).
Coordinate transformation description.
std::unique_ptr< FIFFLIB::FiffCoordTrans > meg_head_t
QSharedPointer< MNEInverseOperator > SPtr
MNELIB::MNENamedMatrix * eigen_leads
std::vector< std::unique_ptr< MNELIB::MNESourceSpace > > spaces
MNELIB::MNENamedMatrix * eigen_fields
QSharedPointer< const MNEInverseOperator > ConstSPtr
std::unique_ptr< FIFFLIB::FiffCoordTrans > mri_head_t
Covariance matrix storage.
A dense matrix with named rows and columns.
Projection operator managing a set of linear projection items and the final compiled projector matrix...
Definition mne_proj_op.h:83