Diana Software
Public Member Functions | Private Member Functions | Private Attributes | List of all members
QMultiChannelDecorrelatorOF Class Reference

class to perform multichannel complex decorrelation of single channel waveforms using also optimum filter More...

Inheritance diagram for QMultiChannelDecorrelatorOF:
QMultiChannelDecorrelator

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 QChannelCovariancefCovarianceMatrix
 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...
 

Detailed Description

class to perform multichannel complex decorrelation of single channel waveforms using also optimum filter

Author
Marco Vignati

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.

Constructor & Destructor Documentation

◆ QMultiChannelDecorrelatorOF() [1/2]

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

Parameters
channelsChannels to be merged
covmultichannel complex covariance matrix
averagePulsesaverage pulses of channels

Definition at line 14 of file QMultiChannelDecorrelatorOF.cc.

References DianaThrow, err, fAveragePulses, QERR_OUT_OF_RANGE, and QMultiChannelDecorrelator::SetSideChannels().

◆ QMultiChannelDecorrelatorOF() [2/2]

QMultiChannelDecorrelatorOF::QMultiChannelDecorrelatorOF ( const int  chan,
const QChannelCovariance cov,
const Diana::QVector &  averagePulse 
)

ctor, by default all channels are used to decorrelate

Parameters
chanChannel to be decorrlated
covmultichannel complex covariance matrix
averagePulseaverage pulse of chan

Definition at line 7 of file QMultiChannelDecorrelatorOF.cc.

References fAveragePulses, and QMultiChannelDecorrelator::SetSideChannels().

◆ ~QMultiChannelDecorrelatorOF()

QMultiChannelDecorrelatorOF::~QMultiChannelDecorrelatorOF ( )
inline

dtor

Definition at line 32 of file QMultiChannelDecorrelatorOF.hh.

Member Function Documentation

◆ Filter()

void QMultiChannelDecorrelatorOF::Filter ( const std::vector< const Diana::QVector * > &  inputs,
const std::vector< const Diana::QVector * > &  sideInputs,
Diana::QVector &  output 
) const
virtual

◆ GetAveragePulse()

const Diana::QVector & QMultiChannelDecorrelatorOF::GetAveragePulse ( const int  chan) const

◆ Init()

void QMultiChannelDecorrelatorOF::Init ( const std::vector< int > &  allChannels)
privatevirtual

Member Data Documentation

◆ fAveragePulses

std::vector<Diana::QVector> QMultiChannelDecorrelatorOF::fAveragePulses
private

average pulses corresponding to fChannels

Definition at line 43 of file QMultiChannelDecorrelatorOF.hh.

Referenced by GetAveragePulse(), Init(), and QMultiChannelDecorrelatorOF().

◆ fNorm

double QMultiChannelDecorrelatorOF::fNorm
private

filter normalization

Definition at line 48 of file QMultiChannelDecorrelatorOF.hh.

Referenced by Filter(), and Init().

◆ fShift

int QMultiChannelDecorrelatorOF::fShift
private

filter original -delay

Definition at line 46 of file QMultiChannelDecorrelatorOF.hh.

Referenced by Filter(), and Init().


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