BmnRoot
Loading...
Searching...
No Matches
PsdSignalFitting::PronyFitter Class Reference

#include <PronyFitter.h>

Public Member Functions

 PronyFitter ()
 
 PronyFitter (int model_order, int exponent_number, int gate_beg, int gate_end)
 
void Initialize (int model_order, int exponent_number, int gate_beg, int gate_end)
 
 ~PronyFitter ()
 
float GoToLevel (float Level, int *point, int iterator, int iLastPoint)
 
int CalcSignalBeginStraight ()
 
int CalcSignalBegin (float front_time_beg_03, float front_time_end)
 
int ChooseBestSignalBeginHarmonics (int first_sample, int last_sample)
 
int ChooseBestSignalBegin (int first_sample, int last_sample)
 
void MakePileUpRejection (int time_max)
 
void CalculateFitHarmonics ()
 
void CalculateFitAmplitudes ()
 
void MakeInvHarmoMatrix (int signal_length, std::complex< float > **output)
 
void MakeZpowerMatrix (int signal_length, std::complex< float > **output)
 
void ResetAmplitudes ()
 
void CalculateFitAmplitudesFast (int signal_length, std::complex< float > **InvHarmoMatrix)
 
int ChooseBestSignalBeginFast (int first_sample, int last_sample, int signal_length, std::complex< float > **InvHarmoMatrix)
 
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 SolveSLEGauss (std::complex< float > *x, std::complex< float > **r, std::complex< float > *b, int n)
 
void SolveSLECholesky (float *x, float **a, float *b, int n)
 
void CovarianceQRmod (float &rho_f, std::vector< float > &a_f, float &rho_b, std::vector< float > &a_b)
 
void CovarianceDirect (float &rho_f, std::vector< float > &a_f, float &rho_b, std::vector< float > &a_b)
 
float LevelBy2Points (float X1, float Y1, float X2, float Y2, float Y0)
 
void SetDebugMode (bool IsDebug)
 
void SetWaveform (std::vector< float > &Wfm, float ZeroLevel)
 
void SetSignalBegin (int SignalBeg)
 
void SetHarmonics (std::complex< float > *z)
 
void SetExternalHarmonics (std::vector< std::complex< float > > harmonics)
 
std::complex< float > * GetHarmonics ()
 
std::complex< float > * GetAmplitudes ()
 
float GetIntegral (int gate_beg, int gate_end)
 
float GetFitValue (int sample_number)
 
float GetFitValue (float x)
 
float GetZeroLevel ()
 
float GetX (float level, int first_sample, int last_sample)
 
float GetX (float level, int first_sample, int last_sample, float step)
 
float GetRSquare (int gate_beg, int gate_end)
 
float GetRSquareSignal ()
 
float GetChiSquare (int gate_beg, int gate_end, int time_max)
 
float GetDeltaInSample (int sample)
 
float GetSignalBeginFromPhase ()
 
float GetSignalMaxTime ()
 
float GetMaxAmplitude ()
 
int GetNumberPolRoots ()
 
std::vector< float > GetFitWfm ()
 
 PronyFitter ()
 
 PronyFitter (int model_order, int exponent_number, int gate_beg, int gate_end)
 
void Initialize (int model_order, int exponent_number, int gate_beg, int gate_end)
 
 ~PronyFitter ()
 
float GoToLevel (float Level, int *point, int iterator, int iLastPoint)
 
int CalcSignalBeginStraight ()
 
int CalcSignalBegin (float front_time_beg_03, float front_time_end)
 
int ChooseBestSignalBeginHarmonics (int first_sample, int last_sample)
 
int ChooseBestSignalBegin (int first_sample, int last_sample)
 
void MakePileUpRejection (int time_max)
 
void CalculateFitHarmonics ()
 
void CalculateFitAmplitudes ()
 
void MakeInvHarmoMatrix (int signal_length, std::complex< float > **output)
 
void MakeZpowerMatrix (int signal_length, std::complex< float > **output)
 
void ResetAmplitudes ()
 
void CalculateFitAmplitudesFast (int signal_length, std::complex< float > **InvHarmoMatrix)
 
