ODIN
|
Advandced RF pulses. More...
#include <odinpulse.h>
Public Member Functions | |
OdinPulse (const STD_string &pulse_label="unnamedOdinPulse", bool interactive=false) | |
OdinPulse (const OdinPulse &pulse) | |
OdinPulse & | operator= (const OdinPulse &pulse) |
OdinPulse & | set_dim_mode (funcMode dmode) |
funcMode | get_dim_mode () const |
unsigned int | get_size () const |
OdinPulse & | resize (unsigned int newsize) |
OdinPulse & | set_Tp (double duration) |
double | get_Tp () const |
OdinPulse & | set_consider_system_cond (bool flag) |
bool | get_consider_system_cond () const |
OdinPulse & | set_consider_Nyquist_cond (bool flag) |
bool | get_consider_Nyquist_cond () const |
OdinPulse & | set_spat_resolution (double sigma) |
OdinPulse & | use_min_spat_resolution (bool flag) |
double | get_spat_resolution () const |
OdinPulse & | set_field_of_excitation (double fox) |
double | get_field_of_excitation () const |
OdinPulse & | set_spatial_offset (direction direction, double offset) |
double | get_spatial_offset (direction direction) const |
OdinPulse & | set_nucleus (const STD_string &nucleusname) |
STD_string | get_nucleus () const |
OdinPulse & | set_pulse_type (pulseType type) |
pulseType | get_pulse_type () const |
OdinPulse & | set_composite_pulse (const STD_string &cpstring) |
farray | get_composite_pulse_parameters () const |
bool | is_composite_pulse () const |
unsigned int | get_numof_composite_pulse () const |
bool | is_adiabatic () const |
float | get_rel_center () const |
double | get_pulse_gain () const |
float | get_flipangle_corr_factor () const |
OdinPulse & | set_flipangle (double angle) |
double | get_flipangle () const |
OdinPulse & | generate () |
OdinPulse & | set_pulse_gain () |
virtual OdinPulse & | update () |
float | get_power_depos () const |
OdinPulse & | set_shape (const STD_string &shapeval) |
OdinPulse & | set_trajectory (const STD_string &shapeval) |
OdinPulse & | set_filter (const STD_string &shapeval) |
OdinPulse & | set_shape_parameter (const STD_string ¶meter_label, const STD_string &value) |
OdinPulse & | set_trajectory_parameter (const STD_string ¶meter_label, const STD_string &value) |
OdinPulse & | set_filter_parameter (const STD_string ¶meter_label, const STD_string &value) |
STD_string | get_shape_parameter (const STD_string ¶meter_label) const |
STD_string | get_trajectory_parameter (const STD_string ¶meter_label) const |
STD_string | get_filter_parameter (const STD_string ¶meter_label) const |
STD_string | get_shape () const |
STD_string | get_trajectory () const |
STD_string | get_filter () const |
const fvector & | get_Grad (direction channel) const |
double | get_G0 () const |
const cvector & | get_B1 () const |
double | get_B10 () const |
void | simulate_pulse (SeqSimAbstract &sim, const Sample &sample) const |
int | write_rf_waveform (const STD_string &filename) const |
int | load_rf_waveform (const STD_string &filename) |
int | load (const STD_string &filename, const LDRserBase &serializer=LDRserJDX()) |
Public Member Functions inherited from LDRblock | |
LDRblock (const STD_string &title="Parameter List") | |
LDRblock (const LDRblock &block) | |
~LDRblock () | |
LDRblock & | operator= (const LDRblock &block) |
LDRblock & | merge (LDRblock &block, bool onlyUserPars=true) |
LDRblock & | unmerge (LDRblock &block) |
STD_string | printval (const STD_string ¶meterName, bool append_unit=false) const |
bool | parseval (const STD_string ¶meterName, const STD_string &value) |
int | parseblock (const STD_string &source, const LDRserBase &serializer=LDRserJDX()) |
unsigned int | numof_pars () const |
LDRbase * | get_parameter (const STD_string &ldrlabel) |
bool | parameter_exists (const STD_string &ldrlabel) const |
LDRblock & | set_prefix (const STD_string &prefix) |
LDRblock & | set_embedded (bool embedded) |
bool | is_embedded () const |
LDRbase & | operator[] (unsigned int i) |
const LDRbase & | operator[] (unsigned int i) const |
LDRbase & | get_parameter_by_id (int id) |
LDRblock & | create_copy (const LDRblock &src) |
LDRblock & | append_copy (const LDRbase &src) |
LDRblock & | copy_ldr_vals (const LDRblock &src) |
bool | operator== (const LDRblock &rhs) const |
bool | operator< (const LDRblock &rhs) const |
bool | compare (const LDRblock &rhs, const STD_list< STD_string > *exclude=0, double accuracy=0.0) const |
STD_string | print (const LDRserBase &serializer=LDRserJDX()) const |
LDRbase & | set_parmode (parameterMode parameter_mode) |
LDRbase & | set_filemode (fileMode file_mode) |
STD_string | get_parx_code (parxCodeType type) const |
STD_ostream & | print2stream (STD_ostream &os, const LDRserBase &serializer) const |
bool | parsevalstring (const STD_string &, const LDRserBase *ser=0) |
bool | parse (STD_string &parstring, const LDRserBase &serializer) |
STD_string | printvalstring (const LDRserBase *ser=0) const |
LDRbase * | create_copy () const |
STD_string | get_typeInfo (bool parx_equivtype=false) const |
int | write (const STD_string &filename, const LDRserBase &serializer=LDRserJDX()) const |
Public Member Functions inherited from LDRbase | |
virtual double | get_minval () const |
virtual double | get_maxval () const |
bool | has_minmax () const |
const STD_string & | get_description () const |
LDRbase & | set_description (const STD_string &descr) |
virtual svector | get_alternatives () const |
const STD_string & | get_unit () const |
LDRbase & | set_unit (const STD_string &un) |
virtual parameterMode | get_parmode () const |
virtual fileMode | get_filemode () const |
virtual GuiProps | get_gui_props () const |
virtual LDRbase & | set_gui_props (const GuiProps &) |
JcampDxProps | get_jdx_props () const |
LDRbase & | set_jdx_props (const JcampDxProps &jp) |
Public Member Functions inherited from Labeled | |
Labeled (const STD_string &label="unnamed") | |
Labeled & | set_label (const STD_string &label) |
const STD_string & | get_label () const |
Labeled & | operator= (const Labeled &l) |
Public Member Functions inherited from List< I, P, R > | |
List () | |
~List () | |
List & | operator= (const List &l) |
List & | clear () |
List & | append (R item) |
List & | remove (R item) |
unsigned int | size () const |
iter | get_begin () |
iter | get_end () |
constiter | get_const_begin () const |
constiter | get_const_end () const |
Public Member Functions inherited from SeqClass | |
SeqClass & | set_temporary () |
Additional Inherited Members | |
Public Types inherited from List< I, P, R > | |
typedef STD_list< P >::iterator | iter |
typedef STD_list< P >::const_iterator | constiter |
Protected Member Functions inherited from LDRblock | |
LDRblock & | append_member (LDRbase &ldr, const STD_string ldrlabel="") |
Protected Member Functions inherited from SeqClass | |
void | marshall_error () const |
virtual void | clear_container () |
virtual bool | prep () |
Static Protected Member Functions inherited from SeqClass | |
static void | clear_temporary () |
static void | clear_containers () |
Advandced RF pulses.
This class represents an advanced RF pulse. The RF and gradient shape will be calculated according to a set of given parameters.
Definition at line 122 of file odinpulse.h.
OdinPulse::OdinPulse | ( | const STD_string & | pulse_label = "unnamedOdinPulse" , |
bool | interactive = false |
||
) |
Constructs an OdinPulse with the given label. If 'interactive' is set to 'true', the RF, gradient shape and pulse_gain will be recalculted each time a parameter has been changed
OdinPulse& OdinPulse::generate | ( | ) |
Generates the pulse
const cvector& OdinPulse::get_B1 | ( | ) | const |
Returns the complex RF waveform
double OdinPulse::get_B10 | ( | ) | const |
Returns the scaling factor for the RF channels
farray OdinPulse::get_composite_pulse_parameters | ( | ) | const |
Returns a 2dim array with the first index indicating the pulse in the composite pulse train and the second index selects the flipangle(=0) or pulse phase(=1) of the sub-pulse.
bool OdinPulse::get_consider_Nyquist_cond | ( | ) | const |
Returns whether to consider Nyquist-theorem while sampling along the k-space trajectory.
bool OdinPulse::get_consider_system_cond | ( | ) | const |
Returns whether to consider maximum gradient strength and slew-rate while calculating the trajectory.
funcMode OdinPulse::get_dim_mode | ( | ) | const |
Returns the pulse mode (dimensionality) of the pulse
double OdinPulse::get_field_of_excitation | ( | ) | const |
Returns the field of excitation
STD_string OdinPulse::get_filter | ( | ) | const |
Returns the label of the current pulse filter
STD_string OdinPulse::get_filter_parameter | ( | const STD_string & | parameter_label | ) | const |
Returns the value of the pulse filter parameter which has the given label
double OdinPulse::get_flipangle | ( | ) | const |
Returns the flip angle
float OdinPulse::get_flipangle_corr_factor | ( | ) | const |
Returns the correction factor for the IDEA flipangle
double OdinPulse::get_G0 | ( | ) | const |
Returns the scaling factor for the gradient channels
Returns the gradient waveform for the specified channel
STD_string OdinPulse::get_nucleus | ( | ) | const |
Returns the nucleus for the pulse
unsigned int OdinPulse::get_numof_composite_pulse | ( | ) | const |
Returns the number of composite pulses
float OdinPulse::get_power_depos | ( | ) | const |
Calculates the power deposition of the pulse
double OdinPulse::get_pulse_gain | ( | ) | const |
Returns the pulse gain
pulseType OdinPulse::get_pulse_type | ( | ) | const |
Returns the type of the pulse
float OdinPulse::get_rel_center | ( | ) | const |
Returns the relative center of the pulse, i.e. the point where the center of k-space is passed. The value will be in the range in the range [0,1].
STD_string OdinPulse::get_shape | ( | ) | const |
Returns the label of the current pulse shape
STD_string OdinPulse::get_shape_parameter | ( | const STD_string & | parameter_label | ) | const |
Returns the value of the pulse shape parameter which has the given label
unsigned int OdinPulse::get_size | ( | ) | const |
Returns the number of data points
double OdinPulse::get_spat_resolution | ( | ) | const |
Returns the spatial resolution
double OdinPulse::get_spatial_offset | ( | direction | direction | ) | const |
Returns the spatial offset in the given direction
double OdinPulse::get_Tp | ( | ) | const |
Returns the duration of the pulse
STD_string OdinPulse::get_trajectory | ( | ) | const |
Returns the label of the current pulse trajectory
STD_string OdinPulse::get_trajectory_parameter | ( | const STD_string & | parameter_label | ) | const |
Returns the value of the pulse trajectory parameter which has the given label
bool OdinPulse::is_adiabatic | ( | ) | const |
Returns whether the pulse shape is adiabatic
bool OdinPulse::is_composite_pulse | ( | ) | const |
Returns 'true' if the pulse is a composite pulse
|
virtual |
Loads the parameter(s) from a file using format 'serializer'. In case of calling this function of a single paramter, the file is searched for this parameter and the value is assigned. In case of a parameter block, all parameter values are taken from the file. The return value is the number of parameters which are successfully parsed. If an error occurs, -1 is returned.
Reimplemented from LDRblock.
int OdinPulse::load_rf_waveform | ( | const STD_string & | filename | ) |
This function loads the RF waveform from file in the native (binary) format of the current platform
This assignment operator will make this OdinPulse become an exact copy of 'pulse'.
OdinPulse& OdinPulse::resize | ( | unsigned int | newsize | ) |
specifies number of data points
OdinPulse& OdinPulse::set_composite_pulse | ( | const STD_string & | cpstring | ) |
Specifies the composite pulse to use. A composite pulse can be specified by a string of the form a1(x2) a2(x2) ... where a1,a2,... are the flipangles in degree and x1,x2,... are the axes, .e.g. X,-X,Y or -Y.
OdinPulse& OdinPulse::set_consider_Nyquist_cond | ( | bool | flag | ) |
Specifies whether to consider Nyquist-theorem while sampling along the k-space trajectory.
OdinPulse& OdinPulse::set_consider_system_cond | ( | bool | flag | ) |
Specifies whether to consider maximum gradient strength and slew-rate while calculating the trajectory.
Sets the pulse mode (dimensionality) of the pulse
OdinPulse& OdinPulse::set_field_of_excitation | ( | double | fox | ) |
Sets the field of excitation, i.e. the spatial area where no aliasing occurs
OdinPulse& OdinPulse::set_filter | ( | const STD_string & | shapeval | ) |
Specifies the pulse filter and its parameters by a string where the first element is the function name followed by the parameters in braces separated by commas
OdinPulse& OdinPulse::set_filter_parameter | ( | const STD_string & | parameter_label, |
const STD_string & | value | ||
) |
Sets the value of the pulse filter parameter which has the label 'parameter_label' to 'value'
OdinPulse& OdinPulse::set_flipangle | ( | double | angle | ) |
Sets the flip angle
OdinPulse& OdinPulse::set_nucleus | ( | const STD_string & | nucleusname | ) |
Sets the nucleus for the pulse
OdinPulse& OdinPulse::set_pulse_gain | ( | ) |
Calculates the pulse gain in comparison to a 90deg 1ms block-shaped pulse
Sets the type of the pulse, this is necessary for calculating the pulse gain of adiabatic pulses and optimization of pulses.
OdinPulse& OdinPulse::set_shape | ( | const STD_string & | shapeval | ) |
Specifies the pulse shape and its parameters by a string where the first element is the function name followed by the parameters in braces separated by commas
OdinPulse& OdinPulse::set_shape_parameter | ( | const STD_string & | parameter_label, |
const STD_string & | value | ||
) |
Sets the value of the pulse shape parameter which has the label 'parameter_label' to 'value'
OdinPulse& OdinPulse::set_spat_resolution | ( | double | sigma | ) |
Sets the spatial resolution if the pulse is calculated according to the small tip angle approximation, otherwise this has no effect.
Sets the spatial offset in the given direction
OdinPulse& OdinPulse::set_Tp | ( | double | duration | ) |
Sets the duration of the pulse
OdinPulse& OdinPulse::set_trajectory | ( | const STD_string & | shapeval | ) |
Specifies the pulse trajectory and its parameters by a string where the first element is the function name followed by the parameters in braces separated by commas
OdinPulse& OdinPulse::set_trajectory_parameter | ( | const STD_string & | parameter_label, |
const STD_string & | value | ||
) |
Sets the value of the pulse trajectory parameter which has the label 'parameter_label' to 'value'
void OdinPulse::simulate_pulse | ( | SeqSimAbstract & | sim, |
const Sample & | sample | ||
) | const |
Simulates the effect of the pulse using simulator 'sim' using virtual sample 'sample'.
|
virtual |
Update all relations and recalculate pulse
OdinPulse& OdinPulse::use_min_spat_resolution | ( | bool | flag | ) |
Sets whether minimum spatial resolution is used.
int OdinPulse::write_rf_waveform | ( | const STD_string & | filename | ) | const |
This function writes the RF waveform to file in the native (binary) format of the current platform