Logo ROOT   6.10/09
Reference Guide
TestStatSampler.h
Go to the documentation of this file.
1 // @(#)root/roostats:$Id$
2 // Author: Kyle Cranmer, Lorenzo Moneta, Gregory Schott, Wouter Verkerke
3 /*************************************************************************
4  * Copyright (C) 1995-2008, Rene Brun and Fons Rademakers. *
5  * All rights reserved. *
6  * *
7  * For the licensing terms see $ROOTSYS/LICENSE. *
8  * For the list of contributors see $ROOTSYS/README/CREDITS. *
9  *************************************************************************/
10 
11 #ifndef ROOSTATS_TestStatSampler
12 #define ROOSTATS_TestStatSampler
13 
14 
15 #include "Rtypes.h"
16 
17 class RooAbsArg;
18 class RooAbsData;
19 class RooArgSet;
20 class RooAbsPdf;
21 
22 
23 
24 
25 namespace RooStats {
26 
27  class SamplingDistribution;
28  class TestStatistic;
29 
30 /** \class RooStats::TestStatSampler
31  \ingroup Roostats
32 
33 TestStatSampler is an interface class for a tools which produce RooStats
34 SamplingDistributions. Tools that implement this interface are expected to be
35 used for coverage studies, the Neyman Construction, etc.
36 
37 */
38 
40 
41  public:
42  // TestStatSampler();
43  virtual ~TestStatSampler() {}
44 
45  // Main interface to get a ConfInterval, pure virtual
46  virtual SamplingDistribution* GetSamplingDistribution(RooArgSet& paramsOfInterest) = 0;
47 
48  // Main interface to evaluate the test statistic on a dataset
49  virtual Double_t EvaluateTestStatistic(RooAbsData& data, RooArgSet& paramsOfInterest) = 0;
50 
51  // Get the TestStatistic
52  virtual TestStatistic* GetTestStatistic() const = 0;
53 
54  // Get the Confidence level for the test
55  virtual Double_t ConfidenceLevel() const = 0;
56 
57  // Common Initialization
58  virtual void Initialize(RooAbsArg& testStatistic, RooArgSet& paramsOfInterest, RooArgSet& nuisanceParameters) = 0;
59 
60  // Set the Pdf, add to the the workspace if not already there
61  virtual void SetPdf(RooAbsPdf&) = 0;
62  // How to randomize the prior. Set to NULL to deactivate randomization.
63  virtual void SetPriorNuisance(RooAbsPdf*) = 0;
64 
65  // specify the values of parameters used when evaluating test statistic
66  virtual void SetParametersForTestStat(const RooArgSet& /*nullpoi*/) = 0;
67 
68  // REMOVE THIS
69  // specify the parameters of interest in the interval
70  // virtual void SetParameters(const RooArgSet&) = 0;
71 
72  // specify the nuisance parameters (eg. the rest of the parameters)
73  virtual void SetNuisanceParameters(const RooArgSet&) = 0;
74  // specify the observables in the dataset (needed to evaluate the test statistic)
75  virtual void SetObservables(const RooArgSet& ) = 0;
76  // specify the conditional observables
77  virtual void SetGlobalObservables(const RooArgSet& ) = 0;
78 
79  // set the size of the test (rate of Type I error) ( Eg. 0.05 for a 95% Confidence Interval)
80  virtual void SetTestSize(Double_t size) = 0;
81  // set the confidence level for the interval (eg. 0.95 for a 95% Confidence Interval)
82  virtual void SetConfidenceLevel(Double_t cl) = 0;
83 
84  // Set the TestStatistic (want the argument to be a function of the data & parameter points
85  virtual void SetTestStatistic(TestStatistic* testStatistic) = 0;
86 
87  // Set the name of the sampling distribution used for plotting
88  virtual void SetSamplingDistName(const char* name) = 0;
89 
90 
91  protected:
92  ClassDef(TestStatSampler,1) // Interface for tools setting limits (producing confidence intervals)
93  };
94 }
95 
96 
97 #endif
virtual void SetParametersForTestStat(const RooArgSet &)=0
virtual TestStatistic * GetTestStatistic() const =0
TestStatSampler is an interface class for a tools which produce RooStats SamplingDistributions.
virtual void SetTestSize(Double_t size)=0
virtual void SetPdf(RooAbsPdf &)=0
virtual Double_t ConfidenceLevel() const =0
virtual void SetSamplingDistName(const char *name)=0
virtual void SetNuisanceParameters(const RooArgSet &)=0
virtual void SetTestStatistic(TestStatistic *testStatistic)=0
#define ClassDef(name, id)
Definition: Rtypes.h:297
virtual void Initialize(RooAbsArg &testStatistic, RooArgSet &paramsOfInterest, RooArgSet &nuisanceParameters)=0
virtual void SetObservables(const RooArgSet &)=0
virtual SamplingDistribution * GetSamplingDistribution(RooArgSet &paramsOfInterest)=0
virtual void SetConfidenceLevel(Double_t cl)=0
RooAbsData is the common abstract base class for binned and unbinned datasets.
Definition: RooAbsData.h:37
This class simply holds a sampling distribution of some test statistic.
Namespace for the RooStats classes.
Definition: Asimov.h:20
double Double_t
Definition: RtypesCore.h:55
RooAbsPdf is the abstract interface for all probability density functions The class provides hybrid a...
Definition: RooAbsPdf.h:41
virtual Double_t EvaluateTestStatistic(RooAbsData &data, RooArgSet &paramsOfInterest)=0
virtual void SetGlobalObservables(const RooArgSet &)=0
virtual void SetPriorNuisance(RooAbsPdf *)=0
RooAbsArg is the common abstract base class for objects that represent a value (of arbitrary type) an...
Definition: RooAbsArg.h:66
TestStatistic is an interface class to provide a facility for construction test statistics distributi...
Definition: TestStatistic.h:31