int ChooseBestSignalBeginFast (int first_sample, int last_sample, int signal_length, std::complex< float > **InvHarmoMatrix)
 
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 SolveSLEGauss (std::complex< float > *x, std::complex< float > **r, std::complex< float > *b, int n)
 
void SolveSLECholesky (float *x, float **a, float *b, int n)
 
void CovarianceQRmod (float &rho_f, std::vector< float > &a_f, float &rho_b, std::vector< float > &a_b)
 
void CovarianceDirect (float &rho_f, std::vector< float > &a_f, float &rho_b, std::vector< float > &a_b)
 
float LevelBy2Points (float X1, float Y1, float X2, float Y2, float Y0)
 
void SetDebugMode (bool IsDebug)
 
void SetWaveform (std::vector< float > &Wfm, float ZeroLevel)
 
void SetSignalBegin (int SignalBeg)
 
void SetHarmonics (std::complex< float > *z)
 
void SetExternalHarmonics (std::vector< std::complex< float > > harmonics)
 
std::complex< float > * GetHarmonics ()
 
std::complex< float > * GetAmplitudes ()
 
float GetIntegral (int gate_beg, int gate_end)
 
float GetFitValue (int sample_number)
 
float GetFitValue (float x)
 
float GetZeroLevel ()
 
float GetX (float level, int first_sample, int last_sample)
 
float GetX (float level, int first_sample, int last_sample, float step)
 
float GetRSquare (int gate_beg, int gate_end)
 
float GetRSquareSignal ()
 
float GetChiSquare (int gate_beg, int gate_end, int time_max)
 
float GetDeltaInSample (int sample)
 
float GetSignalBeginFromPhase ()
 
float GetSignalMaxTime ()
 
float GetMaxAmplitude ()
 
int GetNumberPolRoots ()
 
std::vector< float > GetFitWfm ()
 

Detailed Description

Definition at line 25 of file PronyFitter.h.

Constructor & Destructor Documentation

◆ PronyFitter() [1/4]

PsdSignalFitting::PronyFitter::PronyFitter ( )
inline

Default constructor

Definition at line 29 of file PronyFitter.h.

◆ PronyFitter() [2/4]

PronyFitter::PronyFitter ( int  model_order,
int  exponent_number,
int  gate_beg,
int  gate_end 
)

Definition at line 15 of file PronyFitter.cxx.

References Initialize().

◆ ~PronyFitter() [1/2]

PsdSignalFitting::PronyFitter::~PronyFitter ( )
inline

Default destructor

Definition at line 35 of file PronyFitter.h.

◆ PronyFitter() [3/4]

PsdSignalFitting::PronyFitter::PronyFitter ( )
inline

Default constructor

Definition at line 29 of file PronyFitter.h.

◆ PronyFitter() [4/4]

PsdSignalFitting::PronyFitter::PronyFitter ( int  model_order,
int  exponent_number,
int  gate_beg,
int  gate_end 
)

◆ ~PronyFitter() [2/2]

PsdSignalFitting::PronyFitter::~PronyFitter ( )
inline

Default destructor

Definition at line 35 of file PronyFitter.h.

Member Function Documentation

◆ CalcSignalBegin() [1/2]

int PronyFitter::CalcSignalBegin ( float  front_time_beg_03,
float  front_time_end 
)

Definition at line 82 of file PronyFitter.cxx.

Referenced by CalcSignalBeginStraight().

◆ CalcSignalBegin() [2/2]

int PsdSignalFitting::PronyFitter::CalcSignalBegin ( float  front_time_beg_03,
float  front_time_end 
)

◆ CalcSignalBeginStraight() [1/2]

int PronyFitter::CalcSignalBeginStraight ( )

Definition at line 65 of file PronyFitter.cxx.

References CalcSignalBegin(), and GoToLevel().

Referenced by WfmProcessor::ProcessWfm().

◆ CalcSignalBeginStraight() [2/2]

int PsdSignalFitting::PronyFitter::CalcSignalBeginStraight ( )

◆ CalculateFitAmplitudes() [1/2]

