Logo ROOT  
Reference Guide
RooFit::TestStatistics::RooSumL Class Reference

Likelihood class that sums over multiple -log components.

The likelihood is often a product of components, for instance when fitting simultaneous pdfs, but also when using subsidiary pdfs. Hence, the negative log likelihood that we, in fact, calculate is often a sum over these components. This sum is implemented by this class.

Definition at line 26 of file RooSumL.h.

Public Member Functions

 RooSumL (RooAbsPdf *pdf, RooAbsData *data, std::vector< std::unique_ptr< RooAbsL > > components, RooAbsL::Extended extended=RooAbsL::Extended::Auto)
 
void constOptimizeTestStatistic (RooAbsArg::ConstOpCode opcode, bool doAlsoTrackingOpt) override
 Interface function signaling a request to perform constant term optimization. More...
 
ROOT::Math::KahanSum< doubleevaluatePartition (Section events, std::size_t components_begin, std::size_t components_end) override
 
virtual std::string GetClassName () const override
 
const std::vector< std::unique_ptr< RooAbsL > > & GetComponents () const
 
ROOT::Math::KahanSum< doublegetSubsidiaryValue ()
 
- Public Member Functions inherited from RooFit::TestStatistics::RooAbsL
 RooAbsL (ClonePdfData in, std::size_t N_events, std::size_t N_components, Extended extended=Extended::Auto)
 Constructor that clones the pdf/data and owns those cloned copies. More...
 
 RooAbsL (const RooAbsL &other)
 
 RooAbsL (RooAbsPdf *pdf, RooAbsData *data, std::size_t N_events, std::size_t N_components, Extended extended=Extended::Auto)
 Constructor that does not clone pdf/data and uses the shared_ptr aliasing constructor to make it non-owning. More...
 
virtual ~RooAbsL ()=default
 
virtual void constOptimizeTestStatistic (RooAbsArg::ConstOpCode opcode, bool doAlsoTrackingOpt)
 Interface function signaling a request to perform constant term optimization. More...
 
virtual double defaultErrorLevel () const
 
virtual ROOT::Math::KahanSum< doubleevaluatePartition (Section events, std::size_t components_begin, std::size_t components_end)=0
 
virtual std::string GetClassName () const =0
 
virtual std::string GetInfo () const
 
virtual std::string GetName () const
 
std::size_t getNComponents () const
 
std::size_t getNEvents () const
 
virtual RooArgSetgetParameters ()
 
virtual std::string GetTitle () const
 
void initClones (RooAbsPdf &inpdf, RooAbsData &indata)
 
bool isExtended () const
 
virtual std::size_t numDataEntries () const
 Number of dataset entries. More...
 
void setSimCount (std::size_t value)
 

Private Attributes

std::vector< std::unique_ptr< RooAbsL > > components_
 

Additional Inherited Members

- Public Types inherited from RooFit::TestStatistics::RooAbsL
enum class  Extended { Auto , Yes , No }
 
- Static Public Member Functions inherited from RooFit::TestStatistics::RooAbsL
static bool isExtendedHelper (RooAbsPdf *pdf, Extended extended)
 
- Protected Attributes inherited from RooFit::TestStatistics::RooAbsL
std::shared_ptr< RooAbsDatadata_
 
bool extended_ = false
 
std::size_t N_components_ = 1
 
std::size_t N_events_ = 1
 
std::unique_ptr< RooArgSetnormSet_
 Pointer to set with observables used for normalization. More...
 
std::shared_ptr< RooAbsPdfpdf_
 
std::size_t sim_count_ = 1
 

#include <RooFit/TestStatistics/RooSumL.h>

Inheritance diagram for RooFit::TestStatistics::RooSumL:
[legend]

Constructor & Destructor Documentation

◆ RooSumL()

RooFit::TestStatistics::RooSumL::RooSumL ( RooAbsPdf pdf,
RooAbsData data,
std::vector< std::unique_ptr< RooAbsL > >  components,
RooAbsL::Extended  extended = RooAbsL::Extended::Auto 
)
Parameters
[in]pdfRaw pointer to the pdf; will not be cloned in this object.
[in]dataRaw pointer to the dataset; will not be cloned in this object.
[in]componentsThe component likelihoods.
extendedSet extended term calculation on, off or use Extended::Auto to determine automatically based on the pdf whether to activate or not.
Warning
components must be passed with std::move, otherwise it cannot be moved into the RooSumL because of the unique_ptr!
Note
The number of events in RooSumL is that of the full dataset. Components will have their own number of events that may be more relevant.

Definition at line 39 of file RooSumL.cxx.

Member Function Documentation

◆ constOptimizeTestStatistic()

void RooFit::TestStatistics::RooSumL::constOptimizeTestStatistic ( RooAbsArg::ConstOpCode  opcode,
bool  doAlsoTrackingOpt 
)
overridevirtual

Interface function signaling a request to perform constant term optimization.

The default implementation takes no action other than to forward the calls to all servers. May be overridden in likelihood classes without a cached dataset, like RooSubsidiaryL.

Reimplemented from RooFit::TestStatistics::RooAbsL.

Definition at line 113 of file RooSumL.cxx.

◆ evaluatePartition()

ROOT::Math::KahanSum< double > RooFit::TestStatistics::RooSumL::evaluatePartition ( Section  events,
std::size_t  components_begin,
std::size_t  components_end 
)
overridevirtual
Note
Compared to the RooAbsTestStatistic implementation that this was taken from, we leave out Hybrid and SimComponents interleaving support here. This should be implemented by a calculator (i.e. LikelihoodWrapper or LikelihoodGradientWrapper derived class), if desired.

Implements RooFit::TestStatistics::RooAbsL.

Definition at line 88 of file RooSumL.cxx.

◆ GetClassName()

virtual std::string RooFit::TestStatistics::RooSumL::GetClassName ( ) const
inlineoverridevirtual

Implements RooFit::TestStatistics::RooAbsL.

Definition at line 41 of file RooSumL.h.

◆ GetComponents()

const std::vector< std::unique_ptr< RooAbsL > > & RooFit::TestStatistics::RooSumL::GetComponents ( ) const
inline

Definition at line 43 of file RooSumL.h.

◆ getSubsidiaryValue()

ROOT::Math::KahanSum< double > RooFit::TestStatistics::RooSumL::getSubsidiaryValue ( )
Note
This function assumes there is only one subsidiary component.

Definition at line 102 of file RooSumL.cxx.

Member Data Documentation

◆ components_

std::vector<std::unique_ptr<RooAbsL> > RooFit::TestStatistics::RooSumL::components_
private

Definition at line 46 of file RooSumL.h.

Libraries for RooFit::TestStatistics::RooSumL:
[legend]

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