BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
RLDeconvolutor Class Reference

Class to apply Richardson-Lucy deconvolution. More...

#include <RLDeconvolutor.h>

Public Member Functions

 RLDeconvolutor (const std::vector< float > &y, const std::vector< float > &kernel_, const float R2threshold_, const int max_iterations_)
void setR2threshold (float thr)
void setMaxIterations (int max)
bool runDeconvolution ()
const std::vector< std::pair< size_t, float > > & getSignalInfo () const
const std::vector< std::vector< float > > & getSignalDeconvolution () const
const std::vector< std::vector< float > > & getSignalDecomposition () const
std::vector< float > getWfmApproximation () const
const std::vector< float > & getR2 () const
 RLDeconvolutor (const std::vector< float > &y, const std::vector< float > &kernel_, const float R2threshold_, const int max_iterations_)
void setR2threshold (float thr)
void setMaxIterations (int max)
bool runDeconvolution ()
const std::vector< std::pair< size_t, float > > & getSignalInfo () const
const std::vector< std::vector< float > > & getSignalDeconvolution () const
const std::vector< std::vector< float > > & getSignalDecomposition () const
std::vector< float > getWfmApproximation () const
const std::vector< float > & getR2 () const

Private Member Functions

std::vector< float > convolution (const std::vector< float > &signal, const std::vector< float > &kern) const
std::vector< float > constrainOperator (const std::vector< float > &data_array)
std::vector< float > elementwiseMultiplication (const std::vector< float > &vec1, const std::vector< float > &vec2) const
std::vector< float > elementwiseDivision (const std::vector< float > &vec1, const std::vector< float > &vec2) const
float R2score (const std::vector< float > &true_values, const std::vector< float > &predicted_values) const
std::vector< size_t > findMaximaIndices (const std::vector< float > &vec) const
std::vector< size_t > findCamelPoints () const
std::vector< float > getSubvector (const std::vector< float > &vec, size_t start, size_t end) const
void extractSignalInfo ()
std::vector< float > convolution (const std::vector< float > &signal, const std::vector< float > &kern) const
std::vector< float > constrainOperator (const std::vector< float > &data_array)
std::vector< float > elementwiseMultiplication (const std::vector< float > &vec1, const std::vector< float > &vec2) const
std::vector< float > elementwiseDivision (const std::vector< float > &vec1, const std::vector< float > &vec2) const
float R2score (const std::vector< float > &true_values, const std::vector< float > &predicted_values) const
std::vector< size_t > findMaximaIndices (const std::vector< float > &vec) const
std::vector< size_t > findCamelPoints () const
std::vector< float > getSubvector (const std::vector< float > &vec, size_t start, size_t end) const
void extractSignalInfo ()

Private Attributes

std::vector< float > blurred_signal
std::vector< float > deconvolved
std::vector< float > kernel
std::vector< float > reversed_kernel
std::vector< float > R2
float R2threshold
int max_iterations
bool converged
std::vector< size_t > camel_points
std::vector< std::pair< size_t, float > > signal_info
std::vector< std::vector< float > > signal_deconvolved
std::vector< std::vector< float > > signal_decomposed

Static Private Attributes

static constexpr float R2default = 2.0

Detailed Description

Author
Nikolay Karpushkin (nkarp.nosp@m.ushk.nosp@m.in@ma.nosp@m.il.r.nosp@m.u)

Definition at line 19 of file RLDeconvolutor.h.

Constructor & Destructor Documentation

◆ RLDeconvolutor() [1/2]

RLDeconvolutor::RLDeconvolutor ( const std::vector< float > & y,
const std::vector< float > & kernel_,
const float R2threshold_,
const int max_iterations_ )
inline

◆ RLDeconvolutor() [2/2]

RLDeconvolutor::RLDeconvolutor ( const std::vector< float > & y,
const std::vector< float > & kernel_,
const float R2threshold_,
const int max_iterations_ )
inline

Member Function Documentation

◆ constrainOperator() [1/2]

std::vector< float > RLDeconvolutor::constrainOperator ( const std::vector< float > & data_array)
inlineprivate

