ROOT  6.07/01
Reference Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
IntervalCalculator.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_IntervalCalculator
12 #define ROOSTATS_IntervalCalculator
13 
14 
15 
16 #ifndef ROOT_Rtypes
17 #include "Rtypes.h"
18 #endif
19 
20 //#include "TNamed.h"
21 
22 
23 
24 
25 class RooAbsData;
26 class RooWorkspace;
27 
28 namespace RooStats {
29 
30  class ConfInterval;
31 
32  class ModelConfig;
33 
34  /**
35 
36 
37 \ingroup Roostats
38 
39 IntervalCalculator is an interface class for a tools which produce RooStats ConfIntervals. The interface currently assumes that any interval calculator can be configured by specifying:
40 
41 * a model,
42 * a data set,
43 * a set of parameters of interest,
44 * a set of nuisance parameters (eg. parameters on which the model depends, but are not of interest), and
45 * a confidence level or size of the test (eg. rate of Type I error).
46 
47 The interface allows one to pass the model, data, and parameters via a workspace and then specify them with names. The interface will be extended so that one does not need to use a workspace.
48 
49 After configuring the calculator, one only needs to ask GetInterval, which will return a ConfInterval pointer.
50 
51 The concrete implementations of this interface should deal with the details of how the nuisance parameters are dealt with (eg. integration vs. profiling) and which test-statistic is used (perhaps this should be added to the interface).
52 
53 The motivation for this interface is that we hope to be able to specify the problem in a common way for several concrete calculators.END_HTML
54 
55 */
56 
57 
59 
60  public:
61 
62  virtual ~IntervalCalculator() {}
63 
64  /// Main interface to get a ConfInterval, pure virtual
65  virtual ConfInterval* GetInterval() const = 0;
66 
67  /// Get the size of the test (eg. rate of Type I error)
68  virtual Double_t Size() const = 0;
69 
70  /// Get the Confidence level for the test
71  virtual Double_t ConfidenceLevel() const = 0;
72 
73  /// Set the DataSet ( add to the the workspace if not already there ?)
74  virtual void SetData(RooAbsData&) = 0;
75 
76  /// Set the Model
77  virtual void SetModel(const ModelConfig & /* model */) = 0;
78 
79  /// set the size of the test (rate of Type I error) ( e.g. 0.05 for a 95% Confidence Interval)
80  virtual void SetTestSize(Double_t size) = 0;
81 
82  /// set the confidence level for the interval (e.g. 0.95 for a 95% Confidence Interval)
83  virtual void SetConfidenceLevel(Double_t cl) = 0;
84 
85  protected:
86  ClassDef(IntervalCalculator,1) // Interface for tools setting limits (producing confidence intervals)
87  };
88 }
89 
90 
91 #endif
virtual void SetModel(const ModelConfig &)=0
Set the Model.
ModelConfig is a simple class that holds configuration information specifying how a model should be u...
Definition: ModelConfig.h:52
IntervalCalculator is an interface class for a tools which produce RooStats ConfIntervals.
virtual Double_t ConfidenceLevel() const =0
Get the Confidence level for the test.
virtual void SetData(RooAbsData &)=0
Set the DataSet ( add to the the workspace if not already there ?)
virtual Double_t Size() const =0
Get the size of the test (eg. rate of Type I error)
#define ClassDef(name, id)
Definition: Rtypes.h:254
RooAbsData is the common abstract base class for binned and unbinned datasets.
Definition: RooAbsData.h:37
virtual void SetTestSize(Double_t size)=0
set the size of the test (rate of Type I error) ( e.g. 0.05 for a 95% Confidence Interval) ...
ConfInterval is an interface class for a generic interval in the RooStats framework.
Definition: ConfInterval.h:44
double Double_t
Definition: RtypesCore.h:55
virtual ConfInterval * GetInterval() const =0
Main interface to get a ConfInterval, pure virtual.
virtual void SetConfidenceLevel(Double_t cl)=0
set the confidence level for the interval (e.g. 0.95 for a 95% Confidence Interval) ...
The RooWorkspace is a persistable container for RooFit projects.
Definition: RooWorkspace.h:42