Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
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, 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 = true, double integrateOverBinsPrecision = -1.);
37 RooAbsOptTestStatistic(const RooAbsOptTestStatistic& other, const char* name=0);
39
40 virtual Double_t combinedValue(RooAbsReal** gofArray, Int_t nVal) const ;
41
43 const RooAbsReal& function() const { return *_funcClone ; }
44
45 RooAbsData& data() ;
46 const RooAbsData& data() const ;
47
48
49 virtual const char* cacheUniqueSuffix() const { return Form("_%lx", (ULong_t)_dataClone) ; }
50
51 // Override this to be always true to force calculation of likelihood without parameters
52 virtual Bool_t isDerived() const { return kTRUE ; }
53
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() ; }
57
58private:
59 void setUpBinSampling();
60
61protected:
62
63 Bool_t setDataSlave(RooAbsData& data, Bool_t cloneData=kTRUE, Bool_t ownNewDataAnyway=kFALSE) ;
64 void initSlave(RooAbsReal& real, RooAbsData& indata, const RooArgSet& projDeps, const char* rangeName,
65 const char* addCoefRangeName) ;
66
67 friend class RooAbsReal ;
68
69 virtual Bool_t allowFunctionCache() { return kTRUE ; }
70 void constOptimizeTestStatistic(ConstOpCode opcode, Bool_t doAlsoTrackingOpt=kTRUE) ;
71
72 virtual Bool_t redirectServersHook(const RooAbsCollection& newServerList, Bool_t mustReplaceAll, Bool_t nameChange, Bool_t isRecursive) ;
73 virtual void printCompactTreeHook(std::ostream& os, const char* indent="") ;
74 virtual RooArgSet requiredExtraObservables() const { return RooArgSet() ; }
75 void optimizeCaching() ;
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_t _ownData ; // Do we own the dataset
84 Bool_t _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
92 double _integrateBinsPrecision{-1.}; // Precision for finer sampling of bins.
93
94 ClassDef(RooAbsOptTestStatistic,5) // Abstract base class for optimized test statistics
95};
96
97#endif
const Bool_t kFALSE
Definition RtypesCore.h:92
unsigned long ULong_t
Definition RtypesCore.h:55
double Double_t
Definition RtypesCore.h:59
const Bool_t kTRUE
Definition RtypesCore.h:91
#define ClassDef(name, id)
Definition Rtypes.h:325
static void indent(ostringstream &buf, int indent_level)
char name[80]
Definition TGX11.cxx:110
char * Form(const char *fmt,...)
friend class RooArgSet
Definition RooAbsArg.h:606
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:49
RooAbsOptTestStatistic is the abstract base class for test statistics objects that evaluate a functio...
virtual ~RooAbsOptTestStatistic()
Destructor.
void seal(const char *notice="")
virtual const char * cacheUniqueSuffix() const
const RooAbsReal & function() const
RooAbsReal * _origFunc
List of nodes that are cached as constant expressions.
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
void optimizeConstantTerms(Bool_t, Bool_t=kTRUE)
Driver function to activate global constant term optimization.
virtual Bool_t isDerived() const
Does value or shape of this arg depend on any other arg?
void setUpBinSampling()
Inspect PDF to find out if we are doing a binned fit to a 1-dimensional unbinned PDF.
virtual Bool_t allowFunctionCache()
virtual Bool_t redirectServersHook(const RooAbsCollection &newServerList, Bool_t mustReplaceAll, Bool_t nameChange, Bool_t isRecursive)
Catch server redirect calls and forward to internal clone of function.
virtual void printCompactTreeHook(std::ostream &os, const char *indent="")
Catch print hook function and forward to function clone.
void initSlave(RooAbsReal &real, RooAbsData &indata, const RooArgSet &projDeps, const char *rangeName, const char *addCoefRangeName)
virtual Double_t combinedValue(RooAbsReal **gofArray, Int_t nVal) const
Method to combined test statistic results calculated into partitions into the global result.
virtual RooArgSet requiredExtraObservables() const
RooAbsOptTestStatistic()
Default Constructor.
Bool_t setDataSlave(RooAbsData &data, Bool_t cloneData=kTRUE, Bool_t ownNewDataAnyway=kFALSE)
Change dataset that is used to given one.
void constOptimizeTestStatistic(ConstOpCode opcode, Bool_t doAlsoTrackingOpt=kTRUE)
Driver function to propagate constant term optimizations in test statistic.
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
Definition RooAbsReal.h:61
RooAbsTestStatistic is the abstract base class for all test statistics.
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Definition RooArgSet.h:29
Basic string class.
Definition TString.h:136
const char * Data() const
Definition TString.h:369
@ BulkPartition