ODIN
Public Member Functions | List of all members

Diffusion Weighting. More...

#include <seqdiffweight.h>

Inheritance diagram for SeqDiffWeight:
Inheritance graph
[legend]

Public Member Functions

 SeqDiffWeight (const STD_string &object_label, const fvector &bvals, float maxgradstrength, const SeqObjBase &midpart, direction chan, bool stejskalTanner=false, const STD_string &nucleus="")
 
 SeqDiffWeight (const STD_string &object_label, unsigned int ndir, const fvector &bvals, float maxgradstrength, const SeqObjBase &midpart, unsigned int baseline_rep=0, bool stejskalTanner=false, const STD_string &nucleus="")
 
 SeqDiffWeight (const STD_string &object_label="unnamedSeqDiffWeight")
 
 SeqDiffWeight (const SeqDiffWeight &sgdw)
 
SeqDiffWeightoperator= (const SeqDiffWeight &sgdw)
 
const SeqGradInterfaceget_grad1 () const
 
const SeqGradInterfaceget_grad2 () const
 
double get_grad1_duration () const
 
double get_grad2_duration () const
 
double get_midpart_duration () const
 
const darrayget_b_vectors () const
 
SeqGradInterfaceset_strength (float gradstrength)
 
SeqGradInterfaceinvert_strength ()
 
float get_strength () const
 
fvector get_gradintegral () const
 
double get_gradduration () const
 
SeqGradInterfaceset_gradrotmatrix (const RotMatrix &matrix)
 
void clear_container ()
 
bool is_qualvector () const
 
- Public Member Functions inherited from SeqObjList
 SeqObjList (const STD_string &object_label="unnamedSeqObjList")
 
 SeqObjList (const SeqObjList &so)
 
SeqObjListoperator= (const SeqObjList &so)
 
SeqObjListoperator= (const SeqObjLoop &sl)
 
SeqObjListoperator= (const SeqDecoupling &sd)
 
SeqObjListoperator= (const SeqObjBase &soa)
 
SeqObjListoperator= (SeqGradObjInterface &sgoa)
 
SeqObjListoperator= (SeqGradChan &sgc)
 
SeqObjListoperator= (SeqGradChanList &sgcl)
 
SeqObjListoperator+= (const SeqObjBase &soa)
 
SeqObjListoperator+= (SeqGradObjInterface &sgoa)
 
SeqObjListoperator+= (SeqGradChan &sgc)
 
SeqObjListoperator+= (SeqGradChanList &sgcl)
 
SeqObjListset_gradrotmatrixvector (const SeqRotMatrixVector &matrixVec)
 
STD_string get_program (programContext &context) const
 
unsigned int event (eventContext &context) const
 
double get_duration () const
 
STD_string get_properties () const
 
void query (queryContext &context) const
 
RecoValList get_recovallist (unsigned int reptimes, LDRkSpaceCoords &coords) const
 
SeqValList get_freqvallist (freqlistAction action) const
 
SeqValList get_delayvallist () const
 
double get_rf_energy () const
 
- Public Member Functions inherited from SeqTreeObj
bool contains (const SeqTreeObj *sto) const
 
void tree (SeqTreeCallbackAbstract *display) const
 
- Public Member Functions inherited from SeqClass
SeqClassset_temporary ()
 
- Public Member Functions inherited from Labeled
 Labeled (const STD_string &label="unnamed")
 
Labeledset_label (const STD_string &label)
 
const STD_string & get_label () const
 
Labeledoperator= (const Labeled &l)
 
- Public Member Functions inherited from List< SeqObjBase, const SeqObjBase *, const SeqObjBase & >
 List ()
 
 ~List ()
 
Listoperator= (const List &l)
 
Listclear ()
 
Listappend (const SeqObjBase & item)
 
