msl 1.3.0
Loading...
Searching...
No Matches
msl Namespace Reference

Detailed Description

Top-level namespace of the msl library.

Namespaces

namespace  acceleration
 Set of helpers to deal with accelerated imaging (partial Fourier, iPAT, etc.).
namespace  gradient_pulses
 Functions generating gradient pulses based on user and system constraints.
namespace  graph
 Graph-related objects and functions.
namespace  readouts
 Namespace for all Readout-derived objects.
namespace  rf_pulses
 Pre-defined RF pulses and pulse modifiers.
namespace  samplings
 Namespace for all Readout-derived objects.

Classes

class  CartesianReadout
 Cartesian read-out along the X gradient, comprising the ADC, NCO manipulation, and read-out gradient. More...
class  Counter
 Counter from 0 (included) to end (excluded). More...
class  Dictionary
 Generic key-value associative container. More...
class  DictionaryItem
 Typed accessor for a dictionary item. More...
class  GradientPulse
 Trapezoidal or arbitrary gradient pulse on three axes. More...
struct  GradientSpecs
 Specifications of the gradient system. More...
class  iPATMask
 A two dimensional indicator of iPAT status. More...
class  ConstIterator
 Read-only iterator to a container. More...
class  Iterator
 Read/write iterator to a container. More...
class  KSpace
 Description of the discretized k-space geometry. More...
class  Mask
 A two dimensional binary mask. More...
class  MaskBase
 Base class for masks, boolean and non-boolean. More...
class  NCOPair
 Encapsulation of a pair of NCO objects, setting and resetting the frequency and the phase of the NCO before and after a real-time event. More...
class  PhaseCycling
 Compute phase cycling with linear and quadratic increments. More...
class  Readout
 Readout object, composed of an ADC, a gradient pulse and a pair of NCO. More...
class  RealTimeEvents
 Base class for real-time events. More...
class  RFPulse
 Base class for RF pulses. More...
class  Sampling
 Abstract sampling scheme of the k-space. More...
class  Sequence
 Graph-based sequence class. More...
class  Synchronization
 Run a synchronization event. More...
class  Vector
 A vector of arithmetic types. More...

Typedefs

using SliceIterator = Iterator<std::vector<sSLICE_POS>>
 Iterator to a vector of slice specifications.
using SliceConstIterator = ConstIterator<std::vector<sSLICE_POS>>
 Non-mutable iterator to a vector of slice specifications.
using Vector2d = Vector<2, double>
 2D vector of doubles
using Vector2l = Vector<2, long>
 2D vector of longs
using Vector2b = Vector<2, bool>
 2D vector of booleans
using Vector3d = Vector<3, double>
 3D vector of doubles
using Vector3l = Vector<3, long>
 3D vector of longs
using Vector3b = Vector<3, bool>
 3D vector of booleans

Functions

double roundUp (double value, double base)
 Round up the value to the nearest multiple of base.
long roundUpGRT (double value)
 Round up the value to the nearest multiple of GRAD_RASTER_TIME.
double roundDown (double value, double base)
 Round down the value to the nearest multiple of base.
long roundDownGRT (double value)
 Round down the value to the nearest multiple of GRAD_RASTER_TIME.
template<typename T>
long endTime (T const &x)
 Get the end time of an non-GRAD_PULSE IDEA object.
long endTime (sGRAD_PULSE const &x)
 Get the end time of a GRAD_PULSE object.
NLSStatus setGain (MrProt &protocol, SeqLim &limits, double thickness)
 Set the gain to high for slices thinner than given thickness.
std::ostream & operator<< (std::ostream &stream, iPATMask const &mask)
 Visual representation of the mask.
std::ostream & operator<< (std::ostream &stream, Mask const &mask)
 Visual representation of the mask.
Mask operator! (Mask mask)
 Retrun a switched mask (enabled ↔ disabled).
Mask operator& (Mask left, Mask const &right)
 Intersection of two masks.
Mask operator| (Mask left, Mask const &right)
 Union of two masks.
Mask ellipticalMask (Mask::Shape const &shape)
 Create an ellipse-shaped mask, where the width and height of the ellipse equal the shape of the mask.