Definition at line 130 of file RLDeconvolutor.h.

References i.

Referenced by runDeconvolution().

Here is the caller graph for this function:

◆ constrainOperator() [2/2]

std::vector< float > RLDeconvolutor::constrainOperator ( const std::vector< float > & data_array)
inlineprivate

Definition at line 130 of file RLDeconvolutor.h.

References i.

◆ convolution() [1/2]

std::vector< float > RLDeconvolutor::convolution ( const std::vector< float > & signal,
const std::vector< float > & kern ) const
inlineprivate

Definition at line 110 of file RLDeconvolutor.h.

References i, and signal().

Referenced by extractSignalInfo(), getWfmApproximation(), and runDeconvolution().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ convolution() [2/2]

std::vector< float > RLDeconvolutor::convolution ( const std::vector< float > & signal,
const std::vector< float > & kern ) const
inlineprivate

Definition at line 110 of file RLDeconvolutor.h.

References i, and signal().

Here is the call graph for this function:

◆ elementwiseDivision() [1/2]

std::vector< float > RLDeconvolutor::elementwiseDivision ( const std::vector< float > & vec1,
const std::vector< float > & vec2 ) const
inlineprivate

Definition at line 158 of file RLDeconvolutor.h.

References i.

Referenced by runDeconvolution().

Here is the caller graph for this function:

◆ elementwiseDivision() [2/2]

std::vector< float > RLDeconvolutor::elementwiseDivision ( const std::vector< float > & vec1,
const std::vector< float > & vec2 ) const
inlineprivate

Definition at line 158 of file RLDeconvolutor.h.

References i.

◆ elementwiseMultiplication() [1/2]

std::vector< float > RLDeconvolutor::elementwiseMultiplication ( const std::vector< float > & vec1,
const std::vector< float > & vec2 ) const
inlineprivate

Definition at line 147 of file RLDeconvolutor.h.

References i.

Referenced by runDeconvolution().

Here is the caller graph for this function:

◆ elementwiseMultiplication() [2/2]

std::vector< float > RLDeconvolutor::elementwiseMultiplication ( const std::vector< float > & vec1,
const std::vector< float > & vec2 ) const
inlineprivate

Definition at line 147 of file RLDeconvolutor.h.

References i.

◆ extractSignalInfo() [1/2]

void RLDeconvolutor::extractSignalInfo ( )
inlineprivate

Definition at line 233 of file RLDeconvolutor.h.

References camel_points, convolution(), deconvolved, getSubvector(), i, kernel, signal_decomposed, signal_deconvolved, and signal_info.

Referenced by runDeconvolution().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ extractSignalInfo() [2/2]

void RLDeconvolutor::extractSignalInfo ( )
inlineprivate

Definition at line 233 of file RLDeconvolutor.h.

References camel_points, convolution(), deconvolved, getSubvector(), i, kernel, signal_decomposed, signal_deconvolved, and signal_info.

Here is the call graph for this function:

◆ findCamelPoints() [1/2]

std::vector< size_t > RLDeconvolutor::findCamelPoints ( ) const
inlineprivate

Definition at line 202 of file RLDeconvolutor.h.

References deconvolved, findMaximaIndices(), getSubvector(), and i.

Referenced by runDeconvolution().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ findCamelPoints() [2/2]

std::vector< size_t > RLDeconvolutor::findCamelPoints ( ) const
inlineprivate

Definition at line 202 of file RLDeconvolutor.h.

References deconvolved, findMaximaIndices(), getSubvector(), and i.

Here is the call graph for this function:

◆ findMaximaIndices() [1/2]

std::vector< size_t > RLDeconvolutor::findMaximaIndices ( const std::vector< float > & vec) const
inlineprivate

Definition at line 187 of file RLDeconvolutor.h.

References i.

Referenced by findCamelPoints().

Here is the caller graph for this function:

◆ findMaximaIndices() [2/2]

std::vector< size_t > RLDeconvolutor::findMaximaIndices ( const std::vector< float > & vec) const
inlineprivate

Definition at line 187 of file RLDeconvolutor.h.

References i.

