31 PronyFitter(
int model_order,
int exponent_number,
int gate_beg,
int gate_end);
33 void Initialize(
int model_order,
int exponent_number,
int gate_beg,
int gate_end);
38 float GoToLevel(
float Level,
int* point,
int iterator,
int iLastPoint);
53 std::complex<float>** InvHarmoMatrix);
56 void SolveSLEGauss(std::complex<float>* x, std::complex<float>** r, std::complex<float>* b,
int n);
58 void CovarianceQRmod(
float& rho_f, std::vector<float>& a_f,
float& rho_b, std::vector<float>& a_b);
59 void CovarianceDirect(
float& rho_f, std::vector<float>& a_f,
float& rho_b, std::vector<float>& a_b);
60 float LevelBy2Points(
float X1,
float Y1,
float X2,
float Y2,
float Y0);
65 void SetWaveform(std::vector<float>& Wfm,
float ZeroLevel);
78 float GetX(
float level,
int first_sample,
int last_sample);
79 float GetX(
float level,
int first_sample,
int last_sample,
float step);
82 float GetChiSquare(
int gate_beg,
int gate_end,
int time_max);
107 std::complex<float>*
fz =
nullptr;
108 std::complex<float>*
fh =
nullptr;
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)
std::complex< float > * fz
void CalculateFitHarmonics()
std::vector< float > fFitWfm
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)
~PronyFitter()
Default destructor.
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)
std::complex< float > * fh
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)
PronyFitter()
Default constructor.
std::vector< float > fWfm
void MakeZpowerMatrix(int signal_length, std::complex< float > **output)
void SolveSLECholesky(float *x, float **a, float *b, int n)