File indexing completed on 2025-01-18 10:10:26
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 #ifndef ROOT_ROOFIT_TESTSTATISTICS_RooBinnedL
0014 #define ROOT_ROOFIT_TESTSTATISTICS_RooBinnedL
0015
0016 #include <RooFit/TestStatistics/RooAbsL.h>
0017 #include "RooAbsReal.h"
0018
0019 #include "Math/Util.h" // KahanSum
0020
0021 #include <vector>
0022
0023
0024 class RooAbsPdf;
0025 class RooAbsData;
0026 class RooChangeTracker;
0027
0028 namespace RooFit {
0029 namespace TestStatistics {
0030
0031 class RooBinnedL : public RooAbsL {
0032 public:
0033 RooBinnedL(RooAbsPdf *pdf, RooAbsData *data);
0034 ~RooBinnedL() override;
0035 ROOT::Math::KahanSum<double>
0036 evaluatePartition(Section bins, std::size_t components_begin, std::size_t components_end) override;
0037
0038 std::string GetClassName() const override { return "RooBinnedL"; }
0039
0040 private:
0041 mutable bool _first = true;
0042 mutable std::vector<double> _binw;
0043 std::unique_ptr<RooChangeTracker> paramTracker_;
0044 Section lastSection_ = {0, 0};
0045 mutable ROOT::Math::KahanSum<double> cachedResult_{0.};
0046 };
0047
0048 }
0049 }
0050
0051 #endif