Listremove (const SeqObjBase & 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 SeqSimultanVector
 SeqSimultanVector (const STD_string &object_label="unnamedSeqSimultanVector")
 
 SeqSimultanVector (const SeqSimultanVector &ssv)
 
SeqSimultanVectoroperator= (const SeqSimultanVector &ssv)
 
SeqSimultanVectoroperator+= (const SeqVector &sv)
 
SeqSimultanVectorclear ()
 
svector get_vector_commands (const STD_string &iterator) const
 
unsigned int get_vectorsize () const
 
unsigned int get_numof_iterations () const
 
STD_string get_loopcommand () const
 
nestingRelation get_nesting_relation () const
 
bool needs_unrolling_check () const
 
bool prep_iteration () const
 
bool is_qualvector () const
 
- Public Member Functions inherited from SeqVector
 SeqVector (const STD_string &object_label="unnamedSeqVector")
 
 SeqVector (const STD_string &object_label, unsigned int nindices, int slope=1, int offset=0)
 
 SeqVector (const SeqVector &sv)
 
virtual ~SeqVector ()
 
SeqVectoroperator= (const SeqVector &sv)
 
virtual int get_current_index () const
 
int get_acq_index () const
 
virtual bool is_acq_vector () const
 
virtual bool is_obj_vector () const
 
SeqVectorset_indexvec (const ivector &iv)
 
ivector get_indexvec () const
 
SeqVectorset_reorder_scheme (reorderScheme scheme, unsigned int nsegments=1)
 
SeqVectorset_encoding_scheme (encodingScheme scheme)
 
const SeqVectorget_reorder_vector () const
 
iarray get_index_matrix () const
 
int get_current_reord_index () const
 
STD_string get_reord_iterator (const STD_string &iterator) const
 
- Public Member Functions inherited from List< SeqVector, const SeqVector *, const SeqVector & >
 List ()
 
 ~List ()
 
Listoperator= (const List &l)
 
Listclear ()
 
Listappend (const SeqVector & item)
 
Listremove (const SeqVector & 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 SeqGradInterface
float get_gradintegral_norm () const
 

Additional Inherited Members

- Public Types inherited from List< SeqObjBase, const SeqObjBase *, const SeqObjBase & >
typedef STD_list< const SeqObjBase * >::iterator iter
 
typedef STD_list< const SeqObjBase * >::const_iterator constiter
 
- Public Types inherited from List< SeqVector, const SeqVector *, const SeqVector & >
typedef STD_list< const SeqVector * >::iterator iter
 
typedef STD_list< const SeqVector * >::const_iterator constiter
 
- Protected Member Functions inherited from SeqObjList
void clear_container ()
 
bool prep ()
 
- Protected Member Functions inherited from SeqClass
void marshall_error () const
 
- Protected Member Functions inherited from SeqVector
virtual svector get_reord_vector_commands (const STD_string &iterator) const
 
bool is_handled () const
 
- Static Protected Member Functions inherited from SeqClass
static void clear_temporary ()
 
static void clear_containers ()
 

Detailed Description

Diffusion Weighting.

A bipolar gradient pulse for diffusion weighting

The b-value and the properties of the gradient pulses are connected through the equation

b = gamma^2 * delta^2 ( Delta - delta/3 ) G^2

The order in which the series of b-values is played out can be cyclically reordered by using the vector which is returned by the get_reorder_vector() function: At each iteration of this vector, the b-values are exchanged cyclically.

Definition at line 53 of file seqdiffweight.h.

Constructor & Destructor Documentation

◆ SeqDiffWeight() [1/4]

SeqDiffWeight::SeqDiffWeight ( const STD_string &  object_label,
const fvector bvals,
float  maxgradstrength,
const SeqObjBase midpart,
direction  chan,
bool  stejskalTanner = false,
const STD_string &  nucleus = "" 
)

Constructs a bipolar gradient pulse labeled 'object_label' with the following properties:

  • bvals: The b-values for diffusion weighting, a postive value means that the first gradient pulse will have positive polarity and the second gradient pulse a negative polarity. These polarities are swapped in case of a negative b-value.
  • maxgradstrength: The maximum gradient strength to use for the maximum b-value
  • midpart: The sequence part which will be enclosed by the two gradient pulses.
  • chan: The gradient channel for the gradient pulses.
  • stejskalTanner: If set to 'true', both gradients will have the same polarity
  • nucleus: The nucleus for which the gradient pulses will be calculated

◆ SeqDiffWeight() [2/4]

SeqDiffWeight::SeqDiffWeight ( const STD_string &  object_label,
unsigned int  ndir,
const fvector bvals,
float  maxgradstrength,
const SeqObjBase midpart,
unsigned int  baseline_rep = 0,
bool  stejskalTanner = false,
const STD_string &  nucleus = "" 
)

Constructs a bipolar gradient pulse labeled 'object_label' with the following properties:

  • ndir: Number of uniformly ditributed directions
  • bvals: The b-values for diffusion weighting, a postive value means that the first gradient pulse will have positive polarity and the second gradient pulse a negative polarity. These polarities are swapped in case of a negative b-value.
  • maxgradstrength: The maximum gradient strength to use for the maximum b-value
  • midpart: The sequence part which will be enclosed by the two gradient pulses.
  • baseline_rep: Repetition rate of the baseline (b=0) scan. Not repeated if zero.
  • stejskalTanner: If set to 'true', both gradients will have the same polarity
  • nucleus: The nucleus for which the gradient pulses will be calculated

◆ SeqDiffWeight() [3/4]

SeqDiffWeight::SeqDiffWeight ( const STD_string &  object_label = "unnamedSeqDiffWeight")

Default constructor

◆ SeqDiffWeight() [4/4]

SeqDiffWeight::SeqDiffWeight ( const SeqDiffWeight sgdw)
inline

Copy constructor

Definition at line 96 of file seqdiffweight.h.

Member Function Documentation

◆ clear_container()

void SeqDiffWeight::clear_container ( )
inlinevirtual

Overload this function in case the class is a container object, i.e. it contains other sequence objects. The function should clear all references to other sequence objects, i.e. to thos it contains.

Reimplemented from SeqClass.

Definition at line 145 of file seqdiffweight.h.

◆ get_b_vectors()

const darray& SeqDiffWeight::get_b_vectors ( ) const
inline

Returns the b-vectors used in subsequent order.

Definition at line 131 of file seqdiffweight.h.

◆ get_grad1()

const SeqGradInterface& SeqDiffWeight::get_grad1 ( ) const
inline

Returns the first gradient lobe

Definition at line 106 of file seqdiffweight.h.

◆ get_grad1_duration()

double SeqDiffWeight::get_grad1_duration ( ) const
inline

Returns the duration of the first gradient lobe

Definition at line 116 of file seqdiffweight.h.

◆ get_grad2()

const SeqGradInterface& SeqDiffWeight::get_grad2 ( ) const
inline

Returns the second gradient lobe

Definition at line 111 of file seqdiffweight.h.

◆ get_grad2_duration()

double SeqDiffWeight::get_grad2_duration ( ) const
inline

Returns the duration of the second gradient lobe

Definition at line 121 of file seqdiffweight.h.

◆ get_gradduration()

double SeqDiffWeight::get_gradduration ( ) const
virtual

Returns the duration of the gradient object. This function returns only the effective duration during whichthe gradient is active, any delays before and after the gradient are omitted.

Implements SeqGradInterface.

◆ get_gradintegral()

fvector SeqDiffWeight::get_gradintegral ( ) const
virtual

Returns the integral vector of the gradient course

Implements SeqGradInterface.

◆ get_midpart_duration()

double SeqDiffWeight::get_midpart_duration ( ) const
inline

Returns the duration of the part in the middle between the two gradient lobes

Definition at line 126 of file seqdiffweight.h.

◆ get_strength()

float SeqDiffWeight::get_strength ( ) const
virtual

Returns the strength of the gradient object

Implements SeqGradInterface.

◆ invert_strength()

SeqGradInterface& SeqDiffWeight::invert_strength ( )
virtual

Changes the polarity of the gradient, i.e. inverts the sign of the gradient strength

Implements SeqGradInterface.

◆ is_qualvector()

bool SeqDiffWeight::is_qualvector ( ) const
inlinevirtual

Overload this function to tell whether the vector qualitatively alters the sequence concerning timings and RF power deposition. This is useful for accelerating duration and SAR calculations (Siemens).

Reimplemented from SeqVector.

Definition at line 149 of file seqdiffweight.h.

◆ operator=()

SeqDiffWeight& SeqDiffWeight::operator= ( const SeqDiffWeight sgdw)

Assignment operator

◆ set_gradrotmatrix()

SeqGradInterface& SeqDiffWeight::set_gradrotmatrix ( const RotMatrix matrix)
virtual

This function can be used to specify a rotation of the gradient object in the spatial domain, the rotation will be applied to this object only rather than to the whole sequence.

Implements SeqGradInterface.

◆ set_strength()

SeqGradInterface& SeqDiffWeight::set_strength ( float  gradstrength)
virtual

Changes the strength of the gradient object

Implements SeqGradInterface.


The documentation for this class was generated from the following file: