4#ifndef _5ab5cca8_2d48_40c2_89b5_30f7c75ca92d
5#define _5ab5cca8_2d48_40c2_89b5_30f7c75ca92d
7#include <MrMeasSrv/SeqIF/libRT/sREADOUT.h>
28 virtual ~CartesianReadout()
override =
default;
29 CartesianReadout(CartesianReadout
const &) =
default;
30 CartesianReadout(CartesianReadout &&) =
default;
31 CartesianReadout & operator=(CartesianReadout
const &) =
default;
32 CartesianReadout & operator=(CartesianReadout &&) =
default;
94 double xStart,
double xEnd,
msl::KSpace const & kSpace);
136 MrProt & protocol, SeqLim & limits, SeqExpo & exports)
override;
138 MrProt & protocol, SeqLim & limits, SeqExpo & exports)
override;
140 MrProtocolData::SeqExpoRFInfo
rfInfo()
const override;
182 sREADOUT
const &
adc()
const;
193 double _adcStartPosition, _adcEndPosition;
CartesianReadout & setContrast(long contrast)
Set the contrast number.
CartesianReadout & setIndex(msl::Vector2l const &index)
Set the index of the current point in the discrete ky-kz space.
long endTime() const override
Return the end time of the events.
CartesianReadout & setPhase(double phase)
Set the phase of the NCO during the readout.
msl::Vector3d areaAfterEcho() const
Return the area of the read-out gradient after the effective echo time.
CartesianReadout & setADCEndPosition(double x, msl::KSpace const &kspace)
Set the position on the x-axis the k-space at the end of the ADC (i.e. at the end of the last column)...
msl::Vector3d endPosition() const
Return the position in the k-space at the end of the gradient lobe.
CartesianReadout & setADCEndPosition(double k)
Set the position on the x-axis of the k-space at the end of the ADC (i.e. at the end of the last colu...
msl::Vector3d areaBeforeADC() const
Return the area of the read-out gradient before the start of the ADC.
long timeOffset() const
Return the time offset to get the effective echo time, accounting e.g. for the time of the excitation...
double adcStartPosition() const
Return the position on the x-axis the k-space at the start of the ADC.
msl::Vector3d areaBeforeEcho() const
Return the area of the read-out gradient before the effective echo time.
msl::Vector3d areaAfterADC() const
Return the area of the read-out gradient after the end of the ADC.
long adcStartTime() const
Return the start time of the ADC.
MrProtocolData::SeqExpoRFInfo rfInfo() const override
Return the RF information for SAR computation.
double phase() const
Return the phase of the NCO during the readout.
bool reverted() const
Return whether the readout is reverted with respect to its nominal direction. This is handled in run,...
CartesianReadout & setADCStartPosition(double x, msl::KSpace const &kspace)
Set the position on the x-axis the k-space at the start of the ADC, as a fraction of the k-space exte...
CartesianReadout & setADCPosition(double xStart, double xEnd, msl::KSpace const &kSpace)
Return the position on the x-axis the k-space at the start and the end of the ADC,...
CartesianReadout & setReverted(bool reverted)
Set whether the readout is reverted with respect to its nominal direction. This is handled in run,...
long startTime() const override
Return the start time of the events.
NLSStatus run(MrProt &protocol, SeqLim &limits, SeqExpo &exports) override
Run the real-time events.
sREADOUT & adc()
Return a reference to the ADC real-time object, e.g. for updating its meta-data.
CartesianReadout & setTimeOffset(long timeOffset)
Set the time offset to get the effective echo time, accounting e.g. for the time of the excitation pu...
msl::Vector3d startPosition() const
Return the position in the k-space at the start of the gradient lobe.
long adcEndTime() const
Return the start time of the ADC.
msl::Vector2l index() const
Return the index of the current point in the discrete ky-kz space.
double adcEndPosition() const
Return the position on the x-axis the k-space at the end of the ADC.
msl::GradientPulse const & gradient() const
Return the read-out gradient.
CartesianReadout & setADCPosition(double kStart, double kEnd)
Set the position on the x-axis of the k-space at the start and 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.
NLSStatus prepare(MrProt &protocol, SeqLim &limits, SeqExpo &exports) override
Prepare the real-time events.
CartesianReadout & setADCStartPosition(double k)
Set the position on the x-axis of the k-space at the start of the ADC.
long contrast() const
Return the contrast number.
long echoTime() const
Return the effective echo time (requires preparation).
Trapezoidal or arbitrary gradient pulse on three axes.
Definition GradientPulse.h:21
Description of the discretized k-space geometry.
Definition KSpace.h:22
Encapsulation of a pair of NCO objects, setting and resetting the frequency and the phase of the NCO ...
Definition NCOPair.h:26
RealTimeEvents()
No-op constructor.
#define MSL_DEPRECATED
Mark as deprecated.
Definition helpers.h:79
Top-level namespace of the msl library.
Definition acceleration.h:17
Vector< 2, long > Vector2l
2D vector of longs
Definition Vector.h:130
Vector< 3, double > Vector3d
3D vector of doubles
Definition Vector.h:136