Logo ROOT  
Reference Guide
HybridCalculator.h
Go to the documentation of this file.
1// @(#)root/roostats:$Id$
2// Author: Sven Kreiss, Kyle Cranmer Nov 2010
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_HybridCalculator
12#define ROOSTATS_HybridCalculator
13
15
17
18
19
20namespace RooStats {
21
23
24 public:
26 const RooAbsData &data,
27 const ModelConfig &altModel,
28 const ModelConfig &nullModel,
29 TestStatSampler* sampler=nullptr
30 ) :
31 HypoTestCalculatorGeneric(data, altModel, nullModel, sampler),
32 fPriorNuisanceNull(MakeNuisancePdf(nullModel, "PriorNuisanceNull")),
33 fPriorNuisanceAlt(MakeNuisancePdf(altModel, "PriorNuisanceAlt")),
36 fNToysNull(-1),
37 fNToysAlt(-1),
40 {
41 }
42
43 ~HybridCalculator() override {
46 }
47
48
49 /// Override the distribution used for marginalizing nuisance parameters that is inferred from ModelConfig
50 virtual void ForcePriorNuisanceNull(RooAbsPdf& priorNuisance) {
52 fPriorNuisanceNull = &priorNuisance;
54 }
55 virtual void ForcePriorNuisanceAlt(RooAbsPdf& priorNuisance) {
57 fPriorNuisanceAlt = &priorNuisance;
59 }
60
61 void SetNullModel(const ModelConfig &nullModel) override {
62 fNullModel = &nullModel;
64 fPriorNuisanceNull = MakeNuisancePdf(nullModel, "PriorNuisanceNull");
66 }
67
68 void SetAlternateModel(const ModelConfig &altModel) override {
69 fAltModel = &altModel;
71 fPriorNuisanceAlt = MakeNuisancePdf(altModel, "PriorNuisanceAlt");
73 }
74
75 /// set number of toys
76 void SetToys(int toysNull, int toysAlt) { fNToysNull = toysNull; fNToysAlt = toysAlt; }
77
78 /// set least number of toys in tails
79 void SetNToysInTails(int toysNull, int toysAlt) { fNToysNullTail = toysNull; fNToysAltTail = toysAlt; }
80
81 protected:
82 /// check whether all input is consistent
83 int CheckHook(void) const override;
84
85 /// configure TestStatSampler for the Null run
86 int PreNullHook(RooArgSet* /*parameterPoint*/, double obsTestStat) const override;
87
88 /// configure TestStatSampler for the Alt run
89 int PreAltHook(RooArgSet* /*parameterPoint*/, double obsTestStat) const override;
90
91 protected:
94
95 // these flags tell us if the nuisance pdfs came from an external resource (via ForcePriorNuisance)
96 // or were created internally and should be deleted
99
100 // different number of toys for null and alt
103
104 // adaptive sampling
107
108 protected:
110 };
111}
112
113#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
Same purpose as HybridCalculatorOriginal, but different implementation.
virtual void ForcePriorNuisanceNull(RooAbsPdf &priorNuisance)
Override the distribution used for marginalizing nuisance parameters that is inferred from ModelConfi...
void SetAlternateModel(const ModelConfig &altModel) override
Set the model for the alternate hypothesis.
int CheckHook(void) const override
check whether all input is consistent
virtual void ForcePriorNuisanceAlt(RooAbsPdf &priorNuisance)
void SetToys(int toysNull, int toysAlt)
set number of toys
void SetNullModel(const ModelConfig &nullModel) override
Set the model for the null hypothesis.
void SetNToysInTails(int toysNull, int toysAlt)
set least number of toys in tails
int PreAltHook(RooArgSet *, double obsTestStat) const override
configure TestStatSampler for the Alt run
HybridCalculator(const RooAbsData &data, const ModelConfig &altModel, const ModelConfig &nullModel, TestStatSampler *sampler=nullptr)
int PreNullHook(RooArgSet *, double obsTestStat) const override
configure TestStatSampler for the Null run
Common base class for the Hypothesis Test Calculators.
ModelConfig is a simple class that holds configuration information specifying how a model should be u...
Definition: ModelConfig.h:30
TestStatSampler is an interface class for a tools which produce RooStats SamplingDistributions.
Namespace for the RooStats classes.
Definition: Asimov.h:19
RooAbsPdf * MakeNuisancePdf(RooAbsPdf &pdf, const RooArgSet &observables, const char *name)
extract constraint terms from pdf