◆ getR2() [1/2]

const std::vector< float > & RLDeconvolutor::getR2 ( ) const
inline

Definition at line 91 of file RLDeconvolutor.h.

References R2.

Referenced by BmnHodoRaw2Digit::FillEvent().

Here is the caller graph for this function:

◆ getR2() [2/2]

const std::vector< float > & RLDeconvolutor::getR2 ( ) const
inline

Definition at line 91 of file RLDeconvolutor.h.

References R2.

◆ getSignalDecomposition() [1/2]

const std::vector< std::vector< float > > & RLDeconvolutor::getSignalDecomposition ( ) const
inline

Definition at line 87 of file RLDeconvolutor.h.

References signal_decomposed.

Referenced by BmnHodoRaw2Digit::FillEvent().

Here is the caller graph for this function:

◆ getSignalDecomposition() [2/2]

const std::vector< std::vector< float > > & RLDeconvolutor::getSignalDecomposition ( ) const
inline

Definition at line 87 of file RLDeconvolutor.h.

References signal_decomposed.

◆ getSignalDeconvolution() [1/2]

const std::vector< std::vector< float > > & RLDeconvolutor::getSignalDeconvolution ( ) const
inline

Definition at line 84 of file RLDeconvolutor.h.

References signal_deconvolved.

◆ getSignalDeconvolution() [2/2]

const std::vector< std::vector< float > > & RLDeconvolutor::getSignalDeconvolution ( ) const
inline

Definition at line 84 of file RLDeconvolutor.h.

References signal_deconvolved.

◆ getSignalInfo() [1/2]

const std::vector< std::pair< size_t, float > > & RLDeconvolutor::getSignalInfo ( ) const
inline

Definition at line 81 of file RLDeconvolutor.h.

References signal_info.

Referenced by BmnHodoRaw2Digit::FillEvent().

Here is the caller graph for this function:

◆ getSignalInfo() [2/2]

const std::vector< std::pair< size_t, float > > & RLDeconvolutor::getSignalInfo ( ) const
inline

Definition at line 81 of file RLDeconvolutor.h.

References signal_info.

◆ getSubvector() [1/2]

std::vector< float > RLDeconvolutor::getSubvector ( const std::vector< float > & vec,
size_t start,
size_t end ) const
inlineprivate

Definition at line 228 of file RLDeconvolutor.h.

Referenced by extractSignalInfo(), and findCamelPoints().

Here is the caller graph for this function:

◆ getSubvector() [2/2]

std::vector< float > RLDeconvolutor::getSubvector ( const std::vector< float > & vec,
size_t start,
size_t end ) const
inlineprivate

Definition at line 228 of file RLDeconvolutor.h.

◆ getWfmApproximation() [1/2]

std::vector< float > RLDeconvolutor::getWfmApproximation ( ) const
inline

Definition at line 89 of file RLDeconvolutor.h.

References convolution(), deconvolved, and kernel.

Here is the call graph for this function:

◆ getWfmApproximation() [2/2]

std::vector< float > RLDeconvolutor::getWfmApproximation ( ) const
inline

Definition at line 89 of file RLDeconvolutor.h.

References convolution(), deconvolved, and kernel.

Here is the call graph for this function:

◆ R2score() [1/2]

float RLDeconvolutor::R2score ( const std::vector< float > & true_values,
const std::vector< float > & predicted_values ) const
inlineprivate

Definition at line 169 of file RLDeconvolutor.h.

References i, and R2default.

Referenced by runDeconvolution().

Here is the caller graph for this function:

◆ R2score() [2/2]

float RLDeconvolutor::R2score ( const std::vector< float > & true_values,
const std::vector< float > & predicted_values ) const
inlineprivate

Definition at line 169 of file RLDeconvolutor.h.

References i, and R2default.

◆ runDeconvolution() [1/2]

bool RLDeconvolutor::runDeconvolution ( )
inline

Definition at line 41 of file RLDeconvolutor.h.

References blurred_signal, camel_points, constrainOperator(), converged, convolution(), deconvolved, elementwiseDivision(), elementwiseMultiplication(), extractSignalInfo(), findCamelPoints(), kernel, max_iterations, R2, R2default, R2score(), R2threshold, and reversed_kernel.

