npstat is hosted by Hepforge, IPPP Durham
NPStat  5.10.0
emsunfold::AbsSparseUnfoldND< Matrix > Class Template Referenceabstract
Inheritance diagram for emsunfold::AbsSparseUnfoldND< Matrix >:
emsunfold::SmoothedEMSparseUnfoldND< Matrix >

Public Types

typedef Matrix response_matrix_type
 
typedef Eigen::DiagonalMatrix< double, Eigen::Dynamic > input_covariance_type
 
typedef Matrix output_covariance_type
 
typedef AbsSparseUnfoldingFilterND filter_type
 

Public Member Functions

 AbsSparseUnfoldND (const response_matrix_type &responseMatrix, const npstat::ArrayShape &unfoldedShape, const npstat::ArrayShape &observedShape)
 
 AbsSparseUnfoldND (const response_matrix_type &responseMatrix, const unsigned *unfoldedShape, unsigned unfoldedDim, const unsigned *observedShape, unsigned observedDim)
 
const response_matrix_type & responseMatrix () const
 
const npstat::ArrayND< double > & efficiency () const
 
virtual void setInitialApproximation (const npstat::ArrayND< double > &a)
 
virtual void clearInitialApproximation ()
 
virtual const npstat::ArrayND< double > & getInitialApproximation () const
 
virtual void setFilter (const filter_type *f)
 
virtual const filter_typegetFilter (bool throwIfNull=false) const
 
virtual void useConvolutions (const bool b)
 
bool usingConvolutions () const
 
npstat::ArrayShape getObservedShape () const
 
npstat::ArrayShape getUnfoldedShape () const
 
virtual bool unfold (const npstat::ArrayND< double > &observed, const input_covariance_type *observationCovarianceMatrix, npstat::ArrayND< double > *unfolded, output_covariance_type *unfoldedCovarianceMatrix)=0
 
void validateUnfoldedShape (const npstat::ArrayND< double > &u) const
 
void validateUnfoldedShape (const npstat::ArrayShape &uShape) const
 
void validateObservedShape (const npstat::ArrayND< double > &o) const
 
void validateObservedShape (const npstat::ArrayShape &oShape) const
 

Protected Member Functions

void buildUniformInitialApproximation (const npstat::ArrayND< double > &o, npstat::ArrayND< double > *r) const
 

Member Function Documentation

◆ clearInitialApproximation()

template<class Matrix >
virtual void emsunfold::AbsSparseUnfoldND< Matrix >::clearInitialApproximation ( )
virtual

Clear the initial approximation to the unfolded solution

◆ getFilter()

template<class Matrix >
virtual const filter_type* emsunfold::AbsSparseUnfoldND< Matrix >::getFilter ( bool  throwIfNull = false) const
virtual

Retrieve the smoothing filter used

◆ getInitialApproximation()

template<class Matrix >
virtual const npstat::ArrayND<double>& emsunfold::AbsSparseUnfoldND< Matrix >::getInitialApproximation ( ) const
virtual

Return the initial approximation to the unfolded solution

◆ getObservedShape()

template<class Matrix >
npstat::ArrayShape emsunfold::AbsSparseUnfoldND< Matrix >::getObservedShape ( ) const
inline

Shape of the expected observed input

◆ getUnfoldedShape()

template<class Matrix >
npstat::ArrayShape emsunfold::AbsSparseUnfoldND< Matrix >::getUnfoldedShape ( ) const
inline

Shape of the expected unfolded output

◆ setFilter()

template<class Matrix >
virtual void emsunfold::AbsSparseUnfoldND< Matrix >::setFilter ( const filter_type f)
virtual

Set the smoothing filter used. The filter will not be copied. The user must ensure that the filter exists while this object is in use.

◆ setInitialApproximation()

template<class Matrix >
virtual void emsunfold::AbsSparseUnfoldND< Matrix >::setInitialApproximation ( const npstat::ArrayND< double > &  a)
virtual

Set the initial approximation to the unfolded solution

◆ unfold()

template<class Matrix >
virtual bool emsunfold::AbsSparseUnfoldND< Matrix >::unfold ( const npstat::ArrayND< double > &  observed,
const input_covariance_type *  observationCovarianceMatrix,
npstat::ArrayND< double > *  unfolded,
output_covariance_type *  unfoldedCovarianceMatrix 
)
pure virtual

Method to be implemented by derived classes. The covariance matrix of observations should assume linear ordering of the observed data, per ordering by the "ArrayND" class. If the "observationCovarianceMatrix" pointer is NULL, the matrix should be constructed internally, assuming Poisson statistics. The "unfoldedCovarianceMatrix" pointer can be NULL as well in which case the corresponding matrix should not be calculated. If it is not NULL, the resulting matrix should be pruned.

This function should return "true" on success, "false" on failure.

Implemented in emsunfold::SmoothedEMSparseUnfoldND< Matrix >.

◆ useConvolutions()

template<class Matrix >
virtual void emsunfold::AbsSparseUnfoldND< Matrix >::useConvolutions ( const bool  b)
inlinevirtual

Switch between using filtering or convolution

◆ usingConvolutions()

template<class Matrix >
bool emsunfold::AbsSparseUnfoldND< Matrix >::usingConvolutions ( ) const
inline

Check if the filter should use "filter" or "convolve" method

◆ validateUnfoldedShape()

template<class Matrix >
void emsunfold::AbsSparseUnfoldND< Matrix >::validateUnfoldedShape ( const npstat::ArrayND< double > &  u) const

This function will throw the "std::invalid_argument" exception if the dimensions are incompatible with those of the response matrix


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