MNE-CPP  0.1.9
A Framework for Electrophysiology
mne_inverse_operator.h
1 //=============================================================================================================
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 //=============================================================================================================
61 // DEFINE NAMESPACE FIFFLIB
62 //=============================================================================================================
63 
64 namespace FIFFLIB
65 {
66  class FiffCoordTransOld;
67 }
68 
69 namespace MNELIB
70 {
71  class MneCovMatrix;
72  class MneNamedMatrix;
73  class MneProjOp;
74 }
75 
76 //=============================================================================================================
77 // DEFINE NAMESPACE INVERSELIB
78 //=============================================================================================================
79 
80 namespace INVERSELIB
81 {
82 
83 //=============================================================================================================
84 // FORWARD DECLARATIONS
85 //=============================================================================================================
86 
87 //=============================================================================================================
94 {
95 public:
96  typedef QSharedPointer<MneInverseOperator> SPtr;
97  typedef QSharedPointer<const MneInverseOperator> ConstSPtr;
99  //=========================================================================================================
105 
106  //=========================================================================================================
112 
113 public:
114  FIFFLIB::fiffId meas_id; /* The assosiated measurement ID */
115  MNELIB::MneSourceSpaceOld* *spaces; /* The source spaces */
116  int nspace; /* Number of source spaces */
117  FIFFLIB::FiffCoordTransOld* meg_head_t; /* MEG device <-> head coordinate transformation */
118  FIFFLIB::FiffCoordTransOld* mri_head_t; /* MRI device <-> head coordinate transformation */
119  int methods; /* EEG, MEG or EEG+MEG (see mne_fiff.h) */
120  int nchan; /* Number of measurement channels */
121  int nsource; /* Number of source points */
122  int fixed_ori; /* Fixed source orientations? */
123  float **rr_source; /* The active source points */
124  float **nn_source; /* The source orientations (These are equal to the cortex normals in the fixed orientation case) */
125  int coord_frame; /* Which coordinates are the locations and orientations given in? */
126  MNELIB::MneCovMatrix* sensor_cov; /* Sensor covariance matrix */
127  int nave; /* Number of averaged responses (affects scaling of the noise covariance) */
128  int current_unit; /* This can be FIFF_UNIT_AM, FIFF_UNIT_AM_M2, FIFF_UNIT_AM_M3 */
129  MNELIB::MneCovMatrix* source_cov; /* Source covariance matrix */
130  MNELIB::MneCovMatrix* orient_prior; /* Orientation prior applied */
131  MNELIB::MneCovMatrix* depth_prior; /* Depth-weighting prior applied */
132  MNELIB::MneCovMatrix* fMRI_prior; /* fMRI prior applied */
133  float *sing; /* Singular values of the inverse operator */
134  MNELIB::MneNamedMatrix* eigen_leads; /* The eigen leadfields */
135  int eigen_leads_weighted; /* Have the above been already weighted with R^0.5? */
136  MNELIB::MneNamedMatrix* eigen_fields; /* Associated field patterns */
137  float trace_ratio; /* tr(GRG^T)/tr(C) */
138  MNELIB::MneProjOp* proj; /* The associated projection operator */
139 
140 // ### OLD STRUCT ###
141 //typedef struct { /* An inverse operator */
142 // FIFFLIB::fiffId meas_id; /* The assosiated measurement ID */
143 // INVERSELIB::MneSourceSpaceOld* *spaces; /* The source spaces */
144 // int nspace; /* Number of source spaces */
145 // INVERSELIB::FiffCoordTransOld* meg_head_t; /* MEG device <-> head coordinate transformation */
146 // INVERSELIB::FiffCoordTransOld* mri_head_t; /* MRI device <-> head coordinate transformation */
147 // int methods; /* EEG, MEG or EEG+MEG (see mne_fiff.h) */
148 // int nchan; /* Number of measurement channels */
149 // int nsource; /* Number of source points */
150 // int fixed_ori; /* Fixed source orientations? */
151 // float **rr_source; /* The active source points */
152 // float **nn_source; /* The source orientations (These are equal to the cortex normals in the fixed orientation case) */
153 // int coord_frame; /* Which coordinates are the locations and orientations given in? */
154 // INVERSELIB::MneCovMatrix* sensor_cov; /* Sensor covariance matrix */
155 // int nave; /* Number of averaged responses (affects scaling of the noise covariance) */
156 // int current_unit; /* This can be FIFF_UNIT_AM, FIFF_UNIT_AM_M2, FIFF_UNIT_AM_M3 */
157 // INVERSELIB::MneCovMatrix* source_cov; /* Source covariance matrix */
158 // INVERSELIB::MneCovMatrix* orient_prior; /* Orientation prior applied */
159 // INVERSELIB::MneCovMatrix* depth_prior; /* Depth-weighting prior applied */
160 // INVERSELIB::MneCovMatrix* fMRI_prior; /* fMRI prior applied */
161 // float *sing; /* Singular values of the inverse operator */
162 // INVERSELIB::MneNamedMatrix* eigen_leads; /* The eigen leadfields */
163 // int eigen_leads_weighted; /* Have the above been already weighted with R^0.5? */
164 // INVERSELIB::MneNamedMatrix* eigen_fields; /* Associated field patterns */
165 // float trace_ratio; /* tr(GRG^T)/tr(C) */
166 // INVERSELIB::MneProjOp* proj; /* The associated projection operator */
167 //} *mneInverseOperator,mneInverseOperatorRec;
168 };
169 
170 //=============================================================================================================
171 // INLINE DEFINITIONS
172 //=============================================================================================================
173 } // NAMESPACE INVERSELIB
174 
175 #endif // MNEINVERSEOPERATOR_H
Old fiff_type declarations - replace them.
MNE Surface or Volume (MneSurfaceOrVolume) class declaration.
Covariance matrix storage.
This defines a source space.
Matrix specification with a channel list.
QSharedPointer< MneInverseOperator > SPtr
One linear projection item.
Definition: mne_proj_op.h:83
QSharedPointer< const MneInverseOperator > ConstSPtr
Coordinate transformation descriptor.
ToDo Old implementation use new fiff_id.h instead.
Definition: fiff_types.h:218
#define INVERSESHARED_EXPORT