HypoTestInverter class for performing an hypothesis test inversion by scanning the hypothesis test results of an HypoTestCalculator for various values of the parameter of interest. By looking at the confidence level curve of the result an upper limit, where it intersects the desired confidence level, can be derived. The class implements the RooStats::IntervalCalculator interface and returns an RooStats::HypoTestInverterResult class. The result is a SimpleInterval, which via the method UpperLimit returns to the user the upper limit value. The HypoTestInverter implements various option for performing the scan. HypoTestInverter::RunFixedScan will scan using a fixed grid the parameter of interest. HypoTestInverter::RunAutoScan will perform an automatic scan to find optimally the curve and it will stop until the desired precision is obtained. The confidence level value at a given point can be done via HypoTestInverter::RunOnePoint. The class can scan the CLs+b values or alternativly CLs (if the method HypoTestInverter::UseCLs has been called). Contributions to this class have been written by Giovanni Petrucciani and Annapaola Decosa
static void | CheckInputModels(const RooStats::HypoTestCalculatorGeneric& hc, const RooRealVar& scanVar) |
void | CreateResults() const |
RooStats::HypoTestResult* | Eval(RooStats::HypoTestCalculatorGeneric& hc, bool adaptive, double clsTarget) const |
static RooRealVar* | GetVariableToScan(const RooStats::HypoTestCalculatorGeneric& hc) |
RooStats::HypoTestInverter | HypoTestInverter(const RooStats::HypoTestInverter& rhs) |
RooStats::HypoTestInverter& | operator=(const RooStats::HypoTestInverter& rhs) |
RooStats::HypoTestInverter::ECalculatorType | fCalcType | |
RooStats::HypoTestCalculatorGeneric* | fCalculator0 | pointer to the calculator passed in the constructor |
RooStats::HypoTestInverter::auto_ptr<HypoTestCalculatorGeneric> | fHC | |
auto_ptr<TGraphErrors> | fLimitPlot | ! plot of limits |
int | fMaxToys | maximum number of toys to run |
int | fNBins | |
double | fNumErr | |
RooStats::HypoTestInverterResult* | fResults | pointer to the result |
RooRealVar* | fScannedVariable | pointer to the constrained variable |
double | fSize | |
int | fTotalToysRun | |
bool | fUseCLs | |
int | fVerbose | |
double | fXmax | |
double | fXmin | |
static double | fgAbsAccuracy | |
static string | fgAlgo | |
static double | fgCLAccuracy | |
static bool | fgCloseProof | |
static unsigned int | fgNToys | |
static double | fgRelAccuracy |
get the variable to scan try first with null model if not go to alternate model
check the model given the given hypotestcalculator
Constructor from a HypoTestCalculatorGeneric The HypoTest calculator must be a FrequentistCalculator or HybridCalculator type Other type of calculators are not supported. The calculator must be created before by using the S+B model for the null and the B model for the alt If no variable to scan are given they are assumed to be the first variable from the parameter of interests of the null model
Constructor from a reference to a HybridCalculator The calculator must be created before by using the S+B model for the null and the B model for the alt If no variable to scan are given they are assumed to be the first variable from the parameter of interests of the null model
Constructor from a reference to a FrequentistCalculator The calculator must be created before by using the S+B model for the null and the B model for the alt If no variable to scan are given they are assumed to be the first variable from the parameter of interests of the null model
Constructor from a reference to a AsymptoticCalculator The calculator must be created before by using the S+B model for the null and the B model for the alt If no variable to scan are given they are assumed to be the first variable from the parameter of interests of the null model
Constructor from a model for B model and a model for S+B. An HypoTestCalculator (Hybrid of Frequentis) will be created using the S+B model as the null and the B model as the alternate If no variable to scan are given they are assumed to be the first variable from the parameter of interests of the null model
copy-constructor NOTE: this class does not copy the contained result and the HypoTestCalculator, but only the pointers It requires the original HTI to be alive
assignment operator NOTE: this class does not copy the contained result and the HypoTestCalculator, but only the pointers It requires the original HTI to be alive
return the test statistic which is or will be used by the class
Run a fixed scan or the automatic scan depending on the configuration Return if needed a copy of the result object which will be managed by the user
Run the Hypothesis test at a previous configured point (internal function called by RunOnePoint)
Run a Fixed scan in npoints between min and max
run only one point at the given POI value
run an automatic scan until the desired accurancy is reached Start by default from the full interval (min,max) of the POI and then via bisection find the line crossing the target line Optionally an hint can be provided and the scan will be done closer to that value If by bisection the desired accuracy will not be reached a fit to the points is performed
get the distribution of lower limit if rebuild = false (default) it will re-use the results of the scan done for obtained the observed limit and no extra toys will be generated if rebuild a new set of B toys will be done and the procedure will be repeted for each toy
get the distribution of lower limit if rebuild = false (default) it will re-use the results of the scan done for obtained the observed limit and no extra toys will be generated if rebuild a new set of B toys will be done and the procedure will be repeted for each toy
rebuild the sampling distributions by generating some toys and find for each of theam a new upper limit Return the upper limit distribution and optionally also the pValue distributions for Cls, Clsb and Clbxs as a TList for each scanned point
set the size of the test (rate of Type I error) ( Eg. 0.05 for a 95% Confidence Interval)
{fSize = size; if (fResults) fResults->SetTestSize(size); }
set the confidence level for the interval (eg. 0.95 for a 95% Confidence Interval)
{fSize = 1.-cl; if (fResults) fResults->SetConfidenceLevel(cl); }
retrieved a reference to the internally used HypoTestCalculator it might be invalid when the class is deleted
{ return fCalculator0; }
set numerical error in test statistic evaluation (default is zero)
{ fNumErr = err; }