68#define NaN numeric_limits<float>::quiet_NaN() 
   69#define IsNaN(a) TMath::IsNaN(a) 
   73using std::numeric_limits, std::endl;
 
   80   fNullPValue(
NaN), fAlternatePValue(
NaN),
 
   81   fNullPValueError(0), fAlternatePValueError(0),
 
   82   fTestStatisticData(
NaN),
 
   83   fAllTestStatisticsData(nullptr),
 
   84   fNullDistr(nullptr), fAltDistr(nullptr),
 
   85   fNullDetailedOutput(nullptr), fAltDetailedOutput(nullptr),
 
   86   fPValueIsRightTail(
true),
 
   87   fBackgroundIsAlt(
false)
 
 
   96   fNullPValue(
nullp), fAlternatePValue(
altp),
 
   97   fNullPValueError(0), fAlternatePValueError(0),
 
   98   fTestStatisticData(
NaN),
 
   99   fAllTestStatisticsData(nullptr),
 
  100   fNullDistr(nullptr), fAltDistr(nullptr),
 
  101   fNullDetailedOutput(nullptr), fAltDetailedOutput(nullptr),
 
  102   fPValueIsRightTail(
true),
 
  103   fBackgroundIsAlt(
false)
 
 
  112   fNullPValue(
other.fNullPValue), fAlternatePValue(
other.fAlternatePValue),
 
  113   fNullPValueError(
other.fNullPValueError), fAlternatePValueError(
other.fAlternatePValueError),
 
  114   fTestStatisticData(
other.fTestStatisticData),
 
  115   fAllTestStatisticsData(nullptr),
 
  116   fNullDistr(nullptr), fAltDistr(nullptr),
 
  117   fNullDetailedOutput(nullptr), fAltDetailedOutput(nullptr),
 
  118   fPValueIsRightTail( 
other.GetPValueIsRightTail() ),
 
  119   fBackgroundIsAlt( 
other.GetBackGroundIsAlt() )
 
 
  136   if (
this == &
other) 
return *
this;
 
 
  170   } 
else if (
other->GetNullDistribution()) {
 
  171      fNullDistr = std::make_unique<SamplingDistribution>(*
other->GetNullDistribution());
 
  176   } 
else if (
other->GetAltDistribution()) {
 
  177      fAltDistr = std::make_unique<SamplingDistribution>(*
other->GetAltDistribution());
 
  195      if( 
other->GetFitInfo() ) 
fFitInfo = std::make_unique<RooDataSet>( *
other->GetFitInfo());
 
 
  298   if (
CLb() == 0 ) 
return -1;
 
 
  336   std::cout << std::endl << 
"Results " << 
GetName() << 
": " << std::endl;
 
  337   std::cout << 
" - Null p-value = " << 
NullPValue();
 
  339   std::cout << std::endl;
 
  342   std::cout << std::endl;
 
  344      std::cout << 
" - Number of Alt toys: " << 
fAltDistr->GetSize() << std::endl;
 
  346      std::cout << 
" - Number of Null toys: " << 
fNullDistr->GetSize() << std::endl;
 
  349   std::cout << 
" - CL_b: " << 
CLb();
 
  351   std::cout << std::endl;
 
  352   std::cout << 
" - CL_s+b: " << 
CLsplusb();
 
  354   std::cout << std::endl;
 
  355   std::cout << 
" - CL_s: " << 
CLs();
 
  357   std::cout << std::endl;
 
 
const char Option_t
Option string (const char)
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
RooArgList is a container object that can hold multiple RooAbsArg objects.
 
static constexpr double infinity()
Return internal infinity representation.
 
Variable that can be changed from the outside.
 
HypoTestResult is a base class for results from hypothesis tests.
 
std::unique_ptr< RooDataSet > fNullDetailedOutput
 
void UpdatePValue(const SamplingDistribution *distr, double &pvalue, double &perror, bool pIsRightTail)
updates the pvalue if sufficient data is available
 
void Print(const Option_t *="") const override
Print out some information about the results Note: use Alt/Null labels for the hypotheses here as the...
 
double fNullPValue
p-value for the null hypothesis (small number means disfavoured)
 
bool HasTestStatisticData(void) const
 
double fAlternatePValueError
error of p-value for the alternate hypothesis (small number means disfavoured)
 
HypoTestResult & operator=(const HypoTestResult &other)
assignment operator
 
virtual double CLsplusb() const
Convert AlternatePValue into a "confidence level".
 
std::unique_ptr< RooDataSet > fAltDetailedOutput
 
void SetAllTestStatisticsData(const RooArgList *tsd)
 
virtual void Append(const HypoTestResult *other)
add values from another HypoTestResult
 
double NullPValueError() const
The error on the Null p-value.
 
double CLsError() const
The error on the ratio .
 
virtual double Significance() const
familiar name for the Null p-value in terms of 1-sided Gaussian significance
 
void SetNullDistribution(SamplingDistribution *null)
 
~HypoTestResult() override
destructor
 
HypoTestResult(const char *name=nullptr)
default constructor
 
double SignificanceError() const
The error on the significance, computed from NullPValueError via error propagation.
 
virtual double NullPValue() const
Return p-value for null hypothesis.
 
double CLbError() const
The error on the "confidence level" of the null hypothesis.
 
void SetTestStatisticData(const double tsd)
 
double CLsplusbError() const
The error on the "confidence level" of the alternative hypothesis.
 
double fNullPValueError
error of p-value for the null hypothesis (small number means disfavoured)
 
double fTestStatisticData
result of the test statistic evaluated on data
 
void SetAltDistribution(SamplingDistribution *alt)
 
void SetPValueIsRightTail(bool pr)
 
std::unique_ptr< const RooArgList > fAllTestStatisticsData
for the case of multiple test statistics, holds all the results
 
std::unique_ptr< RooDataSet > fFitInfo
 
std::unique_ptr< SamplingDistribution > fAltDistr
 
virtual double CLs() const
is simply  (not a method, but a quantity)
 
double fAlternatePValue
p-value for the alternate hypothesis (small number means disfavoured)
 
std::unique_ptr< SamplingDistribution > fNullDistr
 
virtual double CLb() const
Convert NullPValue into a "confidence level".
 
This class simply holds a sampling distribution of some test statistic.
 
The TNamed class is the base class for all named ROOT classes.
 
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
 
const char * GetName() const override
Returns name of object.
 
virtual void SetName(const char *name)
Set the name of the TNamed.
 
double normal_pdf(double x, double sigma=1, double x0=0)
Probability density function of the normal (Gaussian) distribution with mean x0 and standard deviatio...
 
Namespace for the RooStats classes.