void PronyFitter::CalculateFitAmplitudes ( )

Definition at line 550 of file PronyFitter.cxx.

References i, and SolveSLEGauss().

Referenced by calibrate_wfm(), ChooseBestSignalBegin(), and ChooseBestSignalBeginHarmonics().

◆ CalculateFitAmplitudes() [2/2]

void PsdSignalFitting::PronyFitter::CalculateFitAmplitudes ( )

◆ CalculateFitAmplitudesFast() [1/2]

void PronyFitter::CalculateFitAmplitudesFast ( int  signal_length,
std::complex< float > **  InvHarmoMatrix 
)

Definition at line 645 of file PronyFitter.cxx.

References i.

Referenced by ChooseBestSignalBeginFast(), and WfmProcessor::ProcessWfm().

◆ CalculateFitAmplitudesFast() [2/2]

void PsdSignalFitting::PronyFitter::CalculateFitAmplitudesFast ( int  signal_length,
std::complex< float > **  InvHarmoMatrix 
)

◆ CalculateFitHarmonics() [1/2]

void PronyFitter::CalculateFitHarmonics ( )

◆ CalculateFitHarmonics() [2/2]

void PsdSignalFitting::PronyFitter::CalculateFitHarmonics ( )

◆ ChooseBestSignalBegin() [1/2]

int PronyFitter::ChooseBestSignalBegin ( int  first_sample,
int  last_sample 
)

Definition at line 957 of file PronyFitter.cxx.

References CalculateFitAmplitudes(), GetRSquare(), and SetSignalBegin().

◆ ChooseBestSignalBegin() [2/2]

int PsdSignalFitting::PronyFitter::ChooseBestSignalBegin ( int  first_sample,
int  last_sample 
)

◆ ChooseBestSignalBeginFast() [1/2]

int PronyFitter::ChooseBestSignalBeginFast ( int  first_sample,
int  last_sample,
int  signal_length,
std::complex< float > **  InvHarmoMatrix 
)

◆ ChooseBestSignalBeginFast() [2/2]

int PsdSignalFitting::PronyFitter::ChooseBestSignalBeginFast ( int  first_sample,
int  last_sample,
int  signal_length,
std::complex< float > **  InvHarmoMatrix 
)

◆ ChooseBestSignalBeginHarmonics() [1/2]

int PronyFitter::ChooseBestSignalBeginHarmonics ( int  first_sample,
int  last_sample 
)

◆ ChooseBestSignalBeginHarmonics() [2/2]

int PsdSignalFitting::PronyFitter::ChooseBestSignalBeginHarmonics ( int  first_sample,
int  last_sample 
)

◆ CovarianceDirect() [1/2]

void PronyFitter::CovarianceDirect ( float &  rho_f,
std::vector< float > &  a_f,
float &  rho_b,
std::vector< float > &  a_b 
)

Definition at line 163 of file PronyFitter.cxx.

References i, and SolveSLEGauss().

Referenced by CalculateFitHarmonics().

◆ CovarianceDirect() [2/2]

void PsdSignalFitting::PronyFitter::CovarianceDirect ( float &  rho_f,
std::vector< float > &  a_f,
float &  rho_b,
std::vector< float > &  a_b 
)

◆ CovarianceQRmod() [1/2]

void PronyFitter::CovarianceQRmod ( float &  rho_f,
std::vector< float > &  a_f,
float &  rho_b,
std::vector< float > &  a_b 
)

Definition at line 228 of file PronyFitter.cxx.

References d, delta, and i.

◆ CovarianceQRmod() [2/2]

void PsdSignalFitting::PronyFitter::CovarianceQRmod ( float &  rho_f,
std::vector< float > &  a_f,
float &  rho_b,
std::vector< float > &  a_b 
)

◆ GetAmplitudes() [1/2]

std::complex< float > * PronyFitter::GetAmplitudes ( )

Definition at line 727 of file PronyFitter.cxx.

◆ GetAmplitudes() [2/2]

std::complex< float > * PsdSignalFitting::PronyFitter::GetAmplitudes ( )

◆ GetChiSquare() [1/2]

