30 PronyFitter(
int model_order,
int exponent_number,
int gate_beg,
int gate_end);
32 void Initialize(
int model_order,
int exponent_number,
int gate_beg,
int gate_end);
37 float GoToLevel(
float Level,
int *point,
int iterator,
int iLastPoint);
49 int ChooseBestSignalBeginFast(
int first_sample,
int last_sample,
int signal_length, std::complex<float> **InvHarmoMatrix);
52 void SolveSLEGauss(std::complex<float> *x, std::complex<float> **r,
53 std::complex<float> *b,
int n);
55 void CovarianceQRmod(
float &rho_f, std::vector<float> &a_f,
float &rho_b,
56 std::vector<float> &a_b);
58 std::vector<float> &a_b);
59 float LevelBy2Points(
float X1,
float Y1,
float X2,
float Y2,
float Y0);
64 void SetWaveform(std::vector<float> &Wfm,
float ZeroLevel);
77 float GetX(
float level,
int first_sample,
int last_sample);
78 float GetX(
float level,
int first_sample,
int last_sample,
float step);
81 float GetChiSquare(
int gate_beg,
int gate_end,
int time_max);
95 bool fIsDebug =
false;
105 std::vector<float> fWfm;
107 std::complex<float> *fz =
nullptr;
108 std::complex<float> *fh =
nullptr;
109 std::vector<float> fFitWfm;
void CovarianceDirect(float &rho_f, std::vector< float > &a_f, float &rho_b, std::vector< float > &a_b)
void SetSignalBegin(int SignalBeg)
int SearchSignalBeginByHarmo(int first_sample, int last_sample, int signal_length, std::complex< float > **Zpower)
void SolveSLEGauss(float *x, float **r, float *b, int n)
void CalculateFitAmplitudesFast(int signal_length, std::complex< float > **InvHarmoMatrix)
void SetExternalHarmonics(std::vector< std::complex< float > > harmonics)
void CalculateFitHarmonics()
void CovarianceQRmod(float &rho_f, std::vector< float > &a_f, float &rho_b, std::vector< float > &a_b)
float GetRSquare(int gate_beg, int gate_end)
float GetSignalBeginFromPhase()
float GoToLevel(float Level, int *point, int iterator, int iLastPoint)
void SetHarmonics(std::complex< float > *z)
void CalculateFitAmplitudes()
void SetWaveform(std::vector< float > &Wfm, float ZeroLevel)
int CalcSignalBegin(float front_time_beg_03, float front_time_end)
std::complex< float > * GetHarmonics()
int ChooseBestSignalBeginHarmonics(int first_sample, int last_sample)
void SetDebugMode(bool IsDebug)
int ChooseBestSignalBeginFast(int first_sample, int last_sample, int signal_length, std::complex< float > **InvHarmoMatrix)
std::complex< float > * GetAmplitudes()
float GetFitValue(int sample_number)
int ChooseBestSignalBegin(int first_sample, int last_sample)
int CalcSignalBeginStraight()
float GetDeltaInSample(int sample)
float GetChiSquare(int gate_beg, int gate_end, int time_max)
std::vector< float > GetFitWfm()
float GetX(float level, int first_sample, int last_sample)
void Initialize(int model_order, int exponent_number, int gate_beg, int gate_end)
float LevelBy2Points(float X1, float Y1, float X2, float Y2, float Y0)
void MakePileUpRejection(int time_max)
float GetIntegral(int gate_beg, int gate_end)
void MakeInvHarmoMatrix(int signal_length, std::complex< float > **output)
void MakeZpowerMatrix(int signal_length, std::complex< float > **output)
void SolveSLECholesky(float *x, float **a, float *b, int n)