yoda is hosted by Hepforge, IPPP Durham
YODA - Yet more Objects for Data Analysis 2.0.0
YODA::Dbn< N > Class Template Reference

User-facing Dbn class inheriting from DbnBase. More...

#include <Dbn.h>

Inheritance diagram for YODA::Dbn< N >:
YODA::DbnBase< N >

Public Types

using BaseT = DbnBase< N >
 
using BaseT = DbnBase< N >
 
- Public Types inherited from YODA::DbnBase< N >
using BaseT = DbnBase< N >
 
using FillDim = std::integral_constant< size_t, N >
 
using DataSize = std::integral_constant< size_t, 1+2 *(N+1)+(N *(N-1)/2)>
 

Public Member Functions

DbnBaseoperator= (const DbnBase &)=default
 
DbnBaseoperator= (DbnBase &&)=default
 
- Public Member Functions inherited from YODA::DbnBase< N >
 DbnBase ()
 Default constructor of a new distribution.
 
template<size_t dim = N, typename = std::enable_if_t<(dim < 2)>>
 DbnBase (const double numEntries, const std::array< double, N+1 > &sumW, const std::array< double, N+1 > &sumW2)
 Constructor to set a distribution with a pre-filled state.
 
template<size_t dim = N, typename = std::enable_if_t<(dim >= 2)>>
 DbnBase (const double numEntries, const std::array< double, N+1 > &sumW, const std::array< double, N+1 > &sumW2, const std::array< double, N *(N-1)/2 > &sumWcross)
 Constructor to set a distribution with a pre-filled state.
 
 DbnBase (const DbnBase &)=default
 
 DbnBase (DbnBase &&)=default
 
DbnBaseoperator= (const DbnBase &)=default
 
DbnBaseoperator= (DbnBase &&)=default
 
void fill (const std::array< double, N > vals, const double weight=1.0, const double fraction=1.0)
 Contribute a sample at val (from an array) with weight weight.
 
template<typename... Args>
void fill (Args &&... args)
 Templated convenience overload of fill method.
 
void set (const double numEntries, const std::array< double, N+1 > &sumW, const std::array< double, N+1 > &sumW2, const std::array< double, N *(N-1)/2 > &sumWcross)
 Set a sample with array-based number of entries numEntries, sum of weights sumW (and corresponding moments), sum of squared weights sumW2 (and corresponding moments).
 
void set (const double numEntries, const std::vector< double > &sumW, const std::vector< double > &sumW2, const std::vector< double > &sumWcross={})
 Set a sample with vector-based number of entries numEntries, sum of weights sumW (and corresponding moments), sum of squared weights sumW2 (and corresponding moments).
 
void set (const DbnBase< N > &other)
 Set a sample with other.
 
void set (DbnBase< N > &&other)
 Set a sample with other.
 
void reset ()
 Reset the internal counters.
 
void scaleW (const double scalefactor)
 Rescale as if all fill weights had been different by factor scalefactor.
 
void scale (const size_t dim, const double factor)
 
double errW () const
 The absolute error on sumW.
 
double relErrW () const
 The relative error on sumW.
 
double mean (const size_t i) const
 Weighted mean, $ \bar{x} $, of distribution.
 
double variance (const size_t i) const
 Weighted variance, $ \sigma^2 $, of distribution.
 
double stdDev (const size_t i) const
 Weighted standard deviation, $ \sigma $, of distribution.
 
double stdErr (const size_t i) const
 Weighted standard error on the mean, $ \sim \sigma/\sqrt{N-1} $, of distribution.
 
double relStdErr (const size_t i) const
 Relative weighted standard error on the mean, $ \sim \sigma/\sqrt{N-1} $, of distribution.
 
double RMS (const size_t i) const
 Weighted RMS, $ \sqrt{ \sum{w x^2}/\sum{w} } $, of distribution.
 
double numEntries () const
 Number of entries (number of times fill was called, ignoring weights)
 
double effNumEntries () const
 Effective number of entries $ = (\sum w)^2 / \sum w^2 $.
 
double sumW () const
 The sum of weights.
 
double sumW2 () const
 The sum of weights squared.
 
double sumW (const size_t i) const
 The sum of x*weight.
 
double sumW2 (const size_t i) const
 The sum of x^2*weight.
 
template<size_t dim = N, typename = std::enable_if_t<(dim >= 2)>>
double crossTerm (const size_t A1, const size_t A2) const
 The second-order cross term between axes k and l.
 
size_t dim () const
 
std::string toString () const
 String representation of the DbnBase for debugging.
 
template<typename... size_t>
DbnBase< sizeof...(size_t)> reduceTo (size_t... axes) const
 Reduce operation that produces a lower-dimensional DbnBase keeping only the specified axes in the new DbnBase.
 
template<size_t... Is>
DbnBase< sizeof...(Is)> reduceTo (std::index_sequence< Is... >) const
 Same as above but using an std::integer_sequence.
 
template<size_t... axes>
auto reduce () const
 Reduce operation that produces a lower-dimensional DbnBase removing the specified axes for the new DbnBase.
 
DbnBaseoperator+= (const DbnBase &d)
 Add two DbnBases.
 
DbnBaseoperator+= (DbnBase &&d)
 Add two DbnBases.
 
DbnBaseoperator-= (const DbnBase &d)
 Subtract one DbnBase from another.
 
DbnBaseoperator-= (DbnBase &&d)
 Subtract one DbnBase from another.
 

Detailed Description

template<size_t N>
class YODA::Dbn< N >

User-facing Dbn class inheriting from DbnBase.

Definition at line 637 of file Dbn.h.

Member Typedef Documentation

◆ BaseT [1/2]

template<size_t N>
using YODA::Dbn< N >::BaseT = DbnBase<N>

Definition at line 639 of file Dbn.h.

◆ BaseT [2/2]

template<size_t N>
using YODA::DbnBase< N >::BaseT = DbnBase<N>

Definition at line 89 of file Dbn.h.

Member Function Documentation

◆ operator=() [1/2]

template<size_t N>
DbnBase & YODA::DbnBase< N >::operator= ( const DbnBase )
default

Copy assignment

Sets all the parameters using the ones provided from an existing DbnBase.

◆ operator=() [2/2]

template<size_t N>
DbnBase & YODA::DbnBase< N >::operator= ( DbnBase &&  )
default

Move assignment

Sets all the parameters using the ones provided from an existing DbnBase.


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