ODIN
seqgradphase.h
1 /***************************************************************************
2  seqgradphase.h - description
3  -------------------
4  begin : Tue Mar 21 2006
5  copyright : (C) 2000-2021 by Thies H. Jochimsen
6  email : thies@jochimsen.de
7  ***************************************************************************/
8 
9 /***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 
18 #ifndef SEQGRADPHASE_H
19 #define SEQGRADPHASE_H
20 
21 #include <odinseq/seqgradpulse.h>
22 #include <odinseq/seqsimvec.h>
23 
24 #define DEFAULT_ACL_BANDS 4
25 
38 
39  public:
40 
55  SeqGradPhaseEnc(const STD_string& object_label, unsigned int nsteps,
56  float fov, direction gradchannel, float gradstrength,
57  encodingScheme scheme=linearEncoding, reorderScheme reorder=noReorder,
58  unsigned int nsegments=1, unsigned int reduction=1, unsigned int acl_bands=DEFAULT_ACL_BANDS,
59  float partial_fourier=0.0, const STD_string& nucleus="");
60 
75  SeqGradPhaseEnc(const STD_string& object_label, unsigned int nsteps,
76  float fov, float gradduration, direction gradchannel,
77  encodingScheme scheme=linearEncoding, reorderScheme reorder=noReorder,
78  unsigned int nsegments=1, unsigned int reduction=1, unsigned int acl_bands=DEFAULT_ACL_BANDS,
79  float partial_fourier=0.0, const STD_string& nucleus="");
80 
81 
85  SeqGradPhaseEnc(const STD_string& object_label="unnamedSeqGradPhaseEnc") : SeqGradVectorPulse(object_label) {}
86 
91 
96 
97 
98  private:
99  void init_encoding(unsigned int nsteps,encodingScheme scheme, reorderScheme reorder, unsigned int nsegments, unsigned int reduction, unsigned int acl_bands, float partial_fourier);
100 
101 };
102 
103 
105 
106 
114 
115  public:
116 
132  SeqGradPhaseEncFlowComp(const STD_string& object_label, double t0, unsigned int nsteps,
133  float fov, direction gradchannel, float gradstrength,
134  encodingScheme scheme=linearEncoding, reorderScheme reorder=noReorder,
135  unsigned int nsegments=1, unsigned int reduction=1, unsigned int acl_bands=DEFAULT_ACL_BANDS,
136  float partial_fourier=0.0, const STD_string& nucleus="");
137 
138 
142  SeqGradPhaseEncFlowComp(const STD_string& object_label="unnamedSeqGradPhaseEncFlowComp") : SeqGradChanList(object_label) {}
143 
148 
153 
157  operator const SeqVector& () const {return simvec;}
158 
159  private:
160 
161  void build_seq();
162 
163  static void calc_flowcomp_pe(float& negfact, float& tc, float Gpos, float M0, float t0, float slewrate);
164 
165  SeqGradVectorPulse pos;
166  SeqGradVectorPulse neg;
167  SeqSimultanVector simvec;
168 
169 };
170 
174 #endif
Flow-Compensated Phase Encoding.
Definition: seqgradphase.h:113
SeqGradPhaseEncFlowComp(const SeqGradPhaseEncFlowComp &sgpefc)
Definition: seqgradphase.h:147
SeqGradPhaseEncFlowComp(const STD_string &object_label="unnamedSeqGradPhaseEncFlowComp")
Definition: seqgradphase.h:142
SeqGradPhaseEncFlowComp(const STD_string &object_label, double t0, unsigned int nsteps, float fov, direction gradchannel, float gradstrength, encodingScheme scheme=linearEncoding, reorderScheme reorder=noReorder, unsigned int nsegments=1, unsigned int reduction=1, unsigned int acl_bands=DEFAULT_ACL_BANDS, float partial_fourier=0.0, const STD_string &nucleus="")
SeqGradPhaseEncFlowComp & operator=(const SeqGradPhaseEncFlowComp &sgpefc)
Phase Encoding.
Definition: seqgradphase.h:37
SeqGradPhaseEnc(const STD_string &object_label, unsigned int nsteps, float fov, float gradduration, direction gradchannel, encodingScheme scheme=linearEncoding, reorderScheme reorder=noReorder, unsigned int nsegments=1, unsigned int reduction=1, unsigned int acl_bands=DEFAULT_ACL_BANDS, float partial_fourier=0.0, const STD_string &nucleus="")
SeqGradPhaseEnc(const SeqGradPhaseEnc &sgpe)
Definition: seqgradphase.h:90
SeqGradPhaseEnc & operator=(const SeqGradPhaseEnc &sgpe)
Definition: seqgradphase.h:95
SeqGradPhaseEnc(const STD_string &object_label, unsigned int nsteps, float fov, direction gradchannel, float gradstrength, encodingScheme scheme=linearEncoding, reorderScheme reorder=noReorder, unsigned int nsegments=1, unsigned int reduction=1, unsigned int acl_bands=DEFAULT_ACL_BANDS, float partial_fourier=0.0, const STD_string &nucleus="")
SeqGradPhaseEnc(const STD_string &object_label="unnamedSeqGradPhaseEnc")
Definition: seqgradphase.h:85
Vector of gradient pulses.
Definition: seqgradpulse.h:103
SeqGradVectorPulse & operator=(const SeqGradVectorPulse &sgvp)
direction
Definition: odinpara.h:41
encodingScheme
Definition: seqvec.h:37
reorderScheme
Definition: seqvec.h:48