float PronyFitter::GetChiSquare ( int  gate_beg,
int  gate_end,
int  time_max 
)

Definition at line 865 of file PronyFitter.cxx.

References i.

Referenced by calibrate_wfm().

◆ GetChiSquare() [2/2]

float PsdSignalFitting::PronyFitter::GetChiSquare ( int  gate_beg,
int  gate_end,
int  time_max 
)

◆ GetDeltaInSample() [1/2]

float PronyFitter::GetDeltaInSample ( int  sample)

Definition at line 915 of file PronyFitter.cxx.

◆ GetDeltaInSample() [2/2]

float PsdSignalFitting::PronyFitter::GetDeltaInSample ( int  sample)

◆ GetFitValue() [1/4]

float PronyFitter::GetFitValue ( float  x)

Definition at line 740 of file PronyFitter.cxx.

References GetSignalBeginFromPhase(), and i.

◆ GetFitValue() [2/4]

float PsdSignalFitting::PronyFitter::GetFitValue ( float  x)

◆ GetFitValue() [3/4]

float PronyFitter::GetFitValue ( int  sample_number)

Definition at line 734 of file PronyFitter.cxx.

Referenced by GetMaxAmplitude(), GetX(), and GetX().

◆ GetFitValue() [4/4]

float PsdSignalFitting::PronyFitter::GetFitValue ( int  sample_number)

◆ GetFitWfm() [1/2]

std::vector< float > PsdSignalFitting::PronyFitter::GetFitWfm ( )
inline

Definition at line 87 of file PronyFitter.h.

Referenced by calibrate_wfm(), and WfmProcessor::ProcessWfm().

◆ GetFitWfm() [2/2]

std::vector< float > PsdSignalFitting::PronyFitter::GetFitWfm ( )
inline

Definition at line 87 of file PronyFitter.h.

◆ GetHarmonics() [1/2]

std::complex< float > * PronyFitter::GetHarmonics ( )

Definition at line 473 of file PronyFitter.cxx.

Referenced by calibrate_wfm().

◆ GetHarmonics() [2/2]

std::complex< float > * PsdSignalFitting::PronyFitter::GetHarmonics ( )

◆ GetIntegral() [1/2]

float PronyFitter::GetIntegral ( int  gate_beg,
int  gate_end 
)

Definition at line 729 of file PronyFitter.cxx.

Referenced by calibrate_wfm(), and WfmProcessor::ProcessWfm().

◆ GetIntegral() [2/2]

float PsdSignalFitting::PronyFitter::GetIntegral ( int  gate_beg,
int  gate_end 
)

◆ GetMaxAmplitude() [1/2]

float PronyFitter::GetMaxAmplitude ( )

Definition at line 778 of file PronyFitter.cxx.

References GetFitValue(), and GetSignalMaxTime().

Referenced by WfmProcessor::ProcessWfm().

◆ GetMaxAmplitude() [2/2]

float PsdSignalFitting::PronyFitter::GetMaxAmplitude ( )

◆ GetNumberPolRoots() [1/2]

int PronyFitter::GetNumberPolRoots ( )

Definition at line 460 of file PronyFitter.cxx.

◆ GetNumberPolRoots() [2/2]

int PsdSignalFitting::PronyFitter::GetNumberPolRoots ( )

◆ GetRSquare() [1/2]

float PronyFitter::GetRSquare ( int  gate_beg,
int  gate_end 
)

◆ GetRSquare() [2/2]

float PsdSignalFitting::PronyFitter::GetRSquare ( int  gate_beg,
int  gate_end 
)

◆ GetRSquareSignal() [1/2]

float PronyFitter::GetRSquareSignal ( )

Definition at line 861 of file PronyFitter.cxx.

References GetRSquare().

◆ GetRSquareSignal() [2/2]

float PsdSignalFitting::PronyFitter::GetRSquareSignal ( )

◆ GetSignalBeginFromPhase() [1/2]

float PronyFitter::GetSignalBeginFromPhase ( )

Definition at line 768 of file PronyFitter.cxx.

Referenced by GetFitValue().

◆ GetSignalBeginFromPhase() [2/2]

