![]() |
Diana Software
|
Dual component optimum filter. More...
Public Member Functions | |
| QBiComponentOptimumFilter (const Diana::QVector &ap1, const Diana::QVector &ap2, const Diana::QVector &an, size_t maxJitter, bool diff=false) | |
| constructor More... | |
| virtual | ~QBiComponentOptimumFilter () |
| double | GetFilteredNoiseRMS1 () const |
| expected noise rms on filtered comp. 1 More... | |
| double | GetFilteredNoiseRMS2 () const |
| expected noise rms on filtered comp. 1 More... | |
| const std::vector< int > & | GetJitters () const |
| get array of jitters. They range between (-maxJitter,+maxJitter), 2 extra jitters on both sides are given to check that the chi^2 is at minimum More... | |
| QError | Filter (const Diana::QVector &p) |
| filter p. In case of failure an error is returned. More... | |
| void | GetFiltered (Diana::QVector &f1, Diana::QVector &f2) const |
| get filtered waveforms. if Filter()==QERR_SIZE_NOT_MATCH throws the error More... | |
| const std::vector< double > & | GetChiSquareWithJitter () const |
| get chi square as a function of jitter, same indexing of GetJitters(). if Filter()==QERR_SIZE_NOT_MATH throws the error More... | |
| int | GetJitterAtMinimum () const |
| get jitter at the minimum of the chi square. if Filter()!=QERR_SUCCESS throw the error More... | |
| double | GetChiSquareAtMinimium () const |
| get chi square value at its minimum, if Filter()!=QERR_SUCCESS throw the error More... | |
| void | GetAmplitude (double &a1, double &a2, double &integral) const |
| get amplitudes at chi^2 minimum. if Filter()!=QERR_SUCCESS throws the error More... | |
| QError | GetInterpolated (double &jitter, double &a1, double &a2, double &integral) const |
| get values at interpolated chi^2 minimum. Three points around the minimum are used for a parabolic interpolation. if Filter()!=QERR_SUCCESS throws the error More... | |
| Diana::QVector | GetFitFunction (const double jitter, const double a1, const double a2) const |
Private Member Functions | |
| Diana::QVector | NormalizeVector (const Diana::QVector &vec) const |
| void | BuildFilter (const Diana::QVector &ap1, const Diana::QVector &ap2) |
| QError | ComputeAmplitude (const Diana::QVectorC &transformed) |
| std::vector< double > | ChiSquare (const Diana::QVectorC &p, const Diana::QVector &ap1Filtered, const Diana::QVector &ap2Filtered) const |
Private Attributes | |
| QError | fCheck |
| size_t | fSize |
| bool | fIsDiff |
| int | fMaxJitter |
| Diana::QRealComplexFFT * | fTransformer |
| Diana::QVectorC | fFilter1 |
| Diana::QVectorC | fFilter2 |
| Diana::QVector | fAverageNoise |
| std::vector< int > | fJitters |
| std::vector< Diana::QVectorC > | fAveragePulse1Shifted |
| std::vector< Diana::QVectorC > | fAveragePulse2Shifted |
| Diana::QVector | fAveragePulse1 |
| Diana::QVector | fAveragePulse2 |
| Diana::QVector | fFiltered1 |
| Diana::QVector | fFiltered2 |
| std::vector< double > | fChiSquareWithJitter |
| int | fOptimumJitter |
| double | fAvgPulseIntegral1 |
| double | fAvgPulseIntegral2 |
| double | fAmplitude1 |
| double | fAmplitude2 |
| double | fFilteredRMS1 |
| double | fFilteredRMS2 |
Dual component optimum filter.
Definition at line 17 of file QBiComponentOptimumFilter.hh.
| QBiComponentOptimumFilter::QBiComponentOptimumFilter | ( | const Diana::QVector & | ap1, |
| const Diana::QVector & | ap2, | ||
| const Diana::QVector & | an, | ||
| size_t | maxJitter, | ||
| bool | diff = false |
||
| ) |
constructor
| ap1 | Average pulse of comp. 1 |
| ap2 | Average pulse of comp. 1 |
| an | Average noise power spectrum |
| maxJitter | maximum jitter (samples) allowed for the filtered pulse with respect to average pulses. |
| diff | apply derivative filter to avoid boundary effects when ap does not return to the baseline. |
Definition at line 14 of file QBiComponentOptimumFilter.cc.
References an(), ap2, BuildFilter(), cos(), DianaThrow, err, fAverageNoise, fAveragePulse1, fAveragePulse2, fAvgPulseIntegral1, fAvgPulseIntegral2, fCheck, fIsDiff, fSize, fTransformer, NormalizeVector(), QERR_SIZE_NOT_MATCH, and QERR_UNKNOWN_ERR.
|
virtual |
Definition at line 52 of file QBiComponentOptimumFilter.cc.
References fTransformer.
|
private |
Definition at line 171 of file QBiComponentOptimumFilter.cc.
References ap2, EXTRA_JITTER, fAverageNoise, fAveragePulse1Shifted, fAveragePulse2Shifted, fFilter1, fFilter2, fFilteredRMS1, fFilteredRMS2, fJitters, fMaxJitter, fTransformer, and Re().
Referenced by QBiComponentOptimumFilter().
|
private |
Definition at line 243 of file QBiComponentOptimumFilter.cc.
References fAverageNoise, fAveragePulse1Shifted, fAveragePulse2Shifted, fJitters, and fSize.
Referenced by ComputeAmplitude().
|
private |
Definition at line 221 of file QBiComponentOptimumFilter.cc.
References ChiSquare(), err, EXTRA_JITTER, fAmplitude1, fAmplitude2, fChiSquareWithJitter, fFiltered1, fFiltered2, fJitters, fOptimumJitter, fSize, and QERR_SUCCESS.
Referenced by Filter().
| QError QBiComponentOptimumFilter::Filter | ( | const Diana::QVector & | p | ) |
filter p. In case of failure an error is returned.
Definition at line 60 of file QBiComponentOptimumFilter.cc.
References ComputeAmplitude(), err, fCheck, fFilter1, fFilter2, fFiltered1, fFiltered2, fIsDiff, fSize, fTransformer, QERR_SIZE_NOT_MATCH, and QERR_SUCCESS.
| void QBiComponentOptimumFilter::GetAmplitude | ( | double & | a1, |
| double & | a2, | ||
| double & | integral | ||
| ) | const |
get amplitudes at chi^2 minimum. if Filter()!=QERR_SUCCESS throws the error
Definition at line 111 of file QBiComponentOptimumFilter.cc.
References DianaThrow, fAmplitude1, fAmplitude2, fAvgPulseIntegral1, fAvgPulseIntegral2, fCheck, and QERR_SUCCESS.
| double QBiComponentOptimumFilter::GetChiSquareAtMinimium | ( | ) | const |
get chi square value at its minimum, if Filter()!=QERR_SUCCESS throw the error
Definition at line 105 of file QBiComponentOptimumFilter.cc.
References DianaThrow, fCheck, fChiSquareWithJitter, fOptimumJitter, and QERR_SUCCESS.
| const std::vector< double > & QBiComponentOptimumFilter::GetChiSquareWithJitter | ( | ) | const |
get chi square as a function of jitter, same indexing of GetJitters(). if Filter()==QERR_SIZE_NOT_MATH throws the error
Definition at line 93 of file QBiComponentOptimumFilter.cc.
References DianaThrow, fCheck, fChiSquareWithJitter, and QERR_SIZE_NOT_MATCH.
| void QBiComponentOptimumFilter::GetFiltered | ( | Diana::QVector & | f1, |
| Diana::QVector & | f2 | ||
| ) | const |
get filtered waveforms. if Filter()==QERR_SIZE_NOT_MATCH throws the error
Definition at line 87 of file QBiComponentOptimumFilter.cc.
References DianaThrow, fCheck, fFiltered1, fFiltered2, and QERR_SIZE_NOT_MATCH.
|
inline |
expected noise rms on filtered comp. 1
Definition at line 35 of file QBiComponentOptimumFilter.hh.
References fFilteredRMS1.
|
inline |
expected noise rms on filtered comp. 1
Definition at line 38 of file QBiComponentOptimumFilter.hh.
References fFilteredRMS2.
| QVector QBiComponentOptimumFilter::GetFitFunction | ( | const double | jitter, |
| const double | a1, | ||
| const double | a2 | ||
| ) | const |
Definition at line 262 of file QBiComponentOptimumFilter.cc.
References fAveragePulse1, and fAveragePulse2.
| QError QBiComponentOptimumFilter::GetInterpolated | ( | double & | jitter, |
| double & | a1, | ||
| double & | a2, | ||
| double & | integral | ||
| ) | const |
get values at interpolated chi^2 minimum. Three points around the minimum are used for a parabolic interpolation. if Filter()!=QERR_SUCCESS throws the error
Definition at line 119 of file QBiComponentOptimumFilter.cc.
References DianaThrow, err, fAvgPulseIntegral1, fAvgPulseIntegral2, fCheck, fChiSquareWithJitter, fFiltered1, fFiltered2, fJitters, fOptimumJitter, fSize, QERR_OUT_OF_RANGE, and QERR_SUCCESS.
| int QBiComponentOptimumFilter::GetJitterAtMinimum | ( | ) | const |
get jitter at the minimum of the chi square. if Filter()!=QERR_SUCCESS throw the error
Definition at line 99 of file QBiComponentOptimumFilter.cc.
References DianaThrow, fCheck, fJitters, fOptimumJitter, and QERR_SUCCESS.
|
inline |
get array of jitters. They range between (-maxJitter,+maxJitter), 2 extra jitters on both sides are given to check that the chi^2 is at minimum
Definition at line 42 of file QBiComponentOptimumFilter.hh.
References fJitters.
|
private |
Definition at line 161 of file QBiComponentOptimumFilter.cc.
References vec.
Referenced by QBiComponentOptimumFilter().
|
private |
Definition at line 92 of file QBiComponentOptimumFilter.hh.
Referenced by ComputeAmplitude(), and GetAmplitude().
|
private |
Definition at line 93 of file QBiComponentOptimumFilter.hh.
Referenced by ComputeAmplitude(), and GetAmplitude().
|
private |
Definition at line 79 of file QBiComponentOptimumFilter.hh.
Referenced by BuildFilter(), ChiSquare(), and QBiComponentOptimumFilter().
|
private |
Definition at line 83 of file QBiComponentOptimumFilter.hh.
Referenced by GetFitFunction(), and QBiComponentOptimumFilter().
|
private |
Definition at line 81 of file QBiComponentOptimumFilter.hh.
Referenced by BuildFilter(), and ChiSquare().
|
private |
Definition at line 83 of file QBiComponentOptimumFilter.hh.
Referenced by GetFitFunction(), and QBiComponentOptimumFilter().
|
private |
Definition at line 82 of file QBiComponentOptimumFilter.hh.
Referenced by BuildFilter(), and ChiSquare().
|
private |
Definition at line 90 of file QBiComponentOptimumFilter.hh.
Referenced by GetAmplitude(), GetInterpolated(), and QBiComponentOptimumFilter().
|
private |
Definition at line 91 of file QBiComponentOptimumFilter.hh.
Referenced by GetAmplitude(), GetInterpolated(), and QBiComponentOptimumFilter().
|
private |
Definition at line 70 of file QBiComponentOptimumFilter.hh.
Referenced by Filter(), GetAmplitude(), GetChiSquareAtMinimium(), GetChiSquareWithJitter(), GetFiltered(), GetInterpolated(), GetJitterAtMinimum(), and QBiComponentOptimumFilter().
|
private |
Definition at line 88 of file QBiComponentOptimumFilter.hh.
Referenced by ComputeAmplitude(), GetChiSquareAtMinimium(), GetChiSquareWithJitter(), and GetInterpolated().
|
private |
Definition at line 76 of file QBiComponentOptimumFilter.hh.
Referenced by BuildFilter(), and Filter().
|
private |
Definition at line 77 of file QBiComponentOptimumFilter.hh.
Referenced by BuildFilter(), and Filter().
|
private |
Definition at line 86 of file QBiComponentOptimumFilter.hh.
Referenced by ComputeAmplitude(), Filter(), GetFiltered(), and GetInterpolated().
|
private |
Definition at line 87 of file QBiComponentOptimumFilter.hh.
Referenced by ComputeAmplitude(), Filter(), GetFiltered(), and GetInterpolated().
|
private |
Definition at line 94 of file QBiComponentOptimumFilter.hh.
Referenced by BuildFilter(), and GetFilteredNoiseRMS1().
|
private |
Definition at line 95 of file QBiComponentOptimumFilter.hh.
Referenced by BuildFilter(), and GetFilteredNoiseRMS2().
|
private |
Definition at line 72 of file QBiComponentOptimumFilter.hh.
Referenced by Filter(), and QBiComponentOptimumFilter().
|
private |
Definition at line 80 of file QBiComponentOptimumFilter.hh.
Referenced by BuildFilter(), ChiSquare(), ComputeAmplitude(), GetInterpolated(), GetJitterAtMinimum(), and GetJitters().
|
private |
Definition at line 73 of file QBiComponentOptimumFilter.hh.
Referenced by BuildFilter().
|
private |
Definition at line 89 of file QBiComponentOptimumFilter.hh.
Referenced by ComputeAmplitude(), GetChiSquareAtMinimium(), GetInterpolated(), and GetJitterAtMinimum().
|
private |
Definition at line 71 of file QBiComponentOptimumFilter.hh.
Referenced by ChiSquare(), ComputeAmplitude(), Filter(), GetInterpolated(), and QBiComponentOptimumFilter().
|
private |
Definition at line 74 of file QBiComponentOptimumFilter.hh.
Referenced by BuildFilter(), Filter(), QBiComponentOptimumFilter(), and ~QBiComponentOptimumFilter().