11 #ifndef ROOSTATS_HybridCalculator
12 #define ROOSTATS_HybridCalculator
22 class HybridCalculator :
public HypoTestCalculatorGeneric {
26 const RooAbsData &data,
27 const ModelConfig &altModel,
28 const ModelConfig &nullModel,
29 TestStatSampler* sampler=0
31 HypoTestCalculatorGeneric(data, altModel, nullModel, sampler),
32 fPriorNuisanceNull(MakeNuisancePdf(nullModel,
"PriorNuisanceNull")),
33 fPriorNuisanceAlt(MakeNuisancePdf(altModel,
"PriorNuisanceAlt")),
34 fPriorNuisanceNullExternal(false),
35 fPriorNuisanceAltExternal(false),
44 if(fPriorNuisanceNullExternal ==
false)
delete fPriorNuisanceNull;
45 if(fPriorNuisanceAltExternal ==
false)
delete fPriorNuisanceAlt;
50 virtual void ForcePriorNuisanceNull(RooAbsPdf& priorNuisance) {
51 if(fPriorNuisanceNullExternal ==
false)
delete fPriorNuisanceNull;
52 fPriorNuisanceNull = &priorNuisance; fPriorNuisanceNullExternal =
true;
54 virtual void ForcePriorNuisanceAlt(RooAbsPdf& priorNuisance) {
55 if(fPriorNuisanceAltExternal ==
false)
delete fPriorNuisanceAlt;
56 fPriorNuisanceAlt = &priorNuisance; fPriorNuisanceAltExternal =
true;
59 virtual void SetNullModel(
const ModelConfig &nullModel) {
60 fNullModel = &nullModel;
61 if(fPriorNuisanceNullExternal ==
false) {
62 delete fPriorNuisanceNull;
63 fPriorNuisanceNull = MakeNuisancePdf(nullModel,
"PriorNuisanceNull");
67 virtual void SetAlternateModel(
const ModelConfig &altModel) {
68 fAltModel = &altModel;
69 if(fPriorNuisanceAltExternal ==
false) {
70 delete fPriorNuisanceAlt;
71 fPriorNuisanceAlt = MakeNuisancePdf(altModel,
"PriorNuisanceAlt");
76 void SetToys(
int toysNull,
int toysAlt) { fNToysNull = toysNull; fNToysAlt = toysAlt; }
79 void SetNToysInTails(
int toysNull,
int toysAlt) { fNToysNullTail = toysNull; fNToysAltTail = toysAlt; }
83 int CheckHook(
void)
const;
86 int PreNullHook(RooArgSet* ,
double obsTestStat)
const;
89 int PreAltHook(RooArgSet* ,
double obsTestStat)
const;
92 RooAbsPdf *fPriorNuisanceNull;
93 RooAbsPdf *fPriorNuisanceAlt;
97 Bool_t fPriorNuisanceNullExternal;
98 Bool_t fPriorNuisanceAltExternal;
109 ClassDef(HybridCalculator,2)