21 #include <odinseq/seqacq.h>
22 #include <odinseq/seqgrad.h>
23 #include <odinseq/seqlist.h>
24 #include <odinseq/seqloop.h>
25 #include <odinseq/seqdelay.h>
26 #include <odinseq/seqgradtrapez.h>
27 #include <odinseq/seqgradconst.h>
28 #include <odinseq/seqparallel.h>
29 #include <odinseq/seqdriver.h>
43 virtual void init_driver(
const STD_string& object_label,
double sweepwidth,
44 float kread_min,
float kread_max,
unsigned readntps,
45 float kphase_min,
float kphase_max,
unsigned phasentps,
int startindex_phase,
46 bool ramp_sampling,
rampType rampmode,
float ramp_steepness,
47 const STD_string& nucleus,
const dvector& phaselist,
const dvector& freqlist,
unsigned int echo_pairs) = 0;
49 virtual unsigned get_npts_read()
const = 0;
51 virtual unsigned int get_numof_gradechoes()
const = 0;
53 virtual double get_echoduration()
const = 0;
55 virtual double get_ramp_rastertime()
const = 0;
57 virtual float get_gradintegral2center_read()
const = 0;
59 virtual float get_gradintegral2center_phase()
const = 0;
61 virtual fvector get_readout_shape()
const = 0;
63 virtual const kSpaceCoord& get_kcoord_template(
unsigned int& padded_zeroes)
const = 0;
67 unsigned int get_npts()
const {
return get_npts_read()*get_numof_gradechoes();}
98 void init_driver(
const STD_string& object_label,
double sweepwidth,
99 float kread_min,
float kread_max,
unsigned readntps,
100 float kphase_min,
float kphase_max,
unsigned phasentps,
int startindex_phase,
101 bool ramp_sampling,
rampType rampmode,
float ramp_steepness,
102 const STD_string& nucleus,
103 const dvector& phaselist,
const dvector& freqlist,
unsigned int echo_pairs);
107 odinPlatform get_driverplatform()
const {
return standalone;}
111 unsigned int get_npts_read()
const {
return adc.
get_npts();}
112 unsigned int get_numof_gradechoes()
const;
114 double get_ramp_rastertime()
const {
return posread.
get_timestep();}
115 float get_gradintegral2center_read()
const {
return gradint2center_read;}
116 float get_gradintegral2center_phase()
const {
return gradint2center_phase;}
117 fvector get_readout_shape()
const {
return readshape;}
118 const kSpaceCoord& get_kcoord_template(
unsigned int& padded_zeroes)
const {padded_zeroes=0;
return adc.
get_kcoord();}
166 float gradint2center_read;
167 float gradint2center_phase;
168 int centerindex_phase;
179 class SeqAcqEPIdephObjs;
217 SeqAcqEPI(
const STD_string& object_label,
double sweepwidth,
218 unsigned int read_size,
float FOVread,
219 unsigned int phase_size,
float FOVphase,
220 unsigned int shots=1,
unsigned int reduction=1,
float os_factor=1.0,
const STD_string& nucleus=
"",
222 rampType rampmode = linear,
bool ramp_sampling=
false,
float ramp_steepness=1.0,
223 float fourier_factor=0.0,
unsigned int echo_pairs=0,
bool invert_partial_fourier=
false);
235 SeqAcqEPI(
const STD_string& object_label=
"unnamedSeqAcqEPI");
308 SeqVector& get_mutable_freqlist_vector() {
return driver->get_mutable_freqlist_vector();}
309 SeqVector& get_mutable_phaselist_vector() {
return driver->get_mutable_phaselist_vector();}
319 void create_deph_and_reph();
322 unsigned int readsize_os_cache;
323 float os_factor_cache;
324 unsigned int phasesize_cache;
325 unsigned int segments_cache;
326 unsigned int reduction_cache;
327 int echo_pairs_cache;
334 SeqAcqEPIdephObjs* dephobjs;
Acquisition + echo-planar imaging readout.
float get_strength() const
const SeqVector & get_phaselist_vector() const
unsigned int get_numof_gradechoes() const
SeqFreqChanInterface & set_freqlist(const dvector &freqlist)
SeqAcqInterface & set_template_type(templateType type)
double get_acquisition_start() const
SeqAcqEPI(const SeqAcqEPI &sae)
double get_gradduration() const
SeqAcqEPI(const STD_string &object_label="unnamedSeqAcqEPI")
SeqAcqInterface & set_reco_vector(recoDim dim, const SeqVector &vec, const dvector &valvec=dvector())
SeqAcqEPI(const STD_string &object_label, double sweepwidth, unsigned int read_size, float FOVread, unsigned int phase_size, float FOVphase, unsigned int shots=1, unsigned int reduction=1, float os_factor=1.0, const STD_string &nucleus="", const dvector &phaselist=0, const dvector &freqlist=0, rampType rampmode=linear, bool ramp_sampling=false, float ramp_steepness=1.0, float fourier_factor=0.0, unsigned int echo_pairs=0, bool invert_partial_fourier=false)
SeqAcqEPI & operator=(const SeqAcqEPI &sae)
double get_duration() const
SeqAcqInterface & set_sweepwidth(double sw, float os_factor)
STD_string get_properties() const
unsigned int get_npts() const
unsigned int get_npts_read() const
SeqGradInterface & invert_strength()
float get_oversampling() const
SeqGradInterface & set_strength(float gradstrength)
double get_acquisition_center() const
double get_sweepwidth() const
void query(queryContext &context) const
SeqFreqChanInterface & set_phaselist(const dvector &phaselist)
SeqAcqInterface & set_default_reco_index(recoDim dim, unsigned int index)
unsigned int event(eventContext &context) const
const SeqVector & get_freqlist_vector() const
SeqFreqChanInterface & set_nucleus(const STD_string &nucleus)
RecoValList get_recovallist(unsigned int reptimes, LDRkSpaceCoords &coords) const
SeqGradInterface & set_gradrotmatrix(const RotMatrix &matrix)
fvector get_gradintegral() const
SeqValList get_freqvallist(freqlistAction action) const
STD_string get_program(programContext &context) const
fvector get_readout_shape() const
virtual double get_sweepwidth() const
virtual double get_acquisition_center() const
virtual SeqAcqInterface & set_reco_vector(recoDim dim, const SeqVector &vec, const dvector &valvec=dvector())
virtual double get_acquisition_start() const
virtual SeqAcqInterface & set_default_reco_index(recoDim dim, unsigned int index)
const kSpaceCoord & get_kcoord() const
unsigned int get_npts() const
double get_acquisition_center() const
double get_gradduration() const
double get_acquisition_start() const
float get_strength() const
SeqGradInterface & invert_strength()
SeqGradInterface & set_gradrotmatrix(const RotMatrix &matrix)
fvector get_gradintegral() const
SeqAcqInterface & set_template_type(templateType type)
SeqGradInterface & set_strength(float gradstrength)
unsigned int get_npts() const
virtual SeqFreqChanInterface & set_nucleus(const STD_string &nucleus)
virtual SeqFreqChanInterface & set_phaselist(const dvector &phaselist)
virtual const SeqVector & get_freqlist_vector() const
virtual SeqFreqChanInterface & set_freqlist(const dvector &freqlist)
virtual const SeqVector & get_phaselist_vector() const
virtual SeqGradInterface & set_gradrotmatrix(const RotMatrix &matrix)=0
virtual float get_strength() const =0
virtual SeqGradInterface & set_strength(float gradstrength)=0
virtual fvector get_gradintegral() const =0
virtual double get_gradduration() const =0
virtual SeqGradInterface & invert_strength()=0
double get_timestep() const
double get_gradduration() const
Container for sequence objects.
SeqObjList & operator=(const SeqObjList &so)
STD_string get_program(programContext &context) const
double get_duration() const
STD_string get_properties() const
unsigned int event(eventContext &context) const
SeqValList get_freqvallist(freqlistAction action) const
void query(queryContext &context) const
float get_strength() const
double get_gradduration() const
SeqGradInterface & invert_strength()
SeqGradInterface & set_gradrotmatrix(const RotMatrix &matrix)
void tree(SeqTreeCallbackAbstract *display) const
bool contains(const SeqTreeObj *sto) const
tjvector< double > dvector