3 #ifndef __s2_reflsim_hpp
4 #define __s2_reflsim_hpp
6 #include <s2proc/s2_poly_wave_approx.hpp>
50 typedef std::vector<S2ReflSim::AprItem> AprVector;
80 {printf (
"KinParams->info: (nmgl,t,p,k1,k2,corr)=(%d, %2.3f, %2.3f, %2.3f, %2.3f, %2.3f)\n",
84 typedef std::vector<S2ReflSim::KinParams> KPSVector;
96 typedef std::vector<CFElem> CFVector;
97 typedef std::vector<CFVector> CFMatrix;
111 void setParameters(
const Parameters ¶ms);
112 Parameters& parameters() {
return m_params;}
122 bool calcCorrField(
const std::vector<WaveField>::iterator &field_begin_it,
123 const std::vector<WaveField>::iterator &field_end_it,
131 std::vector<KinParams> &kps);
135 bool calcPolyCoeffs(
const std::vector<WaveField>::iterator &field_begin_it,
136 const std::vector<WaveField>::iterator &field_end_it,
137 std::vector<KinParams> &kps);
141 bool smoothKin(std::vector<KinParams> &kinparams,
double smooth_coeff);
143 bool smoothPolyCoeffs(std::vector<KinParams> &kinparams,
double smooth_coeff);
146 bool mfKin(std::vector<KinParams> &kinparams,
double rejection);
148 bool apriorityKin(std::vector<KinParams> &kinparams,
149 std::vector<S2ReflSim::AprItem> &apriority,
156 const std::vector<KinParams> &kin_params,
174 double t0,
double dt,
175 double p0,
double dp,
176 std::vector<KinParams> &kps);
178 void calc_kin_ranges(
double t,
double &pmn,
double &pmx);
float AmplT
Definition: trace.hpp:21
static bool nmgl_asc_t_asc_comp(const KinParams &p1, const KinParams &p2)
Trace::AmplT poly_time_base
Definition: s2_reflsim.hpp:29
double corr
Definition: s2_reflsim.hpp:59
void info() const
Definition: s2_reflsim.hpp:79
S2ReflSim::KinType kin_type
Definition: s2_reflsim.hpp:32
static bool t_asc_comp(const KinParams &p1, const KinParams &p2)
static bool t_asc_nmgl_asc_comp(const KinParams &p1, const KinParams &p2)
size_t poly_bases_num
Definition: s2_reflsim.hpp:28
static void applyKin(WaveField &field, const std::vector< KinParams > &kin_params, bool dir=true, double mul=1.)
bool mfKin(std::vector< KinParams > &kinparams, double rejection)
bool smoothKin(std::vector< KinParams > &kinparams, double smooth_coeff)
std::vector< S2ReflSim::AprItem > m_apriority_kin
Definition: s2_reflsim.hpp:169
Parameters m_params
Definition: s2_reflsim.hpp:166
Definition: s2_reflsim.hpp:9
double cmx
Definition: s2_reflsim.hpp:92
size_t tr_slide_base
Definition: s2_reflsim.hpp:24
double k2
Definition: s2_reflsim.hpp:58
Definition: wave_field.hpp:13
Definition: s2_reflsim.hpp:17
Definition: s2_reflsim.hpp:21
KinType
Definition: s2_reflsim.hpp:14
double k1
Definition: s2_reflsim.hpp:57
void setApriorityKin(std::vector< S2ReflSim::AprItem > &apriority)
Definition: s2_reflsim.hpp:115
int point_type
Definition: s2_reflsim.hpp:61
static bool t_asc_corr_desc_comp(const KinParams &p1, const KinParams &p2)
Trace::AmplT tlen
Definition: s2_reflsim.hpp:25
Trace::AmplT poly_time_win
Definition: s2_reflsim.hpp:30
int mxbn
Definition: s2_reflsim.hpp:93
bool calcCorrField(WaveField &field, std::vector< CFVector > &corr)
bool calcSim(WaveField &field, CFVector &sim_vec)
bool calcKinParams(const CFMatrix &corr, std::vector< KinParams > &kps)
bool m_ready
Definition: s2_reflsim.hpp:163
size_t poly_deg
Definition: s2_reflsim.hpp:27
bool construct_hyp(const CFMatrix &cf, double t0, double dt, double p0, double dp, std::vector< KinParams > &kps)
Definition: s2_reflsim.hpp:16
double t
Definition: s2_reflsim.hpp:55
static bool t_eq_predicator(const KinParams &p1, const KinParams &p2)
Definition: s2_reflsim.hpp:87
int nmgl
Definition: s2_reflsim.hpp:60
Definition: s2_reflsim.hpp:36
Trace::AmplT kpmx
Definition: s2_reflsim.hpp:23
Definition: s2_reflsim.hpp:53
double p
Definition: s2_reflsim.hpp:56
bool calcPolyCoeffs(const std::vector< WaveField >::iterator &field_begin_it, const std::vector< WaveField >::iterator &field_end_it, std::vector< KinParams > &kps)
Parameters getParameters()
Definition: s2_reflsim.hpp:110
double c
Definition: s2_reflsim.hpp:91