Logo ROOT  
Reference Guide
No Matches
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 25 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.
ROOT::Math::KahanSum< doubleevaluatePartition (Section events, std::size_t components_begin, std::size_t components_end) override
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.
 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.
virtual ~RooAbsL ()=default
virtual double defaultErrorLevel () const
virtual std::string GetInfo () const
virtual std::string GetName () const
std::size_t getNComponents () const
std::size_t getNEvents () const
virtual std::unique_ptr< 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.
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.
std::shared_ptr< RooAbsPdfpdf_
std::size_t sim_count_ = 1

#include <RooFit/TestStatistics/RooSumL.h>

Inheritance diagram for RooFit::TestStatistics::RooSumL:

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 
[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.
components must be passed with std::move, otherwise it cannot be moved into the RooSumL because of the unique_ptr!
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 43 of file RooSumL.cxx.

Member Function Documentation

◆ constOptimizeTestStatistic()

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

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 123 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 
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 92 of file RooSumL.cxx.

◆ GetClassName()

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

Implements RooFit::TestStatistics::RooAbsL.

Definition at line 40 of file RooSumL.h.

◆ GetComponents()

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

Definition at line 42 of file RooSumL.h.

◆ getSubsidiaryValue()

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

Definition at line 112 of file RooSumL.cxx.

Member Data Documentation

◆ components_

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

Definition at line 45 of file RooSumL.h.

Libraries for RooFit::TestStatistics::RooSumL:

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