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=nullptr
42 );
43
44
46
47
48 public:
49
50 /// inherited methods from HypoTestCalculator interface
51 HypoTestResult* GetHypoTest() const override;
52
53 /// set the model for the null hypothesis (only B)
54 void SetNullModel(const ModelConfig &nullModel) override { 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 nullptr; }
58 /// Set the model for the alternate hypothesis (S+B)
59 void SetAlternateModel(const ModelConfig &altModel) override { fAltModel = &altModel; }
60 const ModelConfig* GetAlternateModel(void) const { return fAltModel; }
61 /// Set the DataSet
62 void SetData(RooAbsData &data) override { fData = &data; }
63
64 /// Returns instance of TestStatSampler. Use to change properties of
65 /// TestStatSampler, e.g. GetTestStatSampler.SetTestSize(double 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 obsTestStat, bool forNull) const;
96 ModelConfig *thisModel,
97 double obsTestStat,
98 RooAbsPdf *impDens=nullptr,
99 const RooArgSet *impSnapshot=nullptr
100 ) const;
101
102
103 protected:
105};
106}
107
108#endif
#define ClassDefOverride(name, id)
Definition: Rtypes.h:339
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void data
RooAbsData is the common abstract base class for binned and unbinned datasets.
Definition: RooAbsData.h:62
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Definition: RooArgSet.h:56
Common base class for the Hypothesis Test Calculators.
void SetAdaptiveLimits(double obsTestStat, bool forNull) const
const ModelConfig * GetNullModel(void) const
void SetNullModel(const ModelConfig &nullModel) override
set the model for the null hypothesis (only B)
void SetData(RooAbsData &data) override
Set the DataSet.
HypoTestResult * GetHypoTest() const override
inherited methods from HypoTestCalculator interface
virtual int PreNullHook(RooArgSet *, double) const
void SetupSampler(const ModelConfig &model) const
common setup for both models
const ModelConfig * GetAlternateModel(void) const
virtual int PreAltHook(RooArgSet *, double) const
TestStatSampler * GetTestStatSampler(void) const
Returns instance of TestStatSampler.
virtual const RooArgSet * GetFitInfo() const
SamplingDistribution * GenerateSamplingDistribution(ModelConfig *thisModel, double obsTestStat, RooAbsPdf *impDens=nullptr, const RooArgSet *impSnapshot=nullptr) const
void SetAlternateModel(const ModelConfig &altModel) override
Set the model for the alternate hypothesis (S+B)
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
HypoTestCalculatorGeneric(const RooAbsData &data, const ModelConfig &altModel, const ModelConfig &nullModel, TestStatSampler *sampler=nullptr)
Constructor.
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