35#include "../RooFitDriver.h" 
   38namespace TestStatistics {
 
   56   : 
RooAbsL(clonePdfData(*pdf, *
data, batchMode), 
data->numEntries(), 1, extended)
 
   59   paramTracker_ = std::make_unique<RooChangeTracker>(
"chtracker", 
"change tracker", *params, 
true);
 
   62      driver_ = std::make_unique<ROOT::Experimental::RooFitDriver>(*
pdf_, batchMode);
 
   69     apply_weight_squared(other.apply_weight_squared),
 
   71     lastSection_(other.lastSection_),
 
   72     cachedResult_(other.cachedResult_),
 
   73     driver_(other.driver_)
 
   97                                          std::size_t stepSize, std::size_t firstEvent, std::size_t lastEvent)
 
  103   for (
auto i = firstEvent; i < lastEvent; i += stepSize) {
 
  106      double weight = dataClone->
weight();
 
  108      if (0. == weight * weight)
 
  113      double logProba = std::log(probas[i]);
 
  114      const double term = -weight * logProba;
 
  116      kahanWeight.
Add(weight);
 
  118      packedNaN.accumulate(term);
 
  121   if (packedNaN.getPayload() != 0.) {
 
  126   return {kahanProb, kahanWeight.
Sum()};
 
  153      std::vector<double> probas = 
driver_->getValues();
 
  154      std::tie(
result, sumWeight) =
 
  158      std::tie(
result, sumWeight) =
 
  178      pdf_->wireAllCaches();
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void data
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t result
 
The Kahan summation is a compensated summation algorithm, which significantly reduces numerical error...
 
void Add(T x)
Single-element accumulation. Will not vectorise.
 
RooFit::OwningPtr< RooArgSet > getParameters(const RooAbsData *data, bool stripDisconnected=true) const
Create a list of leaf nodes in the arg tree starting with ourself as top node that don't match any of...
 
RooAbsData is the common abstract base class for binned and unbinned datasets.
 
virtual double weight() const =0
 
virtual const RooArgSet * get() const
 
virtual double weightSquared() const =0
 
std::shared_ptr< RooAbsData > data_
 
std::unique_ptr< RooArgSet > normSet_
Pointer to set with observables used for normalization.
 
std::shared_ptr< RooAbsPdf > pdf_
 
ROOT::Math::KahanSum< double > cachedResult_
 
bool setApplyWeightSquared(bool flag)
Returns true if value was changed, false otherwise.
 
ROOT::Math::KahanSum< double > evaluatePartition(Section events, std::size_t components_begin, std::size_t components_end) override
Calculate and return likelihood on subset of data from firstEvent to lastEvent processed with a step ...
 
std::unique_ptr< RooChangeTracker > paramTracker_
 
std::shared_ptr< ROOT::Experimental::RooFitDriver > driver_
! For batched evaluation
 
bool apply_weight_squared
Apply weights squared?
 
RooUnbinnedL(RooAbsPdf *pdf, RooAbsData *data, RooAbsL::Extended extended=RooAbsL::Extended::Auto, RooFit::BatchModeOption batchMode=RooFit::BatchModeOption::Off)
 
static RooNLLVar::ComputeResult computeScalarFunc(const RooAbsPdf *pdfClone, RooAbsData *dataClone, RooArgSet *normSet, bool weightSq, std::size_t stepSize, std::size_t firstEvent, std::size_t lastEvent, bool doBinOffset=false)
 
std::pair< ROOT::Math::KahanSum< double >, double > ComputeResult
 
std::unique_ptr< T > compileForNormSet(T const &arg, RooArgSet const &normSet)
 
The namespace RooFit contains mostly switches that change the behaviour of functions of PDFs (or othe...
 
BatchModeOption
For setting the batch mode flag with the BatchMode() command argument to RooAbsPdf::fitTo()
 
A part of some range delimited by two fractional points between 0 and 1 (inclusive).
 
std::size_t begin(std::size_t N_total) const
 
std::size_t end(std::size_t N_total) const
 
Little struct that can pack a float into the unused bits of the mantissa of a NaN double.