![]() |
Diana Software
|
class to perform multichannel complex decorrelation of single channel waveforms using also optimum filter More...
Public Member Functions | |
| QMultiChannelDecorrelatorOF (const std::vector< int > &channels, const QChannelCovariance *cov, const std::vector< Diana::QVector > &averagePulses) | |
| ctor, by default all channels are used to decorrelate More... | |
| QMultiChannelDecorrelatorOF (const int chan, const QChannelCovariance *cov, const Diana::QVector &averagePulse) | |
| ctor, by default all channels are used to decorrelate More... | |
| ~QMultiChannelDecorrelatorOF () | |
| dtor More... | |
| const Diana::QVector & | GetAveragePulse (const int chan) const |
| get average pulse More... | |
| void | Filter (const std::vector< const Diana::QVector * > &inputs, const std::vector< const Diana::QVector * > &sideInputs, Diana::QVector &output) const |
| filter, not implemented yet More... | |
Public Member Functions inherited from QMultiChannelDecorrelator | |
| QMultiChannelDecorrelator (const int chan, const QChannelCovariance *cov) | |
| ctor, by default all channels are used to decorrelate More... | |
| virtual | ~QMultiChannelDecorrelator () |
| dtor More... | |
| void | SetSideChannels (const std::vector< int > &channels) |
| chose subset of channels to use for decorrelation More... | |
| const std::vector< int > & | GetSideChannels () const |
| get subset of channels to use for decorrelation More... | |
| const Diana::QVector & | GetOriginalPowerSpectrum () const |
| get original average power spectrum of this channel More... | |
| const Diana::QVector & | GetFilteredPowerSpectrum () const |
| get average filtered spectrum of this channel More... | |
| virtual void | Filter (const Diana::QVector &input, const std::vector< const Diana::QVector * > &sideInputs, Diana::QVector &output) const |
| decorrelate input QVector from this channel using sideInputs QVectors from sideChannels, ordered as they were provieded in SetSideChannels(). If sideInputs.size() is different from the expected size then output is empty More... | |
| const std::vector< int > & | GetChannels () const |
| get main channels More... | |
| void | SetScale (double scale) |
| scale power spectra and filtered samples More... | |
| double | GetOriginalResolution () const |
| get original resolution More... | |
| double | GetFilteredResolution () const |
| get filtered resolution More... | |
Private Member Functions | |
| void | Init (const std::vector< int > &allChannels) |
| get expected resolution after filtering More... | |
Private Attributes | |
| std::vector< Diana::QVector > | fAveragePulses |
| average pulses corresponding to fChannels More... | |
| int | fShift |
| filter original -delay More... | |
| double | fNorm |
| filter normalization More... | |
Additional Inherited Members | |
Protected Member Functions inherited from QMultiChannelDecorrelator | |
| QMultiChannelDecorrelator (const int chan, const QChannelCovariance *cov, bool init) | |
| which inhibits initialization (used by inheriting classes) More... | |
| QMultiChannelDecorrelator (const std::vector< int > &channels, const QChannelCovariance *cov, bool init) | |
| which inhibits initialization (used by inheriting classes) More... | |
| std::vector< int >::iterator | FindChannel (std::vector< int > &channels, const int chan) |
| find if chan is contained in channels otherwise throw exception More... | |
| double | ComputeResolution (const Diana::QVector &powerSpectrum) const |
| compute resolution More... | |
Protected Attributes inherited from QMultiChannelDecorrelator | |
| std::vector< int > | fChannels |
| number of this channel More... | |
| const QChannelCovariance * | fCovarianceMatrix |
| pointer to global covariance matrix More... | |
| std::vector< int > | fAvailableSideChannels |
| all side channels available in fCovarianceMatrix (not only the selected ones) More... | |
| Diana::QRealComplexFFT * | fTransformer |
| FFT engine. More... | |
| std::vector< int > | fSideChannels |
| selected side channels More... | |
| std::vector< Diana::QVectorC > | fWeights |
| coefficients used in decorrelation More... | |
| Diana::QVector | fOriginalPowerSpectrum |
| original power spectrum of this channel More... | |
| Diana::QVector | fDecorrelatedPowerSpectrum |
| decorrelated power spectrum of this channel More... | |
| double | fScale |
| scale output More... | |
| double | fOriginalResolution |
| original resolution More... | |
| double | fFilteredResolution |
| expected filtered resolution More... | |
class to perform multichannel complex decorrelation of single channel waveforms using also optimum filter
Channels can be combined, e.g. thermistors on same channel. The output will be a single waveform combining "optimally" all channels.
Definition at line 15 of file QMultiChannelDecorrelatorOF.hh.
| QMultiChannelDecorrelatorOF::QMultiChannelDecorrelatorOF | ( | const std::vector< int > & | channels, |
| const QChannelCovariance * | cov, | ||
| const std::vector< Diana::QVector > & | averagePulses | ||
| ) |
ctor, by default all channels are used to decorrelate
| channels | Channels to be merged |
| cov | multichannel complex covariance matrix |
| averagePulses | average pulses of channels |
Definition at line 14 of file QMultiChannelDecorrelatorOF.cc.
References DianaThrow, err, fAveragePulses, QERR_OUT_OF_RANGE, and QMultiChannelDecorrelator::SetSideChannels().
| QMultiChannelDecorrelatorOF::QMultiChannelDecorrelatorOF | ( | const int | chan, |
| const QChannelCovariance * | cov, | ||
| const Diana::QVector & | averagePulse | ||
| ) |
ctor, by default all channels are used to decorrelate
| chan | Channel to be decorrlated |
| cov | multichannel complex covariance matrix |
| averagePulse | average pulse of chan |
Definition at line 7 of file QMultiChannelDecorrelatorOF.cc.
References fAveragePulses, and QMultiChannelDecorrelator::SetSideChannels().
|
inline |
dtor
Definition at line 32 of file QMultiChannelDecorrelatorOF.hh.
|
virtual |
filter, not implemented yet
Reimplemented from QMultiChannelDecorrelator.
Definition at line 103 of file QMultiChannelDecorrelatorOF.cc.
References QMultiChannelDecorrelator::fCovarianceMatrix, fNorm, QMultiChannelDecorrelator::fScale, fShift, QMultiChannelDecorrelator::fTransformer, QMultiChannelDecorrelator::fWeights, and QChannelCovariance::GetNFreq().
Referenced by Init().
| const Diana::QVector & QMultiChannelDecorrelatorOF::GetAveragePulse | ( | const int | chan | ) | const |
get average pulse
Definition at line 28 of file QMultiChannelDecorrelatorOF.cc.
References DianaThrow, err, fAveragePulses, QMultiChannelDecorrelator::fChannels, and QERR_OUT_OF_RANGE.
|
privatevirtual |
get expected resolution after filtering
Init
Reimplemented from QMultiChannelDecorrelator.
Definition at line 41 of file QMultiChannelDecorrelatorOF.cc.
References QMultiChannelDecorrelator::ComputeResolution(), fAveragePulses, QMultiChannelDecorrelator::fChannels, QMultiChannelDecorrelator::fCovarianceMatrix, QMultiChannelDecorrelator::fDecorrelatedPowerSpectrum, QMultiChannelDecorrelator::fFilteredResolution, Filter(), fNorm, QMultiChannelDecorrelator::fOriginalPowerSpectrum, QMultiChannelDecorrelator::fOriginalResolution, QMultiChannelDecorrelator::fScale, fShift, QMultiChannelDecorrelator::fTransformer, QMultiChannelDecorrelator::fWeights, QChannelCovariance::GetCovariance(), QChannelCovariance::GetNFreq(), QChannelCovariance::GetSubMatrix(), max, and maxpos.
|
private |
average pulses corresponding to fChannels
Definition at line 43 of file QMultiChannelDecorrelatorOF.hh.
Referenced by GetAveragePulse(), Init(), and QMultiChannelDecorrelatorOF().
|
private |
filter normalization
Definition at line 48 of file QMultiChannelDecorrelatorOF.hh.
|
private |
filter original -delay
Definition at line 46 of file QMultiChannelDecorrelatorOF.hh.