JEMRIS  2.8.1
open-source MRI simulations
RFPulse.h
Go to the documentation of this file.
1 
5 /*
6  * JEMRIS Copyright (C)
7  * 2006-2015 Tony Stoecker
8  * 2007-2015 Kaveh Vahedipour
9  * 2009-2015 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 
36 class RFPulse : public Pulse, public TxRxPhase {
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;
60  m_symmetry = rfp.m_symmetry;
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 
176  double m_flip_angle;
177  double m_bw;
178  int m_channel;
180  double m_symmetry;
182  // Provides sensitivies in GetValue
185  vector<double (*)(Module*, double)> m_GetPhaseFunPtrs;
187 };
188 
189 #endif
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
Implementation of JEMRIS TxRxase.h.
virtual ~RFPulse()
Default destructor.
Definition: RFPulse.h:48
virtual bool Prepare(const PrepareMode mode)
see Module::Prepare()
Definition: RFPulse.cpp:41
RFPulse()
Contructor.
Definition: RFPulse.cpp:32
virtual double GetIntegralNumeric(int steps)
Get the B1 integral of this pulse.
Definition: RFPulse.cpp:196
void insertGetPhaseFunction(double(*FGetPhase)(Module *, double))
Add another phase function for this RF pulse.
Definition: RFPulse.cpp:74
Implementation of JEMRIS Pulse.
RFPulse(const RFPulse &rfp)
Default copy constructor.
Definition: RFPulse.h:53
virtual void GenerateEvents(std::vector< Event * > &events)
Definition: RFPulse.cpp:89
CoilArray * m_coil_array
Transmit array in simulation.
Definition: RFPulse.h:183
Coil configuration and sensitivities.
Definition: CoilArray.h:40
virtual void GetValue(double *dAllVal, double const time)
see Module::GetValue()
Definition: RFPulse.cpp:155
Pulse Super Class. ABC for all RF and gradient pulses.
Definition: Pulse.h:41
Implementation of JEMRIS CoilArray.
virtual double GetMagnitude(const double time)
Returns the Magnitidue of this pulse at a given time.
Definition: RFPulse.h:121
Module super class! ABC for all Objects in the sequence framework.
Definition: Module.h:41
mode
Definition: Declarations.h:112
double m_symmetry
KSpace symmetry.
Definition: RFPulse.h:180
double m_flip_angle
Flipangle of this pulse.
Definition: RFPulse.h:176
void SetFlipAngle(const double fa)
Set the flip angle of this RF pulse.
Definition: RFPulse.h:93
Phase physics super class.
Definition: TxRxPhase.h:36
bool m_refocusing
Refocussing pulse?
Definition: RFPulse.h:179
int GetChannel() const
Get the CoilArray channel of this pulse.
Definition: RFPulse.h:100
Super class for all RF pulses.
Definition: RFPulse.h:36
double GetFlipAngle() const
Get the flip angle of this pulse.
Definition: RFPulse.h:86
virtual string GetInfo()
Get informations on this Pulse.
Definition: RFPulse.cpp:209
void SetCoilArray(CoilArray *pCA)
Set the CoilArray for this RF pulse.
Definition: RFPulse.h:148
double m_bw
Bandwidth of this pulse.
Definition: RFPulse.h:177
int m_channel
Transmit channel of this pulse.
Definition: RFPulse.h:178
CoilArray * GetCoilArray()
Get the CoilArray for this RF pulse.
Definition: RFPulse.h:155
double GetBandWidth()
Get the band width of this pulse.
Definition: RFPulse.h:128
virtual void SetTPOIs()
Definition: RFPulse.cpp:83

-- last change 17.06.2016 | Tony Stoecker | Imprint --