16 #ifndef ROOSTATS_HybridCalculatorOriginal
17 #define ROOSTATS_HybridCalculatorOriginal
34 class HybridCalculatorOriginal :
public HypoTestCalculator ,
public TNamed {
40 explicit HybridCalculatorOriginal(
const char *name = 0);
43 HybridCalculatorOriginal(RooAbsPdf& sb_model,
45 RooArgList& observables,
46 const RooArgSet* nuisance_parameters = 0,
47 RooAbsPdf* prior_pdf = 0,
48 bool GenerateBinned =
false,
int testStatistics = 1,
int ntoys = 1000 );
51 HybridCalculatorOriginal(RooAbsData& data,
54 const RooArgSet* nuisance_parameters = 0,
55 RooAbsPdf* prior_pdf = 0,
56 bool GenerateBinned =
false,
int testStatistics = 1,
int ntoys = 1000 );
60 HybridCalculatorOriginal(RooAbsData& data,
61 const ModelConfig& sb_model,
62 const ModelConfig& b_model,
63 bool GenerateBinned =
false,
int testStatistics = 1,
int ntoys = 1000 );
69 virtual ~HybridCalculatorOriginal();
72 virtual HybridResult* GetHypoTest()
const;
78 virtual void SetNullModel(
const ModelConfig & );
80 virtual void SetAlternateModel(
const ModelConfig & );
84 virtual void SetCommonPdf(RooAbsPdf & pdf) { fSbModel = &pdf; }
86 virtual void SetNullPdf(RooAbsPdf& pdf) { fBModel = &pdf; }
88 virtual void SetAlternatePdf(RooAbsPdf& pdf) { fSbModel = &pdf; }
91 virtual void SetData(RooAbsData& data) { fData = &data; }
94 virtual void SetNullParameters(
const RooArgSet& ) { }
96 virtual void SetAlternateParameters(
const RooArgSet&) {}
100 void SetNuisancePdf(RooAbsPdf & prior_pdf) {
101 fPriorPdf = &prior_pdf;
106 void SetNuisanceParameters(
const RooArgSet & params) { fNuisanceParameters = ¶ms; }
109 void SetNumberOfToys(
unsigned int ntoys) { fNToys = ntoys; }
112 unsigned int GetNumberOfToys()
const {
return fNToys; }
115 void UseNuisance(
bool on =
true) { fUsePriorPdf = on; }
118 void SetGenerateBinned(
bool on =
true) { fGenerateBinned = on; }
125 void SetTestStatistic(
int index);
127 HybridResult* Calculate(TH1& data,
unsigned int nToys,
bool usePriors)
const;
128 HybridResult* Calculate(RooAbsData& data,
unsigned int nToys,
bool usePriors)
const;
129 HybridResult* Calculate(
unsigned int nToys,
bool usePriors)
const;
130 void PrintMore(
const char* options)
const;
132 void PatchSetExtended(
bool on =
true) { fTmpDoExtended = on; std::cout <<
"extended patch set to " << on << std::endl; }
136 void RunToys(std::vector<double>& bVals, std::vector<double>& sbVals,
unsigned int nToys,
bool usePriors)
const;
139 bool DoCheckInputs()
const;
141 unsigned int fTestStatisticsIdx;
145 mutable RooArgList* fObservables;
146 const RooArgSet* fNuisanceParameters;
147 RooAbsPdf* fPriorPdf;
149 bool fGenerateBinned;
159 ClassDef(HybridCalculatorOriginal,1)