21 #include <odinpara/ldrfunction.h>
22 #include <odinpara/ldrfilter.h>
24 #include <odinseq/seqpuls.h>
32 #define _BOUNDARY_VALUE_ 0.005
33 #define _SETREFGAIN_ADIABATIC_INTERVAL_ 0.01
34 #define _SETREFGAIN_ADIABATIC_INCR_FACTOR_ 1.1
35 #define _SETREFGAIN_ITERATIONS_ 3
38 #define _TRAJ_OPTIMIZE_PARLABEL_ "FreeParameter"
54 LDRtrajectory(
const STD_string& ldrlabel=
"unnamedLDRtrajectory") : LDRfunction(trajFunc,ldrlabel) {}
60 void init_trajectory(
OdinPulse* pls=0) {
if(allocated_function) allocated_function->init_trajectory(pls);}
64 const traj_info& get_traj_info()
const;
66 static void init_static();
67 static void destroy_static();
80 LDRshape(
const STD_string& ldrlabel=
"unnamedLDRshape") : LDRfunction(shapeFunc,ldrlabel) {}
84 LDRshape& operator = (
const LDRshape& js) {LDRfunction::operator = (js);
return *
this;}
86 void init_shape() {
if(allocated_function) allocated_function->init_shape();}
89 STD_complex calculate(
float s,
float Tp)
const;
91 const shape_info& get_shape_info()
const;
92 farray get_excitation_mask(
float fov,
unsigned int size)
const;
95 static void init_static();
96 static void destroy_static();
103 struct OdinPulseData;
130 OdinPulse(
const STD_string& pulse_label=
"unnamedOdinPulse",
bool interactive=
false);
505 virtual void update_B10andPower();
509 double get_Tp_1pulse()
const;
512 int append_all_members();
514 static float ensure_unit_range(
float x);
519 static float gradient_system_max (
const fvector& Gvec,
float Gmax,
float maxslew,
float Tp);
520 static float max_kspace_step(
const fvector& Gz,
float gamma,
float Tp,
float G0);
521 static float max_kspace_step2(
const fvector& Gx,
const fvector& Gy,
float gamma,
float Tp,
float G0);
523 OdinPulse& resize_noupdate(
unsigned int newsize);
STD_string get_trajectory() const
OdinPulse & set_flipangle(double angle)
OdinPulse & set_filter(const STD_string &shapeval)
OdinPulse & operator=(const OdinPulse &pulse)
float get_power_depos() const
OdinPulse & set_consider_system_cond(bool flag)
double get_field_of_excitation() const
void simulate_pulse(SeqSimAbstract &sim, const Sample &sample) const
OdinPulse & set_spatial_offset(direction direction, double offset)
OdinPulse & set_trajectory_parameter(const STD_string ¶meter_label, const STD_string &value)
float get_flipangle_corr_factor() const
OdinPulse & set_pulse_gain()
OdinPulse(const STD_string &pulse_label="unnamedOdinPulse", bool interactive=false)
double get_spatial_offset(direction direction) const
funcMode get_dim_mode() const
OdinPulse(const OdinPulse &pulse)
OdinPulse & use_min_spat_resolution(bool flag)
pulseType get_pulse_type() const
STD_string get_filter() const
OdinPulse & set_Tp(double duration)
OdinPulse & set_shape(const STD_string &shapeval)
double get_spat_resolution() const
STD_string get_shape_parameter(const STD_string ¶meter_label) const
OdinPulse & resize(unsigned int newsize)
STD_string get_filter_parameter(const STD_string ¶meter_label) const
float get_rel_center() const
unsigned int get_size() const
int write_rf_waveform(const STD_string &filename) const
bool get_consider_system_cond() const
OdinPulse & set_pulse_type(pulseType type)
OdinPulse & set_consider_Nyquist_cond(bool flag)
STD_string get_shape() const
bool get_consider_Nyquist_cond() const
double get_flipangle() const
const cvector & get_B1() const
OdinPulse & set_composite_pulse(const STD_string &cpstring)
farray get_composite_pulse_parameters() const
bool is_composite_pulse() const
OdinPulse & set_dim_mode(funcMode dmode)
virtual OdinPulse & update()
bool is_adiabatic() const
OdinPulse & set_trajectory(const STD_string &shapeval)
STD_string get_trajectory_parameter(const STD_string ¶meter_label) const
int load(const STD_string &filename, const LDRserBase &serializer=LDRserJDX())
unsigned int get_numof_composite_pulse() const
OdinPulse & set_nucleus(const STD_string &nucleusname)
OdinPulse & set_filter_parameter(const STD_string ¶meter_label, const STD_string &value)
OdinPulse & set_field_of_excitation(double fox)
const fvector & get_Grad(direction channel) const
double get_pulse_gain() const
int load_rf_waveform(const STD_string &filename)
OdinPulse & set_shape_parameter(const STD_string ¶meter_label, const STD_string &value)
OdinPulse & set_spat_resolution(double sigma)
STD_string get_nucleus() const
Virtual Sample for Simulation.