float PsdSignalFitting::PronyFitter::GetSignalBeginFromPhase ( )

◆ GetSignalMaxTime() [1/2]

float PronyFitter::GetSignalMaxTime ( )

Definition at line 755 of file PronyFitter.cxx.

References log().

Referenced by GetMaxAmplitude(), and WfmProcessor::ProcessWfm().

◆ GetSignalMaxTime() [2/2]

float PsdSignalFitting::PronyFitter::GetSignalMaxTime ( )

◆ GetX() [1/4]

float PronyFitter::GetX ( float  level,
int  first_sample,
int  last_sample 
)

Definition at line 780 of file PronyFitter.cxx.

References GetFitValue(), and LevelBy2Points().

◆ GetX() [2/4]

float PsdSignalFitting::PronyFitter::GetX ( float  level,
int  first_sample,
int  last_sample 
)

◆ GetX() [3/4]

float PronyFitter::GetX ( float  level,
int  first_sample,
int  last_sample,
float  step 
)

Definition at line 806 of file PronyFitter.cxx.

References GetFitValue(), and LevelBy2Points().

◆ GetX() [4/4]

float PsdSignalFitting::PronyFitter::GetX ( float  level,
int  first_sample,
int  last_sample,
float  step 
)

◆ GetZeroLevel() [1/2]

float PronyFitter::GetZeroLevel ( )

Definition at line 753 of file PronyFitter.cxx.

Referenced by WfmProcessor::ProcessWfm().

◆ GetZeroLevel() [2/2]

float PsdSignalFitting::PronyFitter::GetZeroLevel ( )

◆ GoToLevel() [1/2]

float PronyFitter::GoToLevel ( float  Level,
int *  point,
int  iterator,
int  iLastPoint 
)

Definition at line 47 of file PronyFitter.cxx.

References LevelBy2Points().

Referenced by CalcSignalBeginStraight().

◆ GoToLevel() [2/2]

float PsdSignalFitting::PronyFitter::GoToLevel ( float  Level,
int *  point,
int  iterator,
int  iLastPoint 
)

◆ Initialize() [1/2]

void PronyFitter::Initialize ( int  model_order,
int  exponent_number,
int  gate_beg,
int  gate_end 
)

◆ Initialize() [2/2]

void PsdSignalFitting::PronyFitter::Initialize ( int  model_order,
int  exponent_number,
int  gate_beg,
int  gate_end 
)

◆ LevelBy2Points() [1/2]

float PronyFitter::LevelBy2Points ( float  X1,
float  Y1,
float  X2,
float  Y2,
float  Y0 
)

Definition at line 830 of file PronyFitter.cxx.

Referenced by GetX(), GetX(), and GoToLevel().

◆ LevelBy2Points() [2/2]

float PsdSignalFitting::PronyFitter::LevelBy2Points ( float  X1,
float  Y1,
float  X2,
float  Y2,
float  Y0 
)

◆ MakeInvHarmoMatrix() [1/2]

void PronyFitter::MakeInvHarmoMatrix ( int  signal_length,
std::complex< float > **  output 
)

◆ MakeInvHarmoMatrix() [2/2]

void PsdSignalFitting::PronyFitter::MakeInvHarmoMatrix ( int  signal_length,
std::complex< float > **  output 
)

◆ MakePileUpRejection() [1/2]

void PronyFitter::MakePileUpRejection ( int  time_max)

Definition at line 548 of file PronyFitter.cxx.

◆ MakePileUpRejection() [2/2]

void PsdSignalFitting::PronyFitter::MakePileUpRejection ( int  time_max)

◆ MakeZpowerMatrix() [1/2]

void PronyFitter::MakeZpowerMatrix ( int  signal_length,
std::complex< float > **  output 
)

Definition at line 530 of file PronyFitter.cxx.

References i.

◆ MakeZpowerMatrix() [2/2]

void PsdSignalFitting::PronyFitter::MakeZpowerMatrix ( int  signal_length,
std::complex< float > **  output 
)

◆ ResetAmplitudes() [1/2]

void PronyFitter::ResetAmplitudes ( )

