#include <KSFoundation.h>
Data Fields | |
KS_READ | acq |
float | fov |
int | res |
int | rampsampling |
int | nover |
int | acqdelay |
float | paddingarea |
float | freqoffHz |
float | area2center |
int | time2center |
KS_TRAP | grad |
KS_WAVE | omega |
int | omega_iwave_phase_at_echo |
KS_READTRAP is a composite sequence object used to read out data while a trapezoid is played out, which is applicable to Cartesian, propeller and radial pulse sequences. The KS_READTRAP object is set up by calling ks_eval_readtrap(), but before calling this function, the following fields in KS_READTRAP must be set up:
.fov
: Desired image Field-of-View (FOV) in [mm] along the sequence board one intends to place the KS_READTRAP on (typically XGRAD).res
: Number of pixels within the FOV.acq.rbw
: Receiver bandwidth (rBW) in [kHz/FOV]. Maximum is 250.rampsampling
: If non-zero, data acquisition will be performed on the ramps of the trapezoid as well. This reduces the readout time, especially for high rBWs..acqdelay
: Needs to be set only if .rampsampling = 1
. The .acqdelay
(in [us]) will dictate the time from the start of the ramp-up until data acquisition will begin.nover
: Number of overscans. If 0, a full echo will be generated (filling k-space). If > 0, fractional echo (i.e. shorter TE) will be set up with .nover
number of extra sample points beyond .res/2
. The total number of samples will be .res/2 + .nover
. Values of .nover
between 1 and about 16 should be avoided since half Fourier reconstruction methods will likely have difficulties.freqoffHz
: Static offset frequency in Hz. Can be used to e.g. center fat instead of waterIf the KS_READTRAP object is initialized with KS_INIT_READTRAP, the fields .nover
, .rampsampling
, .acqdelay
and .freqoffHz
will all be zero (steps 4-7 can be skipped)
Based on the information in the KS_READTRAP object, ks_eval_readtrap() will set up its .grad
trapezoid (KS_TRAP) and its acquisition window .acq
(KS_READ).
If .rampsampling = 1
, ks_eval_readtrap() will also copy the shape of .grad
into .omega
(also KS_TRAP). This is needed for FOV-offsets in the readout direction when data acquisition is done on both the ramps and on the plateau, and ks_pg_readtrap() and ks_scan_offsetfov() will handle the .omega
KS_TRAP so that the intended FOV shift in [mm] will be performed.
ks_eval_readtrap() will also fill in the convenience fields .area2center
and .time2center
properly. .area2center
is useful to use as desired input .area
for a read dephaser, and .time2center
makes sequence timing calculations easier. Both fields take partial/full Fourier (.nover
) into account.
It is a requirement that there is a (sequence generating) function in the @pg
section (containing the ks_pg_readtrap() call(s)) that can be run on both HOST and TGT. This function should be called once in cveval()
(after ks_eval_readtrap() and other ks_eval_***()
functions). ks_pg_readtrap() will throw an error on TGT if this has not been done.
KS_READ acq |
Data acq window (incl. filter info) (set by ks_eval_readtrap())
float fov |
FOV in the frequency encoding direction [mm] (must be set before calling ks_eval_readtrap())
int res |
Number of pixels in the frequency encoding direction (must be set before calling ks_eval_readtrap())
int rampsampling |
0 [default]: data acquisition on the plateau of the trapezoid, 1: data acquisition also on the ramps (optionally set before ks_eval_readtrap())
int nover |
0 [default]: Full Fourier imaging (full k-space), >0: Partial Fourier (in freq.dir.). Actual value sets the number of partial Fourier overscans. (optionally set before ks_eval_readtrap())
int acqdelay |
Time [us] until data sampling should start relative to the attack ramp start. Must be set manually when .rampsampling
= 1. Without rampsampling, .acqdelay
is set to .ramptime
(if paddingarea = 0)
float paddingarea |
0 [default]: Minimum gradient area [(G/cm)*us] before or after the start of the sampling window on the plateau part (applies only when .rampsampling
= 0)
float freqoffHz |
0 [default]: Static frequency offset in [Hz] that is to be added to the FOV dependent frequency offset (c.f. ks_scan_offsetfov())
float area2center |
Gradient area until center of k-space (convenient information set by ks_eval_readtrap())
int time2center |
Time [us] until center of k-space (convenient information set by ks_eval_readtrap())
KS_TRAP grad |
Gradient during data acq (set by ks_eval_readtrap())
KS_WAVE omega |
OMEGA trapezoid for frequency modulation during data acquisition when .rampsampling = 1, otherwise not used. (set by ks_eval_readtrap())
int omega_iwave_phase_at_echo |
used for offset field of view