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