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, const char* rangeName=0, const char* addCoefRangeName=0,
36 Bool_t cloneInputData=kTRUE) ;
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
58
59protected:
60
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) ;
64
65 friend class RooAbsReal ;
66
67 virtual Bool_t allowFunctionCache() { return kTRUE ; }
68 void constOptimizeTestStatistic(ConstOpCode opcode, Bool_t doAlsoTrackingOpt=kTRUE) ;
69
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() ;
75
76 RooArgSet* _normSet ; // Pointer to set with observables used for normalization
77 RooArgSet* _funcCloneSet ; // Set owning all components of internal clone of input function
78 RooAbsData* _dataClone ; // Pointer to internal clone if input data
79 RooAbsReal* _funcClone ; // Pointer to internal clone of input function
80 RooArgSet* _projDeps ; // Set of projected observable
81 Bool_t _ownData ; // Do we own the dataset
82 Bool_t _sealed ; // Is test statistic sealed -- i.e. no access to data
83 TString _sealNotice ; // User-defined notice shown when reading a sealed likelihood
84 RooArgSet* _funcObsSet ; // List of observables in the pdf expression
85 RooArgSet _cachedNodes ; //! List of nodes that are cached as constant expressions
86
87 RooAbsReal* _origFunc ; // Original function
88 RooAbsData* _origData ; // Original data
90
91 ClassDef(RooAbsOptTestStatistic,4) // Abstract base class for optimized test statistics
92};
93
94#endif
int Int_t
Definition: RtypesCore.h:41
const Bool_t kFALSE
Definition: RtypesCore.h:88
unsigned long ULong_t
Definition: RtypesCore.h:51
bool Bool_t
Definition: RtypesCore.h:59
double Double_t
Definition: RtypesCore.h:55
const Bool_t kTRUE
Definition: RtypesCore.h:87
#define ClassDef(name, id)
Definition: Rtypes.h:326
static void indent(ostringstream &buf, int indent_level)
char name[80]
Definition: TGX11.cxx:109
char * Form(const char *fmt,...)
friend class RooArgSet
Definition: RooAbsArg.h:551
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:39
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?
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)
cout << "RAOTS::setDataSlave(" << this << ") START" << endl ; Change dataset that is used to given on...
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:59
RooAbsTestStatistic is the abstract base class for all test statistics.
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Definition: RooArgSet.h:28
Basic string class.
Definition: TString.h:131
const char * Data() const
Definition: TString.h:364
@ BulkPartition
Definition: RooGlobalFunc.h:70