JEMRIS 2.9.1
open-source MRI simulations
Loading...
Searching...
No Matches
Coil.h
Go to the documentation of this file.
1
5/*
6 * JEMRIS Copyright (C)
7 * 2006-2023 Tony Stoecker
8 * 2007-2018 Kaveh Vahedipour
9 * 2009-2019 Daniel Pflugfelder
10 *
11 *
12 * This program is free software; you can redistribute it and/or modify
13 * it under the terms of the GNU General Public License as published by
14 * the Free Software Foundation; either version 2 of the License, or
15 * (at your option) any later version.
16 *
17 * This program is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details.
21 *
22 * You should have received a copy of the GNU General Public License
23 * along with this program; if not, write to the Free Software
24 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
25 */
26
27#ifndef COIL_H_
28#define COIL_H_
29
30#include "Prototype.h"
31#include "Signal.h"
32#include "Declarations.h"
33#include "NDData.h"
34
39class Coil : public Prototype {
40
41 public:
42
46 virtual ~Coil ();
47
53 double GetSensitivity (const double time=0) ;
54
60 double GetPhase (const double time=0) ;
61
67 double InterpolateSensitivity (const double* position, bool magnitude=true);
68
77 virtual double GetSensitivity (const double* position) = 0;
78
90 virtual double GetPhase (const double* position) {return 0.0;};
91
97 void InitSignal (long lADCs);
98
104 void Receive (long lADC);
105
109 void Transmit ();
110
116 Signal* GetSignal () { return m_signal; }
117
121 Coil* Clone() const = 0;
122
126 void GridMap ();
127
133 double* MagnitudeMap ();
134
140 double* PhaseMap ();
141
147 virtual bool Prepare (const PrepareMode mode);
148
158 void Initialize (DOMNode* node );
159
160 int GetPoints ();
161
162 int GetExtent ();
163
164 unsigned GetNDim ();
165
166 double GetNorm (){return m_norm;};
167
168 protected:
169
173 Coil() {};
174
175 double m_position[3];
177 unsigned m_mode;
178 double m_azimuth;
179 double m_polar;
180 double m_scale;
181 double m_norm;
182 double m_phase;
186 unsigned m_dim;
187 double m_extent;
190 NDData<double> m_sensmag;
191 NDData<double> m_senspha;
192
193 double Unwrap(double diff,bool magnitude);
195};
196
197#endif /*COIL_H_*/
Implementation of JEMRIS Declarations.
mode
Definition: Declarations.h:112
Implementation of JEMRIS Prototype.
Implementation of JEMRIS Signal.
Base class of coil objects.
Definition: Coil.h:39
void Receive(long lADC)
Receive signal from World.
Definition: Coil.cpp:64
Coil()
Definition: Coil.h:173
double * MagnitudeMap()
Map magnitudes.
Definition: Coil.cpp:120
double * PhaseMap()
Map phases.
Definition: Coil.cpp:116
double m_phase
Definition: Coil.h:182
Signal * m_signal
Definition: Coil.h:176
virtual ~Coil()
Destructor.
Definition: Coil.cpp:32
Coil * Clone() const =0
Signal * GetSignal()
Get the received signal of this coil.
Definition: Coil.h:116
double GetPhase(const double time=0)
Get the B1+ phase at point (x,y,z) of the current spin.
Definition: Coil.cpp:138
double m_position[3]
Definition: Coil.h:175
virtual bool Prepare(const PrepareMode mode)
Prepare coil with given attributes.
Definition: Coil.cpp:244
bool m_complex
Definition: Coil.h:184
int m_points
Definition: Coil.h:188
double InterpolateSensitivity(const double *position, bool magnitude=true)
Interpolate the sensitivity at point (x,y,z)
Definition: Coil.cpp:189
double m_extent
Definition: Coil.h:187
void Initialize(DOMNode *node)
Initialize this prototype.
Definition: Coil.cpp:39
double Unwrap(double diff, bool magnitude)
Definition: Coil.cpp:234
double m_norm
Definition: Coil.h:181
double m_polar
Definition: Coil.h:179
void GridMap()
Dump sensitivity map on the XML defined grid.
Definition: Coil.cpp:88
virtual double GetSensitivity(const double *position)=0
Get the B1+ magnitude at point (x,y,z)
void InitSignal(long lADCs)
Initialize my signal repository.
Definition: Coil.cpp:54
unsigned m_dim
Definition: Coil.h:186
double GetSensitivity(const double time=0)
Get the B1+ magnitude at point (x,y,z) of the current spin.
Definition: Coil.cpp:163
virtual double GetPhase(const double *position)
Get the B1+ phase at point (x,y,z)
Definition: Coil.h:90
bool m_interpolate
Definition: Coil.h:183
unsigned m_mode
Definition: Coil.h:177
double m_azimuth
Definition: Coil.h:178
double m_scale
Definition: Coil.h:180
bool m_conjugate
Definition: Coil.h:185
void Transmit()
Transmit signal.
Simple nd-data structure.
Definition: NDData.h:53
Prototype super class.
Definition: Prototype.h:71
The signal store and IO.
Definition: Signal.h:249

-- last change 03.10.2023 | Tony Stoecker | Imprint | Data Protection --