Logo ROOT  
Reference Guide
 
Loading...
Searching...
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:
[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 43 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 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 
)
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 92 of file RooSumL.cxx.

◆ GetClassName()

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

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
inline

Definition at line 42 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 112 of file RooSumL.cxx.

Member Data Documentation

◆ components_

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

Definition at line 45 of file RooSumL.h.

Libraries for RooFit::TestStatistics::RooSumL:

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