46 fNullModel(&nullModel),
48 fTestStatSampler(sampler),
57 altModel.GetSnapshot());
59 fDefaultSampler =
new ToyMCSampler(*fDefaultTestStat, 1000);
60 fTestStatSampler = fDefaultSampler;
69 void HypoTestCalculatorGeneric::SetupSampler(
const ModelConfig& model)
const {
70 fNullModel->LoadSnapshot();
71 fTestStatSampler->SetObservables(*fNullModel->GetObservables());
72 fTestStatSampler->SetParametersForTestStat(*fNullModel->GetParametersOfInterest());
76 fTestStatSampler->SetSamplingDistName(model.
GetName());
77 fTestStatSampler->SetPdf(*model.
GetPdf());
85 HypoTestCalculatorGeneric::~HypoTestCalculatorGeneric() {
86 if(fDefaultSampler)
delete fDefaultSampler;
87 if(fDefaultTestStat)
delete fDefaultTestStat;
102 const_cast<ModelConfig*
>(fNullModel)->GuessObsAndNuisance(*fData);
103 const_cast<ModelConfig*
>(fAltModel)->GuessObsAndNuisance(*fData);
105 const RooArgSet * nullSnapshot = fNullModel->GetSnapshot();
106 if(nullSnapshot ==
NULL) {
112 if(CheckHook() != 0) {
117 if (!fTestStatSampler || !fTestStatSampler->GetTestStatistic() ) {
123 RooArgSet *nullParams = fNullModel->GetPdf()->getParameters(*fData);
124 RooArgSet *altParams = fAltModel->GetPdf()->getParameters(*fData);
126 RooArgSet *bothParams = fNullModel->GetPdf()->getParameters(*fData);
127 bothParams->
add(*altParams,
false);
141 if (!allTS)
return 0;
145 obsTestStat = firstTS->
getVal();
151 obsTestStat = fTestStatSampler->EvaluateTestStatistic(*const_cast<RooAbsData*>(fData), nullP);
158 *bothParams = *saveAll;
163 SetupSampler(*fNullModel);
164 RooArgSet paramPointNull(*fNullModel->GetParametersOfInterest());
165 if(PreNullHook(¶mPointNull, obsTestStat) != 0) {
182 *bothParams = *saveAll;
185 SetupSampler(*fAltModel);
186 RooArgSet paramPointAlt(*fAltModel->GetParametersOfInterest());
187 if(PreAltHook(¶mPointAlt, obsTestStat) != 0) {
196 unsigned int prevSeed = 0;
197 if (fAltToysSeed > 0) {
220 string resultname =
"HypoTestCalculator_result";
237 *bothParams = *saveAll;
251 void HypoTestCalculatorGeneric::UseSameAltToys() {
virtual const char * GetTitle() const
Returns title of object.
void SetAltDistribution(SamplingDistribution *alt)
RooAbsCollection * snapshot(Bool_t deepCopy=kTRUE) const
Take a snap shot of current collection contents: An owning collection is returned containing clones o...
ModelConfig is a simple class that holds configuration information specifying how a model should be u...
RooAbsPdf * GetPdf() const
get model PDF (return NULL if pdf has not been specified or does not exist)
void SetFitInfo(RooDataSet *d)
TestStatSampler is an interface class for a tools which produce RooStats SamplingDistributions.
HypoTestResult is a base class for results from hypothesis tests.
static UInt_t integer(UInt_t max, TRandom *generator=randomGenerator())
Return an integer uniformly distributed from [0,n-1].
virtual void SetSeed(UInt_t seed=0)
Set the random generator seed.
const std::vector< Double_t > & GetSamplingDistribution() const
Get test statistics values.
const RooArgSet * GetNuisanceParameters() const
get RooArgSet containing the nuisance parameters (return NULL if not existing)
virtual RooArgList * EvaluateAllTestStatistics(RooAbsData &data, const RooArgSet &poi)
Common base class for the Hypothesis Test Calculators.
void LoadSnapshot() const
static TRandom * randomGenerator()
Return a pointer to a singleton random-number generator implementation.
Double_t getVal(const RooArgSet *set=0) const
void SetAllTestStatisticsData(const RooArgList *tsd)
void SetAltDetailedOutput(RooDataSet *d)
virtual const char * GetName() const
Returns name of object.
ToyMCSampler is an implementation of the TestStatSampler interface.
void SetTestStatisticData(const Double_t tsd)
This class simply holds a sampling distribution of some test statistic.
TestStatistic that returns the ratio of profiled likelihoods.
virtual void add(const RooArgSet &row, Double_t weight=1.0, Double_t weightError=0)
Add a data point, with its coordinates specified in the 'data' argset, to the data set...
void SetPValueIsRightTail(Bool_t pr)
Namespace for the RooStats classes.
RooAbsArg * at(Int_t idx) const
static Vc_ALWAYS_INLINE int_v max(const int_v &x, const int_v &y)
ClassImp(RooStats::HypoTestCalculatorGeneric) using namespace RooStats
Same purpose as HybridCalculatorOriginal, but different implementation.
Mother of all ROOT objects.
void SetNullDetailedOutput(RooDataSet *d)
virtual RooDataSet * GetSamplingDistributions(RooArgSet ¶mPoint)
virtual const RooArgSet * get(Int_t index) const
Return RooArgSet with coordinates of event 'index'.
virtual Bool_t add(const RooAbsArg &var, Bool_t silent=kFALSE)
Add element to non-owning set.
void SetNullDistribution(SamplingDistribution *null)