msl 1.3.0
Loading...
Searching...
No Matches
msl::readouts::Spiral Class Reference

Detailed Description

WHIRLED PEAS spiral readout.

The implementation follows "Exact, time-dependent analytical equations for spiral trajectories and matching gradient and density-correction waveforms", G. Krishnamoorthy and J. Pipe, Magnetic Resonance in Medicine 95(1), 2026.

Warning
There is a slight risk of slew rate overshoot "short" spirals, i.e. with a large number of interleaves.

#include <Spiral.h>

Public Types

enum  Direction { Out , In }
 Direction of the spiral. More...

Public Member Functions

 Spiral ()
 Create a default readout.
 Spiral (Spiral const &)=default
 Spiral (Spiral &&)=default
Spiraloperator= (Spiral const &)=default
Spiraloperator= (Spiral &&)=default
Direction const & direction () const
Spiral setDirection (Direction const &direction)
int32_t interleaves () const
 Return the number of interleaves.
NLSStatus prepare (MrProt &protocol, SeqLim &limits, SeqExpo &exports) override
 Prepare the real-time events.
NLSStatus run (MrProt &protocol, SeqLim &limits, SeqExpo &exports) override
 Run the real-time events.
Spiralrotate (double angle)
 Rotate the original spiral.
Public Member Functions inherited from msl::Readout
 Readout (Readout const &)=default
 Readout (Readout &&)=default
Readout & operator= (Readout const &)=default
Readout & operator= (Readout &&)=default
double phase () const
 Return the phase of the NCO during the readout.
Readout & setPhase (double phase)
 Set the phase of the NCO during the readout.
long contrast () const
 Return the contrast number.
Readout & setContrast (long contrast)
 Set the contrast number.
long timeOffset () const
 Return the time offset to get the effective echo time, accounting e.g. for the time of the excitation pulse peak.
Readout & setTimeOffset (long timeOffset)
 Set the time offset to get the effective echo time, accounting e.g. for the time of the excitation pulse peak.
Vector3l const & ncoOffset () const
 Return NCO k-space offset.
Readout & setNCOOffset (Vector3l const &point)
 Set NCO k-space offset.
GradientSpecs const & gradientSpecs () const
 Return the gradient specifications constraining the read-out duration.
Readout & setGradientSpecs (GradientSpecs const &gradientSpecs)
 Set the gradient specifications constraining the read-out duration.
long echoTime () const
 Return the effective echo time (requires preparation).
MrProtocolData::SeqExpoRFInfo rfInfo () const override
 Return the RF information for SAR computation.
long startTime () const override
 Return the start time of the events.
long endTime () const override
 Return the end time of the events.
GradientPulse const & gradient () const
 Return the read-out gradient.
long adcStartTime () const
 Return the start time of the ADC.
long adcEndTime () const
 Return the start time of the ADC.
Vector3d areaBeforeADC () const
 Return the area of the read-out gradient before the start of the ADC.
Vector3d areaBeforeEcho () const
 Return the area of the read-out gradient before the effective echo time.
Vector3d areaAfterEcho () const
 Return the area of the read-out gradient after the effective echo time.
Vector3d areaAfterADC () const
 Return the area of the read-out gradient after the end of the ADC.
sREADOUT const & adc () const
 Return a reference to the ADC real-time object, e.g. for updating its meta-data.
sREADOUT & adc ()
 Return a reference to the ADC real-time object, e.g. for updating its meta-data.
Public Member Functions inherited from msl::RealTimeEvents
 RealTimeEvents ()
 No-op constructor.
 RealTimeEvents (RealTimeEvents const &)=default
 RealTimeEvents (RealTimeEvents &&)=default
RealTimeEventsoperator= (RealTimeEvents const &)=default
RealTimeEventsoperator= (RealTimeEvents &&)=default
sSLICE_POS const & slice () const
 Return the slice used in prepare and run.
virtual RealTimeEventssetSlice (sSLICE_POS const &slice)
 Set the slice used in prepare and run.

Additional Inherited Members

Protected Attributes inherited from msl::Readout
double _phase
 Phase of the NCO during the readout.
long _contrast
 Contrast number.
long _timeOffset
 Time offset to get the effective echo time.
GradientSpecs _gradientSpecs
 Gradient specifications constraining the read-out duration.
long _echoTime
 Effective echo time.
GradientPulse _gradient
 Read-out gradient.
NCOPair _nco
 NCO before and after this gradient.
Vector3l _ncoOffset
 NCO k-space offset.
sREADOUT _adc
 Real-time readout object.
Protected Attributes inherited from msl::RealTimeEvents
sSLICE_POS _slice
 Slice specifications attached to this real time object.

Member Enumeration Documentation

◆ Direction

Direction of the spiral.

Enumerator
Out 

From center to edge of k-space.

In 

From edge to center of k-space.

Member Function Documentation

◆ interleaves()

int32_t msl::readouts::Spiral::interleaves ( ) const

Return the number of interleaves.

Warning
Requires a previous call to prepare

◆ prepare()

NLSStatus msl::readouts::Spiral::prepare ( MrProt & protocol,
SeqLim & limits,
SeqExpo & exports )
overridevirtual

Prepare the real-time events.

Implements msl::RealTimeEvents.

◆ run()

NLSStatus msl::readouts::Spiral::run ( MrProt & protocol,
SeqLim & limits,
SeqExpo & exports )
overridevirtual

Run the real-time events.

Implements msl::RealTimeEvents.

◆ rotate()

Spiral & msl::readouts::Spiral::rotate ( double angle)

Rotate the original spiral.

Parameters
angleAngle of rotation [deg]

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