39using std::endl, std::string;
113 std::unique_ptr<const RooArgSet> nullSnapshot {
fNullModel->GetSnapshot()};
114 if(nullSnapshot ==
nullptr) {
115 oocoutE(
nullptr,Generation) <<
"Null model needs a snapshot. Set using modelconfig->SetSnapshot(poi)." << endl;
121 oocoutE(
nullptr,Generation) <<
"There was an error in CheckHook(). Stop." << endl;
126 oocoutE(
nullptr,InputArguments) <<
"Test Statistic Sampler or Test Statistics not defined. Stop." << endl;
131 std::unique_ptr<RooArgSet> altParams{
fAltModel->GetPdf()->getParameters(*
fData)};
133 std::unique_ptr<RooArgSet> bothParams{
fNullModel->GetPdf()->getParameters(*
fData)};
134 bothParams->add(*altParams,
false);
135 std::unique_ptr<RooArgSet> saveAll {(
RooArgSet*) bothParams->snapshot()};
145 std::unique_ptr<RooArgList> allTS;
148 if (!allTS)
return nullptr;
152 obsTestStat = firstTS->
getVal();
153 if (allTS->size()<=1) {
159 oocoutP(
nullptr,Generation) <<
"Test Statistic on data: " << obsTestStat << endl;
164 bothParams->assign(*saveAll);
171 if(
PreNullHook(¶mPointNull, obsTestStat) != 0) {
172 oocoutE(
nullptr,Generation) <<
"PreNullHook did not return 0." << endl;
180 if (detOut_null->
get()->
size()<=1) {
182 detOut_null=
nullptr;
185 }
else samp_null =
fTestStatSampler->GetSamplingDistribution(paramPointNull);
188 bothParams->assign(*saveAll);
193 if(
PreAltHook(¶mPointAlt, obsTestStat) != 0) {
194 oocoutE(
nullptr,Generation) <<
"PreAltHook did not return 0." << endl;
202 unsigned int prevSeed = 0;
211 if (detOut_alt->
get()->
size()<=1) {
226 string resultname =
"HypoTestCalculator_result";
237 if (aset !=
nullptr) {
243 bothParams->assign(*saveAll);
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void data
Storage_t::size_type size() const
Abstract base class for binned and unbinned datasets.
double getVal(const RooArgSet *normalisationSet=nullptr) const
Evaluate object.
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Container class to hold unbinned data.
const RooArgSet * get(Int_t index) const override
Return RooArgSet with coordinates of event 'index'.
void add(const RooArgSet &row, double weight, double weightError)
Add one ore more rows of data.
static UInt_t integer(UInt_t max, TRandom *generator=randomGenerator())
Return an integer uniformly distributed from [0,n-1].
static TRandom * randomGenerator()
Return a pointer to a singleton random-number generator implementation.
Variable that can be changed from the outside.
Common base class for the Hypothesis Test Calculators.
const ModelConfig * fAltModel
virtual void PreHook() const
HypoTestResult * GetHypoTest() const override
inherited methods from HypoTestCalculator interface
~HypoTestCalculatorGeneric() override
virtual int PreNullHook(RooArgSet *, double) const
void SetupSampler(const ModelConfig &model) const
common setup for both models
TestStatSampler * fTestStatSampler
unsigned int fAltToysSeed
virtual int PreAltHook(RooArgSet *, double) const
const ModelConfig * fNullModel
TestStatistic * fDefaultTestStat
virtual int CheckHook(void) const
virtual const RooArgSet * GetFitInfo() const
void UseSameAltToys()
Set this for re-using always the same toys for alternate hypothesis in case of calls at different nul...
TestStatSampler * fDefaultSampler
virtual void PostHook() const
HypoTestCalculatorGeneric(const RooAbsData &data, const ModelConfig &altModel, const ModelConfig &nullModel, TestStatSampler *sampler=nullptr)
Constructor.
HypoTestResult is a base class for results from hypothesis tests.
void SetAltDetailedOutput(RooDataSet *d)
void SetNullDetailedOutput(RooDataSet *d)
void SetAllTestStatisticsData(const RooArgList *tsd)
void SetNullDistribution(SamplingDistribution *null)
void SetTestStatisticData(const double tsd)
void SetFitInfo(RooDataSet *d)
void SetAltDistribution(SamplingDistribution *alt)
void SetPValueIsRightTail(bool pr)
ModelConfig is a simple class that holds configuration information specifying how a model should be u...
const RooArgSet * GetNuisanceParameters() const
get RooArgSet containing the nuisance parameters (return nullptr if not existing)
void LoadSnapshot() const
load the snapshot from ws if it exists
const RooArgSet * GetSnapshot() const
get RooArgSet for parameters for a particular hypothesis (return nullptr if not existing)
RooAbsPdf * GetPdf() const
get model PDF (return nullptr if pdf has not been specified or does not exist)
TestStatistic that returns the ratio of profiled likelihoods.
This class simply holds a sampling distribution of some test statistic.
TestStatSampler is an interface class for a tools which produce RooStats SamplingDistributions.
ToyMCSampler is an implementation of the TestStatSampler interface.
virtual RooArgList * EvaluateAllTestStatistics(RooAbsData &data, const RooArgSet &poi)
Evaluate all test statistics, returning result and any detailed output.
virtual RooDataSet * GetSamplingDistributions(RooArgSet ¶mPoint)
Use for serial and parallel runs.
const char * GetName() const override
Returns name of object.
const char * GetTitle() const override
Returns title of object.
virtual void SetSeed(ULong_t seed=0)
Set the random generator seed.
Namespace for the RooStats classes.