Definition at line 1235 of file PronyFitter.cxx.

References i.

Referenced by ChooseBestSignalBeginFast().

◆ ResetAmplitudes() [2/2]

void PsdSignalFitting::PronyFitter::ResetAmplitudes ( )

◆ SearchSignalBeginByHarmo() [1/2]

int PronyFitter::SearchSignalBeginByHarmo ( int  first_sample,
int  last_sample,
int  signal_length,
std::complex< float > **  Zpower 
)

Definition at line 1002 of file PronyFitter.cxx.

References i.

◆ SearchSignalBeginByHarmo() [2/2]

int PsdSignalFitting::PronyFitter::SearchSignalBeginByHarmo ( int  first_sample,
int  last_sample,
int  signal_length,
std::complex< float > **  Zpower 
)

◆ SetDebugMode() [1/2]

void PsdSignalFitting::PronyFitter::SetDebugMode ( bool  IsDebug)
inline

Definition at line 63 of file PronyFitter.h.

Referenced by WfmProcessor::ProcessWfm().

◆ SetDebugMode() [2/2]

void PsdSignalFitting::PronyFitter::SetDebugMode ( bool  IsDebug)
inline

Definition at line 63 of file PronyFitter.h.

◆ SetExternalHarmonics() [1/2]

void PronyFitter::SetExternalHarmonics ( std::vector< std::complex< float > >  harmonics)

◆ SetExternalHarmonics() [2/2]

void PsdSignalFitting::PronyFitter::SetExternalHarmonics ( std::vector< std::complex< float > >  harmonics)

◆ SetHarmonics() [1/2]

void PronyFitter::SetHarmonics ( std::complex< float > *  z)

Definition at line 462 of file PronyFitter.cxx.

Referenced by CalculateFitHarmonics(), and SetExternalHarmonics().

◆ SetHarmonics() [2/2]

void PsdSignalFitting::PronyFitter::SetHarmonics ( std::complex< float > *  z)

◆ SetSignalBegin() [1/2]

void PronyFitter::SetSignalBegin ( int  SignalBeg)

◆ SetSignalBegin() [2/2]

void PsdSignalFitting::PronyFitter::SetSignalBegin ( int  SignalBeg)

◆ SetWaveform() [1/2]

void PronyFitter::SetWaveform ( std::vector< float > &  Wfm,
float  ZeroLevel 
)

Definition at line 38 of file PronyFitter.cxx.

Referenced by calibrate_wfm(), and WfmProcessor::ProcessWfm().

◆ SetWaveform() [2/2]

void PsdSignalFitting::PronyFitter::SetWaveform ( std::vector< float > &  Wfm,
float  ZeroLevel 
)

◆ SolveSLECholesky() [1/2]

void PronyFitter::SolveSLECholesky ( float *  x,
float **  a,
float *  b,
int  n 
)

Definition at line 1189 of file PronyFitter.cxx.

References i.

◆ SolveSLECholesky() [2/2]

void PsdSignalFitting::PronyFitter::SolveSLECholesky ( float *  x,
float **  a,
float *  b,
int  n 
)

◆ SolveSLEGauss() [1/4]

void PronyFitter::SolveSLEGauss ( float *  x,
float **  r,
float *  b,
int  n 
)

Definition at line 1057 of file PronyFitter.cxx.

References i.

Referenced by CalculateFitAmplitudes(), and CovarianceDirect().

◆ SolveSLEGauss() [2/4]

void PsdSignalFitting::PronyFitter::SolveSLEGauss ( float *  x,
float **  r,
float *  b,
int  n 
)

◆ SolveSLEGauss() [3/4]

void PronyFitter::SolveSLEGauss ( std::complex< float > *  x,
std::complex< float > **  r,
std::complex< float > *  b,
int  n 
)

Definition at line 1122 of file PronyFitter.cxx.

References i.

◆ SolveSLEGauss() [4/4]

void PsdSignalFitting::PronyFitter::SolveSLEGauss ( std::complex< float > *  x,
std::complex< float > **  r,
std::complex< float > *  b,
int  n 
)

The documentation for this class was generated from the following files: