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=0
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
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; fPriorNuisanceNullExternal = true;
53 }
54 virtual void ForcePriorNuisanceAlt(RooAbsPdf& priorNuisance) {
56 fPriorNuisanceAlt = &priorNuisance; fPriorNuisanceAltExternal = true;
57 }
58
59 virtual void SetNullModel(const ModelConfig &nullModel) {
60 fNullModel = &nullModel;
61 if(fPriorNuisanceNullExternal == false) {
62 delete fPriorNuisanceNull;
63 fPriorNuisanceNull = MakeNuisancePdf(nullModel, "PriorNuisanceNull");
64 }
65 }
66
67 virtual void SetAlternateModel(const ModelConfig &altModel) {
68 fAltModel = &altModel;
69 if(fPriorNuisanceAltExternal == false) {
70 delete fPriorNuisanceAlt;
71 fPriorNuisanceAlt = MakeNuisancePdf(altModel, "PriorNuisanceAlt");
72 }
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;
84
85 /// configure TestStatSampler for the Null run
86 int PreNullHook(RooArgSet* /*parameterPoint*/, double obsTestStat) const;
87
88 /// configure TestStatSampler for the Alt run
89 int PreAltHook(RooArgSet* /*parameterPoint*/, double obsTestStat) const;
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
bool Bool_t
Definition: RtypesCore.h:59
#define ClassDef(name, id)
Definition: Rtypes.h:326
RooAbsData is the common abstract base class for binned and unbinned datasets.
Definition: RooAbsData.h:39
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Definition: RooArgSet.h:28
Same purpose as HybridCalculatorOriginal, but different implementation.
HybridCalculator(const RooAbsData &data, const ModelConfig &altModel, const ModelConfig &nullModel, TestStatSampler *sampler=0)
virtual void ForcePriorNuisanceNull(RooAbsPdf &priorNuisance)
Override the distribution used for marginalizing nuisance parameters that is inferred from ModelConfi...
int PreAltHook(RooArgSet *, double obsTestStat) const
configure TestStatSampler for the Alt run
virtual void SetNullModel(const ModelConfig &nullModel)
virtual void ForcePriorNuisanceAlt(RooAbsPdf &priorNuisance)
int PreNullHook(RooArgSet *, double obsTestStat) const
configure TestStatSampler for the Null run
void SetToys(int toysNull, int toysAlt)
set number of toys
int CheckHook(void) const
check whether all input is consistent
void SetNToysInTails(int toysNull, int toysAlt)
set least number of toys in tails
virtual void SetAlternateModel(const ModelConfig &altModel)
Set the model for the alternate hypothesis (S+B)
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:20
RooAbsPdf * MakeNuisancePdf(RooAbsPdf &pdf, const RooArgSet &observables, const char *name)