Logo ROOT  
Reference Guide
HypoTestCalculatorGeneric.h
Go to the documentation of this file.
1// @(#)root/roostats:$Id$
2// Author: Kyle Cranmer, Sven Kreiss 23/05/10
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_HypoTestCalculatorGeneric
12#define ROOSTATS_HypoTestCalculatorGeneric
13
14
15#ifndef ROOT_Rtypes
16#include "Rtypes.h" // necessary for TNamed
17#endif
18
20
22
24
26
28
30
31
32namespace RooStats {
33
35
36 public:
38 const RooAbsData &data,
39 const ModelConfig &altModel,
40 const ModelConfig &nullModel,
41 TestStatSampler* sampler=0
42 );
43
44
46
47
48 public:
49
50 /// inherited methods from HypoTestCalculator interface
51 virtual HypoTestResult* GetHypoTest() const;
52
53 // set the model for the null hypothesis (only B)
54 virtual void SetNullModel(const ModelConfig &nullModel) { fNullModel = &nullModel; }
55 const RooAbsData * GetData(void) const { return fData; }
56 const ModelConfig* GetNullModel(void) const { return fNullModel; }
57 virtual const RooArgSet* GetFitInfo() const { return NULL; }
58 /// Set the model for the alternate hypothesis (S+B)
59 virtual void SetAlternateModel(const ModelConfig &altModel) { fAltModel = &altModel; }
60 const ModelConfig* GetAlternateModel(void) const { return fAltModel; }
61 /// Set the DataSet
62 virtual void SetData(RooAbsData &data) { fData = &data; }
63
64 /// Returns instance of TestStatSampler. Use to change properties of
65 /// TestStatSampler, e.g. GetTestStatSampler.SetTestSize(Double_t size);
67
68 /// Set this for re-using always the same toys for alternate hypothesis in
69 /// case of calls at different null parameter points
70 /// This is useful to get more stable bands when running the HypoTest inversion
71 void UseSameAltToys();
72
73
74 protected:
75 // should return zero (to be used later for conditional flow)
76 virtual int CheckHook(void) const { return 0; }
77 virtual int PreNullHook(RooArgSet* /*parameterPoint*/, double /*obsTestStat*/) const { return 0; }
78 virtual int PreAltHook(RooArgSet* /*parameterPoint*/, double /*obsTestStat*/) const { return 0; }
79 virtual void PreHook() const { }
80 virtual void PostHook() const { }
81
82 protected:
89
90 unsigned int fAltToysSeed; // to have same toys for alternate
91
92 private:
93 void SetupSampler(const ModelConfig& model) const;
94 void SetAdaptiveLimits(Double_t obsTestStat, Bool_t forNull) const;
96 ModelConfig *thisModel,
97 double obsTestStat,
98 RooAbsPdf *impDens=NULL,
99 const RooArgSet *impSnapshot=NULL
100 ) const;
101
102
103 protected:
105};
106}
107
108#endif
double Double_t
Definition: RtypesCore.h:57
#define ClassDef(name, id)
Definition: Rtypes.h:322
RooAbsData is the common abstract base class for binned and unbinned datasets.
Definition: RooAbsData.h:44
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Definition: RooArgSet.h:28
Common base class for the Hypothesis Test Calculators.
const ModelConfig * GetNullModel(void) const
void SetAdaptiveLimits(Double_t obsTestStat, Bool_t forNull) const
HypoTestCalculatorGeneric(const RooAbsData &data, const ModelConfig &altModel, const ModelConfig &nullModel, TestStatSampler *sampler=0)
Constructor.
SamplingDistribution * GenerateSamplingDistribution(ModelConfig *thisModel, double obsTestStat, RooAbsPdf *impDens=NULL, const RooArgSet *impSnapshot=NULL) const
virtual int PreNullHook(RooArgSet *, double) const
void SetupSampler(const ModelConfig &model) const
common setup for both models
virtual void SetAlternateModel(const ModelConfig &altModel)
Set the model for the alternate hypothesis (S+B)
virtual void SetNullModel(const ModelConfig &nullModel)
const ModelConfig * GetAlternateModel(void) const
virtual int PreAltHook(RooArgSet *, double) const
TestStatSampler * GetTestStatSampler(void) const
Returns instance of TestStatSampler.
virtual HypoTestResult * GetHypoTest() const
inherited methods from HypoTestCalculator interface
virtual const RooArgSet * GetFitInfo() const
void UseSameAltToys()
Set this for re-using always the same toys for alternate hypothesis in case of calls at different nul...
const RooAbsData * GetData(void) const
virtual void SetData(RooAbsData &data)
Set the DataSet.
HypoTestCalculator is an interface class for a tools which produce RooStats HypoTestResults.
HypoTestResult is a base class for results from hypothesis tests.
ModelConfig is a simple class that holds configuration information specifying how a model should be u...
Definition: ModelConfig.h:30
This class simply holds a sampling distribution of some test statistic.
TestStatSampler is an interface class for a tools which produce RooStats SamplingDistributions.
TestStatistic is an interface class to provide a facility for construction test statistics distributi...
Definition: TestStatistic.h:31
Namespace for the RooStats classes.
Definition: Asimov.h:19