13#ifndef ROO_ABS_OPT_TEST_STATISTIC
14#define ROO_ABS_OPT_TEST_STATISTIC
25class RooAbsOptTestStatistic :
public RooAbsTestStatistic {
29 RooAbsOptTestStatistic(
const char *
name,
const char *title, RooAbsReal& real, RooAbsData& data,
30 const RooArgSet& projDeps,
31 RooAbsTestStatistic::Configuration
const& cfg);
32 RooAbsOptTestStatistic(
const RooAbsOptTestStatistic& other,
const char*
name=
nullptr);
33 ~RooAbsOptTestStatistic()
override;
35 double combinedValue(RooAbsReal** gofArray,
Int_t nVal)
const override ;
37 RooAbsReal&
function() {
return *_funcClone ; }
38 const RooAbsReal&
function()
const {
return *_funcClone ; }
41 const RooAbsData& data()
const ;
44 const char* cacheUniqueSuffix()
const override;
47 bool isDerived()
const override {
return true ; }
49 void seal(
const char* notice=
"") { _sealed = true ; _sealNotice = notice ; }
50 bool isSealed()
const {
return _sealed ; }
51 const char* sealNotice()
const {
return _sealNotice.Data() ; }
54 void setUpBinSampling();
58 bool setDataSlave(RooAbsData& data,
bool cloneData=
true,
bool ownNewDataAnyway=
false)
override ;
59 void initSlave(RooAbsReal& real, RooAbsData& indata,
const RooArgSet& projDeps,
const char* rangeName,
60 const char* addCoefRangeName) ;
62 friend class RooAbsReal ;
63 friend class RooAbsTestStatistic ;
65 virtual bool allowFunctionCache() {
return true ; }
66 void constOptimizeTestStatistic(ConstOpCode opcode,
bool doAlsoTrackingOpt=
true)
override ;
68 bool redirectServersHook(
const RooAbsCollection& newServerList,
bool mustReplaceAll,
bool nameChange,
bool isRecursive)
override ;
69 void printCompactTreeHook(std::ostream& os,
const char*
indent=
"")
override ;
70 virtual RooArgSet requiredExtraObservables()
const {
return RooArgSet() ; }
71 void optimizeCaching() ;
72 void optimizeConstantTerms(
bool,
bool=
true) ;
73 void runRecalculateCache(std::size_t firstEvent, std::size_t lastEvent, std::size_t stepSize)
const override;
75 RooArgSet* _normSet =
nullptr;
76 RooArgSet* _funcCloneSet =
nullptr;
77 RooAbsData* _dataClone =
nullptr;
78 RooAbsReal* _funcClone =
nullptr;
79 RooArgSet* _projDeps =
nullptr;
80 bool _ownData =
false;
83 RooArgSet* _funcObsSet =
nullptr;
84 RooArgSet _cachedNodes ;
85 bool _skipZeroWeights =
false;
87 RooAbsReal* _origFunc =
nullptr;
88 RooAbsData* _origData =
nullptr;
89 bool _optimized =
false;
90 double _integrateBinsPrecision{-1.};
int Int_t
Signed integer 4 bytes (int).
static void indent(ostringstream &buf, int indent_level)
Abstract base class for binned and unbinned datasets.
Abstract base class for objects that represent a real value and implements functionality common to al...
RooArgSet is a container object that can hold multiple RooAbsArg objects.
void function(const Char_t *name_, T fun, const Char_t *docstring=0)