Mask partialMask (Mask::Shape const &shape, Vector2d const &ratio, Vector2b const &useLowerQuadrant)
 Create a mask where an interval of each quadrant is enabled.
Mask partialMask (Mask::Shape const &shape, Vector2d const &ratio, bool useLowerQuadrant=true)
 Create a mask where an interval of each quadrant is enabled.
Mask cornersMask (Mask::Shape const &shape, Mask::Point size)
 Create a mask where every point is disabled except at the corners.
Mask crossMask (Mask::Shape const &shape, Mask::Shape const &width)
 Create a mask with a cross of given width at its center.
Mask latticeMask (Mask::Shape const &shape, Mask::Shape const &period)
 Create a mask with a lattice pattern.
bool overlap (RealTimeEvents const &e1, RealTimeEvents const &e2)
 Test whether e2 begins before e1 ends.
bool overlap (RealTimeEvents const &e1, long t)
 Test whether e1 ends after t.
bool overlap (long t, RealTimeEvents const &e2)
 Test whether e2 begins before t.
template<std::size_t N, typename T>
Vector< N, T > operator+ (Vector< N, T > left, Vector< N, T > const &right)
 Element-wise addition.
template<std::size_t N, typename T>
Vector< N, T > operator- (Vector< N, T > left, Vector< N, T > const &right)
 Element-wise subtraction.
template<std::size_t N, typename T>
Vector< N, T > operator* (Vector< N, T > left, T right)
 Multiplication by a scalar.
template<std::size_t N, typename T>
Vector< N, T > operator* (T left, Vector< N, T > right)
 Multiplication by a scalar.
template<std::size_t N, typename T>
Vector< N, T > operator/ (Vector< N, T > left, T right)
 Division by a scalar.
template<std::size_t N, typename T>
Vector< N, T > operator% (Vector< N, T > left, Vector< N, T > const &right)
 Element-wise remainder of division.
template<std::size_t N, typename T>
Vector< N, T > operator% (Vector< N, T > left, T right)
 Remainder of division by a scalar.
template<std::size_t N, typename T>
std::ostream & operator<< (std::ostream &stream, Vector< N, T > const &v)
 Textual representation.

Function Documentation

◆ ellipticalMask()

Mask msl::ellipticalMask ( Mask::Shape const & shape)

Create an ellipse-shaped mask, where the width and height of the ellipse equal the shape of the mask.

Parameters
shapeShape of the mask

◆ partialMask() [1/2]

Mask msl::partialMask ( Mask::Shape const & shape,
Vector2d const & ratio,
Vector2b const & useLowerQuadrant )

Create a mask where an interval of each quadrant is enabled.

Parameters
shapeShape of the mask
ratioEnabled ratio on each axis, must be between 0 and 1 (0: evertyhing is disabled, 1: everything is enabled)
useLowerQuadrantTrue to enable lower quadrant, false to enable upper quadrant

◆ partialMask() [2/2]

Mask msl::partialMask ( Mask::Shape const & shape,
Vector2d const & ratio,
bool useLowerQuadrant = true )

Create a mask where an interval of each quadrant is enabled.

Parameters
shapeShape of the mask
ratioEnabled ratio on each axis, must be between 0 and 1 (0: evertyhing is disabled, 1: everything is enabled)
useLowerQuadrantTrue to enable lower quadrant, false to enable upper quadrant

◆ cornersMask()

Mask msl::cornersMask ( Mask::Shape const & shape,
Mask::Point size )

Create a mask where every point is disabled except at the corners.

Parameters
shapeShape of the mask
sizeSize of the enabled region at all corners

◆ crossMask()

Mask msl::crossMask ( Mask::Shape const & shape,
Mask::Shape const & width )

Create a mask with a cross of given width at its center.

Parameters
shapeShape of the mask
widthWidth of the horizontal and vertical branches of the cross, set to 0 to disable a branch

◆ latticeMask()

Mask msl::latticeMask ( Mask::Shape const & shape,
Mask::Shape const & period )

Create a mask with a lattice pattern.

Parameters
shapeShape of the mask
periodHorizontal and vertical period of the lattice so that 1 in n point is enabled, set to 1 for a full sampling
Note
The central row and column (defined as n/2) are always enabled