Logo ROOT  
Reference Guide
RooAbsOptTestStatistic.h
Go to the documentation of this file.
1/*****************************************************************************
2 * Project: RooFit *
3 * Package: RooFitCore *
4 * File: $Id: RooAbsOptGoodnessOfFit.h,v 1.15 2007/05/11 09:11:30 verkerke Exp $
5 * Authors: *
6 * WV, Wouter Verkerke, UC Santa Barbara, verkerke@slac.stanford.edu *
7 * DK, David Kirkby, UC Irvine, dkirkby@uci.edu *
8 * *
9 * Copyright (c) 2000-2005, Regents of the University of California *
10 * and Stanford University. All rights reserved. *
11 * *
12 * Redistribution and use in source and binary forms, *
13 * with or without modification, are permitted according to the terms *
14 * listed in LICENSE (http://roofit.sourceforge.net/license.txt) *
15 *****************************************************************************/
16#ifndef ROO_ABS_OPT_TEST_STATISTIC
17#define ROO_ABS_OPT_TEST_STATISTIC
18
19#include "RooAbsTestStatistic.h"
20#include "RooSetProxy.h"
21#include "RooCategoryProxy.h"
22#include "TString.h"
23
24class RooArgSet ;
25class RooAbsData ;
26class RooAbsReal ;
27
29public:
30
31 // Constructors, assignment etc
33 RooAbsOptTestStatistic(const char *name, const char *title, RooAbsReal& real, RooAbsData& data,
34 const RooArgSet& projDeps,
36 RooAbsOptTestStatistic(const RooAbsOptTestStatistic& other, const char* name=nullptr);
37 ~RooAbsOptTestStatistic() override;
38
39 double combinedValue(RooAbsReal** gofArray, Int_t nVal) const override ;
40
42 const RooAbsReal& function() const { return *_funcClone ; }
43
44 RooAbsData& data() ;
45 const RooAbsData& data() const ;
46
47
48 const char* cacheUniqueSuffix() const override;
49
50 // Override this to be always true to force calculation of likelihood without parameters
51 bool isDerived() const override { return true ; }
52
53 void seal(const char* notice="") { _sealed = true ; _sealNotice = notice ; }
54 bool isSealed() const { return _sealed ; }
55 const char* sealNotice() const { return _sealNotice.Data() ; }
56
57private:
58 void setUpBinSampling();
59
60protected:
61
62 bool setDataSlave(RooAbsData& data, bool cloneData=true, bool ownNewDataAnyway=false) override ;
63 void initSlave(RooAbsReal& real, RooAbsData& indata, const RooArgSet& projDeps, const char* rangeName,
64 const char* addCoefRangeName) ;
65
66 friend class RooAbsReal ;
67 friend class RooAbsTestStatistic ;
68
69 virtual bool allowFunctionCache() { return true ; }
70 void constOptimizeTestStatistic(ConstOpCode opcode, bool doAlsoTrackingOpt=true) override ;
71
72 bool redirectServersHook(const RooAbsCollection& newServerList, bool mustReplaceAll, bool nameChange, bool isRecursive) override ;
73 void printCompactTreeHook(std::ostream& os, const char* indent="") override ;
74 virtual RooArgSet requiredExtraObservables() const { return RooArgSet() ; }
75 void optimizeCaching() ;
76 void optimizeConstantTerms(bool,bool=true) ;
77
78 RooArgSet* _normSet ; ///< Pointer to set with observables used for normalization
79 RooArgSet* _funcCloneSet ; ///< Set owning all components of internal clone of input function
80 RooAbsData* _dataClone{nullptr}; ///< Pointer to internal clone if input data
81 RooAbsReal* _funcClone ; ///< Pointer to internal clone of input function
82 RooArgSet* _projDeps ; ///< Set of projected observable
83 bool _ownData ; ///< Do we own the dataset
84 bool _sealed ; ///< Is test statistic sealed -- i.e. no access to data
85 TString _sealNotice ; ///< User-defined notice shown when reading a sealed likelihood
86 RooArgSet* _funcObsSet ; ///< List of observables in the pdf expression
87 RooArgSet _cachedNodes ; ///<! List of nodes that are cached as constant expressions
88
89 RooAbsReal* _origFunc ; ///< Original function
90 RooAbsData* _origData ; ///< Original data
91 bool _optimized ; ///<!
92 double _integrateBinsPrecision{-1.}; // Precision for finer sampling of bins.
93
94 ClassDefOverride(RooAbsOptTestStatistic,5) // Abstract base class for optimized test statistics
95};
96
97#endif
#define ClassDefOverride(name, id)
Definition: Rtypes.h:339
static void indent(ostringstream &buf, int indent_level)
char name[80]
Definition: TGX11.cxx:110
RooAbsCollection is an abstract container object that can hold multiple RooAbsArg objects.
RooAbsData is the common abstract base class for binned and unbinned datasets.
Definition: RooAbsData.h:62
RooAbsOptTestStatistic is the abstract base class for test statistics objects that evaluate a functio...
bool setDataSlave(RooAbsData &data, bool cloneData=true, bool ownNewDataAnyway=false) override
Change dataset that is used to given one.
~RooAbsOptTestStatistic() override
Destructor.
RooAbsReal * _funcClone
Pointer to internal clone of input function.
bool _sealed
Is test statistic sealed – i.e. no access to data.
void optimizeConstantTerms(bool, bool=true)
Driver function to activate global constant term optimization.
double combinedValue(RooAbsReal **gofArray, Int_t nVal) const override
Method to combined test statistic results calculated into partitions into the global result.
void seal(const char *notice="")
const RooAbsReal & function() const
RooAbsReal * _origFunc
Original function.
bool _ownData
Do we own the dataset.
void optimizeCaching()
This method changes the value caching logic for all nodes that depends on any of the observables as d...
const char * sealNotice() const
bool isDerived() const override
Does value or shape of this arg depend on any other arg?
RooAbsData * _origData
Original data.
RooArgSet * _funcObsSet
List of observables in the pdf expression.
void constOptimizeTestStatistic(ConstOpCode opcode, bool doAlsoTrackingOpt=true) override
Driver function to propagate constant term optimizations in test statistic.
void setUpBinSampling()
Inspect PDF to find out if we are doing a binned fit to a 1-dimensional unbinned PDF.
bool redirectServersHook(const RooAbsCollection &newServerList, bool mustReplaceAll, bool nameChange, bool isRecursive) override
Catch server redirect calls and forward to internal clone of function.
RooArgSet _cachedNodes
! List of nodes that are cached as constant expressions
void initSlave(RooAbsReal &real, RooAbsData &indata, const RooArgSet &projDeps, const char *rangeName, const char *addCoefRangeName)
TString _sealNotice
User-defined notice shown when reading a sealed likelihood.
void printCompactTreeHook(std::ostream &os, const char *indent="") override
Catch print hook function and forward to function clone.
RooArgSet * _normSet
Pointer to set with observables used for normalization.
const char * cacheUniqueSuffix() const override
Returns a suffix string that is unique for RooAbsOptTestStatistic instances that don't share the same...
RooArgSet * _funcCloneSet
Set owning all components of internal clone of input function.
RooAbsData * _dataClone
Pointer to internal clone if input data.
virtual RooArgSet requiredExtraObservables() const
RooAbsOptTestStatistic()
Default Constructor.
RooArgSet * _projDeps
Set of projected observable.
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
Definition: RooAbsReal.h:62
RooAbsTestStatistic is the abstract base class for all test statistics.
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Definition: RooArgSet.h:56
Basic string class.
Definition: TString.h:136
const char * Data() const
Definition: TString.h:369