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