Referenced by BmnHodoRaw2Digit::FillEvent().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ runDeconvolution() [2/2]

bool RLDeconvolutor::runDeconvolution ( )
inline

Definition at line 41 of file RLDeconvolutor.h.

References blurred_signal, camel_points, constrainOperator(), converged, convolution(), deconvolved, elementwiseDivision(), elementwiseMultiplication(), extractSignalInfo(), findCamelPoints(), kernel, max_iterations, R2, R2default, R2score(), R2threshold, and reversed_kernel.

Here is the call graph for this function:

◆ setMaxIterations() [1/2]

void RLDeconvolutor::setMaxIterations ( int max)
inline

Definition at line 39 of file RLDeconvolutor.h.

References max(), and max_iterations.

Here is the call graph for this function:

◆ setMaxIterations() [2/2]

void RLDeconvolutor::setMaxIterations ( int max)
inline

Definition at line 39 of file RLDeconvolutor.h.

References max(), and max_iterations.

Here is the call graph for this function:

◆ setR2threshold() [1/2]

void RLDeconvolutor::setR2threshold ( float thr)
inline

Definition at line 38 of file RLDeconvolutor.h.

References R2threshold, and thr.

◆ setR2threshold() [2/2]

void RLDeconvolutor::setR2threshold ( float thr)
inline

Definition at line 38 of file RLDeconvolutor.h.

References R2threshold, and thr.

Member Data Documentation

◆ blurred_signal

std::vector< float > RLDeconvolutor::blurred_signal
private

Definition at line 94 of file RLDeconvolutor.h.

Referenced by RLDeconvolutor(), and runDeconvolution().

◆ camel_points

std::vector< size_t > RLDeconvolutor::camel_points
private

Definition at line 105 of file RLDeconvolutor.h.

Referenced by extractSignalInfo(), and runDeconvolution().

◆ converged

bool RLDeconvolutor::converged
private

Definition at line 103 of file RLDeconvolutor.h.

Referenced by RLDeconvolutor(), and runDeconvolution().

◆ deconvolved

std::vector< float > RLDeconvolutor::deconvolved
private

◆ kernel

std::vector< float > RLDeconvolutor::kernel
private

◆ max_iterations

int RLDeconvolutor::max_iterations
private

Definition at line 102 of file RLDeconvolutor.h.

Referenced by RLDeconvolutor(), runDeconvolution(), and setMaxIterations().

◆ R2

std::vector< float > RLDeconvolutor::R2
private

Definition at line 99 of file RLDeconvolutor.h.

Referenced by RLDeconvolutor(), getR2(), and runDeconvolution().

◆ R2default

constexpr float RLDeconvolutor::R2default = 2.0
inlinestaticconstexprprivate

Definition at line 101 of file RLDeconvolutor.h.

Referenced by R2score(), and runDeconvolution().

◆ R2threshold

float RLDeconvolutor::R2threshold
private

Definition at line 100 of file RLDeconvolutor.h.

Referenced by RLDeconvolutor(), runDeconvolution(), and setR2threshold().

◆ reversed_kernel

std::vector< float > RLDeconvolutor::reversed_kernel
private

Definition at line 98 of file RLDeconvolutor.h.

Referenced by RLDeconvolutor(), and runDeconvolution().

◆ signal_decomposed

std::vector< std::vector< float > > RLDeconvolutor::signal_decomposed
private

Definition at line 108 of file RLDeconvolutor.h.

Referenced by extractSignalInfo(), and getSignalDecomposition().

◆ signal_deconvolved

std::vector< std::vector< float > > RLDeconvolutor::signal_deconvolved
private

Definition at line 107 of file RLDeconvolutor.h.

Referenced by extractSignalInfo(), and getSignalDeconvolution().

◆ signal_info

std::vector< std::pair< size_t, float > > RLDeconvolutor::signal_info
private

Definition at line 106 of file RLDeconvolutor.h.

Referenced by extractSignalInfo(), and getSignalInfo().


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