JEMRIS 2.9.1
open-source MRI simulations
Loading...
Searching...
No Matches
RFPulse.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 _RFPULSE_H_
28#define _RFPULSE_H_
29
30#include "Pulse.h"
31#include "TxRxPhase.h"
32#include "CoilArray.h"
33
35
36class RFPulse : public Pulse {
37
38 public:
39
43 RFPulse ();
44
48 virtual ~RFPulse () {};
49
53 RFPulse (const RFPulse& rfp) {
55 m_bw = rfp.m_bw;
56 m_channel = rfp.m_channel;
61 }
62
66 virtual void GetValue (double * dAllVal, double const time) ;
67
71 virtual bool Prepare (const PrepareMode mode);
72
79 virtual double GetIntegralNumeric (int steps);
80
86 inline double GetFlipAngle () const {return m_flip_angle;};
87
93 inline void SetFlipAngle (const double fa) {m_flip_angle = fa; };
94
100 inline int GetChannel () const {return m_channel;};
101
107 inline void SetChannel (int ch) {m_channel = ch; };
108
121 virtual double GetMagnitude (const double time ) { return 0.0 ; } ;
122
128 inline double GetBandWidth () {return m_bw;};
129
141 void insertGetPhaseFunction (double (*FGetPhase)(Module*, double));
142
148 inline void SetCoilArray (CoilArray* pCA) {m_coil_array = pCA;};
149
156
160 virtual void SetTPOIs ();
161
165 virtual void GenerateEvents(std::vector<Event*> &events);
166
167 protected:
168
174 virtual string GetInfo ();
175
177 double m_bw;
180 double m_symmetry;
182 // Provides sensitivies in GetValue
185 vector<double (*)(Module*, double)> m_GetPhaseFunPtrs;
187};
188
189#endif
Implementation of JEMRIS CoilArray.
mode
Definition: Declarations.h:112
Implementation of JEMRIS Pulse.
Implementation of JEMRIS TxRxase.h.
Coil configuration and sensitivities.
Definition: CoilArray.h:40
Module super class! ABC for all Objects in the sequence framework.
Definition: Module.h:41
Pulse Super Class. ABC for all RF and gradient pulses.
Definition: Pulse.h:41
Super class for all RF pulses.
Definition: RFPulse.h:36
bool m_refocusing
Refocussing pulse?
Definition: RFPulse.h:179
RFPulse(const RFPulse &rfp)
Default copy constructor.
Definition: RFPulse.h:53
CoilArray * GetCoilArray()
Get the CoilArray for this RF pulse.
Definition: RFPulse.h:155
virtual string GetInfo()
Get informations on this Pulse.
Definition: RFPulse.cpp:212
virtual bool Prepare(const PrepareMode mode)
see Module::Prepare()
Definition: RFPulse.cpp:41
void SetCoilArray(CoilArray *pCA)
Set the CoilArray for this RF pulse.
Definition: RFPulse.h:148
virtual double GetMagnitude(const double time)
Returns the Magnitidue of this pulse at a given time.
Definition: RFPulse.h:121
virtual void GetValue(double *dAllVal, double const time)
see Module::GetValue()
Definition: RFPulse.cpp:158
double m_symmetry
KSpace symmetry.
Definition: RFPulse.h:180
vector< double(*)(Module *, double)> m_GetPhaseFunPtrs
GetPhase functions, adding additional Transmit phase terms.
Definition: RFPulse.h:185
void SetChannel(int ch)
Set the CoilArray channel of this RF pulse.
Definition: RFPulse.h:107
double m_bw
Bandwidth of this pulse
Definition: RFPulse.h:177
double GetBandWidth()
Get the band width of this pulse.
Definition: RFPulse.h:128
double m_flip_angle
Flipangle of this pulse
Definition: RFPulse.h:176
CoilArray * m_coil_array
Transmit array in simulation
Definition: RFPulse.h:183
double GetFlipAngle() const
Get the flip angle of this pulse.
Definition: RFPulse.h:86
virtual void SetTPOIs()
Definition: RFPulse.cpp:82
void SetFlipAngle(const double fa)
Set the flip angle of this RF pulse.
Definition: RFPulse.h:93
void insertGetPhaseFunction(double(*FGetPhase)(Module *, double))
Add another phase function for this RF pulse.
Definition: RFPulse.cpp:72
int GetChannel() const
Get the CoilArray channel of this pulse.
Definition: RFPulse.h:100
int m_channel
Transmit channel of this pulse.
Definition: RFPulse.h:178
virtual ~RFPulse()
Default destructor.
Definition: RFPulse.h:48
virtual void GenerateEvents(std::vector< Event * > &events)
Definition: RFPulse.cpp:89
virtual double GetIntegralNumeric(int steps)
Get the B1 integral of this pulse.
Definition: RFPulse.cpp:199
RFPulse()
Contructor.
Definition: RFPulse.cpp:32

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