16 #ifndef ROO_ABS_OPT_TEST_STATISTIC
17 #define ROO_ABS_OPT_TEST_STATISTIC
28 class RooAbsOptTestStatistic :
public RooAbsTestStatistic {
32 RooAbsOptTestStatistic() ;
33 RooAbsOptTestStatistic(
const char *name,
const char *title, RooAbsReal& real, RooAbsData& data,
34 const RooArgSet& projDeps,
const char* rangeName=0,
const char* addCoefRangeName=0,
35 Int_t nCPU=1, RooFit::MPSplit interleave=RooFit::BulkPartition, Bool_t verbose=kTRUE, Bool_t splitCutRange=kFALSE,
36 Bool_t cloneInputData=kTRUE) ;
37 RooAbsOptTestStatistic(
const RooAbsOptTestStatistic& other,
const char* name=0);
38 virtual ~RooAbsOptTestStatistic();
40 virtual Double_t combinedValue(RooAbsReal** gofArray, Int_t nVal)
const ;
42 RooAbsReal&
function() {
return *_funcClone ; }
43 const RooAbsReal&
function()
const {
return *_funcClone ; }
46 const RooAbsData& data()
const ;
49 virtual const char* cacheUniqueSuffix()
const {
return Form(
"_%lx", (ULong_t)_dataClone) ; }
52 virtual Bool_t isDerived()
const {
return kTRUE ; }
54 void seal(
const char* notice=
"") { _sealed = kTRUE ; _sealNotice = notice ; }
55 Bool_t isSealed()
const {
return _sealed ; }
56 const char* sealNotice()
const {
return _sealNotice.Data() ; }
61 Bool_t setDataSlave(RooAbsData& data, Bool_t cloneData=kTRUE, Bool_t ownNewDataAnyway=kFALSE) ;
62 void initSlave(RooAbsReal& real, RooAbsData& indata,
const RooArgSet& projDeps,
const char* rangeName,
63 const char* addCoefRangeName) ;
65 friend class RooAbsReal ;
67 virtual Bool_t allowFunctionCache() {
return kTRUE ; }
68 void constOptimizeTestStatistic(ConstOpCode opcode, Bool_t doAlsoTrackingOpt=kTRUE) ;
70 virtual Bool_t redirectServersHook(
const RooAbsCollection& newServerList, Bool_t mustReplaceAll, Bool_t nameChange, Bool_t isRecursive) ;
71 virtual void printCompactTreeHook(std::ostream& os,
const char* indent=
"") ;
72 virtual RooArgSet requiredExtraObservables()
const {
return RooArgSet() ; }
73 void optimizeCaching() ;
74 void optimizeConstantTerms(Bool_t,Bool_t=kTRUE) ;
77 RooArgSet* _funcCloneSet ;
78 RooAbsData* _dataClone ;
79 RooAbsReal* _funcClone ;
80 RooArgSet* _projDeps ;
84 RooArgSet* _funcObsSet ;
85 RooArgSet _cachedNodes ;
87 RooAbsReal* _origFunc ;
88 RooAbsData* _origData ;
91 ClassDef(RooAbsOptTestStatistic,4)