ROOT logo
ROOT » ROOFIT » ROOSTATS » RooStats::HypoTestInverterResult

class RooStats::HypoTestInverterResult: public RooStats::SimpleInterval

Function Members (Methods)

public:
virtual~HypoTestInverterResult()
voidTObject::AbstractMethod(const char* method) const
boolAdd(const RooStats::HypoTestInverterResult& otherResult)
boolAdd(Double_t x, const RooStats::HypoTestResult& result)
virtual voidTObject::AppendPad(Option_t* option = "")
intArraySize() const
virtual voidTObject::Browse(TBrowser* b)
virtual Bool_tRooStats::SimpleInterval::CheckParameters(const RooArgSet&) const
static TClass*Class()
virtual const char*TObject::ClassName() const
doubleCLb(int index) const
doubleCLbError(int index) const
virtual voidTNamed::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
doubleCLs(int index) const
doubleCLsError(int index) const
doubleCLsplusb(int index) const
doubleCLsplusbError(int index) const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual Double_tRooStats::SimpleInterval::ConfidenceLevel() const
virtual voidTNamed::Copy(TObject& named) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
intExclusionCleanup()
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual voidTNamed::FillBuffer(char*& buffer)
intFindIndex(double xvalue) const
doubleFindInterpolatedLimit(double target, bool lowSearch = false, double xmin = 1, double xmax = 0)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
RooStats::SamplingDistribution*GetAltTestStatDist(int index) const
RooStats::SamplingDistribution*GetBackgroundTestStatDist(int index) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
doubleGetExpectedLowerLimit(double nsig = 0, const char* opt = "") const
RooStats::SamplingDistribution*GetExpectedPValueDist(int index) const
doubleGetExpectedUpperLimit(double nsig = 0, const char* opt = "") const
virtual const char*TObject::GetIconName() const
RooStats::HypoTestInverterResult::InterpolOption_tGetInterpolationOption() const
RooStats::HypoTestResult*GetLastResult() const
doubleGetLastXValue() const
doubleGetLastYError() const
doubleGetLastYValue() const
RooStats::SamplingDistribution*GetLowerLimitDistribution() const
virtual const char*TNamed::GetName() const
RooStats::SamplingDistribution*GetNullTestStatDist(int index) const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual RooArgSet*RooStats::SimpleInterval::GetParameters() const
RooStats::HypoTestResult*GetResult(int index) const
RooStats::SamplingDistribution*GetSignalAndBackgroundTestStatDist(int index) const
virtual const char*TNamed::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
RooStats::SamplingDistribution*GetUpperLimitDistribution() const
doubleGetXValue(int index) const
doubleGetYError(int index) const
doubleGetYValue(int index) const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::Hash() const
RooStats::HypoTestInverterResultHypoTestInverterResult(const char* name = 0)
RooStats::HypoTestInverterResultHypoTestInverterResult(const RooStats::HypoTestInverterResult& other, const char* name)
RooStats::HypoTestInverterResultHypoTestInverterResult(const char* name, const RooRealVar& scannedVariable, double cl)
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
virtual Bool_tRooStats::SimpleInterval::IsInInterval(const RooArgSet&) const
boolIsOneSided() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
boolIsTwoSided() const
Bool_tTObject::IsZombie() const
virtual Double_tLowerLimit()
Double_tLowerLimitEstimatedError()
virtual voidTNamed::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
RooStats::HypoTestInverterResult&operator=(const RooStats::HypoTestInverterResult& other)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTNamed::Print(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidSetCLsCleanupThreshold(Double_t th)
virtual voidSetConfidenceLevel(Double_t cl)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetInterpolationOption(RooStats::HypoTestInverterResult::InterpolOption_t opt)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidSetTestSize(Double_t size)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
RooStats::SimpleIntervalRooStats::SimpleInterval::SimpleInterval(const char* name = 0)
RooStats::SimpleIntervalRooStats::SimpleInterval::SimpleInterval(const RooStats::SimpleInterval&)
RooStats::SimpleIntervalRooStats::SimpleInterval::SimpleInterval(const RooStats::SimpleInterval& other, const char* name)
RooStats::SimpleIntervalRooStats::SimpleInterval::SimpleInterval(const char* name, const RooRealVar& var, Double_t lower, Double_t upper, Double_t cl)
virtual Int_tTNamed::Sizeof() const
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual Double_tUpperLimit()
Double_tUpperLimitEstimatedError()
voidUseCLs(bool on = true)
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
private:
doubleCalculateEstimatedError(double target, bool lower = true, double xmin = 1, double xmax = 0)
intFindClosestPointIndex(double target, int mode = 0, double xtarget = 0)
doubleGetExpectedLimit(double nsig, bool lower, const char* opt = "") const
doubleGetGraphX(const TGraph& g, double y0, bool lowSearch = true) const
doubleGetGraphX(const TGraph& g, double y0, bool lowSearch, double& xmin, double& xmax) const
RooStats::SamplingDistribution*GetLimitDistribution(bool lower) const

Data Members

public:
enum InterpolOption_t { kLinear
kSpline
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
doublefCLsCleanupThreshold
TListfExpPValueslist of expected sampling distribution for each point
boolfFittedLowerLimit
boolfFittedUpperLimit
RooStats::HypoTestInverterResult::InterpolOption_tfInterpolOptioninterpolatation option (linear or spline)
boolfInterpolateLowerLimit
boolfInterpolateUpperLimit
boolfIsTwoSidedtwo sided scan (look for lower/upper limit)
doublefLowerLimitError
TStringTNamed::fNameobject identifier
TStringTNamed::fTitleobject title
doublefUpperLimitError
boolfUseCLs
vector<double>fXValues
TListfYObjectslist of HypoTestResult for each point
static doublefgAsymptoticMaxSigmamax sigma value used to scan asymptotic expected p values

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

HypoTestInverterResult(const char* name = 0)
 default constructor
HypoTestInverterResult(const RooStats::HypoTestInverterResult& other, const char* name)
 copy constructor
operator=(const RooStats::HypoTestInverterResult& other)
HypoTestInverterResult(const char* name, const RooRealVar& scannedVariable, double cl)
 constructor
ExclusionCleanup()
~HypoTestInverterResult()
 destructor
 no need to delete explictly the objects in the TList since the TList owns the objects
bool Add(const RooStats::HypoTestInverterResult& otherResult)
 Merge this HypoTestInverterResult with another
 HypoTestInverterResult passed as argument
 The merge is done by combining the HypoTestResult when the same point value exist in both results.
 If results exist at different points these are added in the new result
 NOTE: Merging of the expected p-values obtained with pseudo-data.
  When expected p-values exist in the result (i.e. when rebuild option is used when getting the expected
 limit distribuiton in the HYpoTestInverter) then the expected p-values are also merged. This is equivalent
 at merging the pseudo-data. However there can be an inconsistency if the expected p-values have been
 obtained with different toys. In this case the merge is done but a warning message is printed.
bool Add(Double_t x, const RooStats::HypoTestResult& result)
 Add a single point result (an HypoTestResult)
double GetXValue(int index) const
 function to return the value of the parameter of interest for the i^th entry in the results
double GetYValue(int index) const
 function to return the value of the confidence level for the i^th entry in the results
double GetYError(int index) const
 function to return the estimated error on the value of the confidence level for the i^th entry in the results
double CLb(int index) const
 function to return the observed CLb value  for the i-th entry
double CLsplusb(int index) const
 function to return the observed CLs+b value  for the i-th entry
double CLs(int index) const
 function to return the observed CLs value  for the i-th entry
double CLbError(int index) const
 function to return the error on the observed CLb value  for the i-th entry
double CLsplusbError(int index) const
 function to return the error on the observed CLs+b value  for the i-th entry
double CLsError(int index) const
 function to return the error on the observed CLs value  for the i-th entry
HypoTestResult* GetResult(int index) const
 get the HypoTestResult object at the given index point
int FindIndex(double xvalue) const
 find the index corresponding at the poi value xvalue
 If no points is found return -1
 Note that a tolerance is used of 10^-12 to find the closest point
double GetGraphX(const TGraph& g, double y0, bool lowSearch, double& xmin, double& xmax) const
 return the X value of the given graph for the target value y0
 the graph is evaluated using linear interpolation by default.
 if option = "S" a TSpline3 is used
double FindInterpolatedLimit(double target, bool lowSearch = false, double xmin = 1, double xmax = 0)
 interpolate to find a limit value
 Use a linear or a spline interpolation depending on the interpolation option
int FindClosestPointIndex(double target, int mode = 0, double xtarget = 0)
 if mode = 0
 find closest point to target in Y, the object closest to the target which is 3 sigma from the target
 and has smaller error
 if mode = 1
 find 2 closest point to target in X and between these two take the one closer to the target
 if mode = 2  as in mode = 1 but return the lower point not the closest one
 if mode = 3  as in mode = 1 but return the upper point not the closest one
Double_t LowerLimit()
Double_t UpperLimit()
std::cout << "finding point with cl = " << (1-ConfidenceLevel())/2 << endl;
Double_t CalculateEstimatedError(double target, bool lower = true, double xmin = 1, double xmax = 0)
 Return an error estimate on the upper(lower) limit.  This is the error on
 either CLs or CLsplusb divided by an estimate of the slope at this
 point.
Double_t LowerLimitEstimatedError()
 need to have compute first lower limit
Double_t UpperLimitEstimatedError()
SamplingDistribution * GetBackgroundTestStatDist(int index) const
 get the background test statistic distribution
SamplingDistribution * GetSignalAndBackgroundTestStatDist(int index) const
 get the signal and background test statistic distribution
SamplingDistribution * GetExpectedPValueDist(int index) const
 get the expected p-value distribution at the scanned point index
SamplingDistribution * GetLimitDistribution(bool lower) const
 get the limit distribution (lower/upper depending on the flag)
 by interpolating  the expected p values for each point
double GetExpectedLowerLimit(double nsig = 0, const char* opt = "") const
 Get the expected lower limit
 nsig is used to specify which expected value of the UpperLimitDistribution
 For example
 nsig = 0 (default value) returns the expected value
 nsig = -1 returns the lower band value at -1 sigma
 nsig + 1 return the upper value
 opt = "" (default) : compute limit by interpolating all the p values, find the corresponding limit distribution
                         and then find the quantiles in the limit distribution
 ioption = "P" is the method used for plotting. One Finds the corresponding nsig quantile in the p values and then
 interpolates them
double GetExpectedUpperLimit(double nsig = 0, const char* opt = "") const
 Get the expected upper limit
 nsig is used to specify which expected value of the UpperLimitDistribution
 For example
 nsig = 0 (default value) returns the expected value
 nsig = -1 returns the lower band value at -1 sigma
 nsig + 1 return the upper value
 opt is an option specifying the type of method used for computing the upper limit
 opt = "" (default) : compute limit by interpolating all the p values, find the corresponding limit distribution
                         and then find the quantiles in the limit distribution
 ioption = "P" is the method used for plotting. One Finds the corresponding nsig quantile in the p values and then
 interpolates them

double GetExpectedLimit(double nsig, bool lower, const char* opt = "") const
 get expected limit (lower/upper) depending on the flag
 for asymptotic is a special case (the distribution is generated an step in sigma values)
 distringuish asymptotic looking at the hypotest results
 if option = "P" get expected limit using directly quantiles of p value distribution
 else (default) find expected limit by obtaining first a full limit distributions
 The last one is in general more correct
double GetLastYValue() const
{ return GetYValue( fXValues.size()-1); }
double GetLastXValue() const
{ return GetXValue( fXValues.size()-1); }
double GetLastYError() const
{ return GetYError( fXValues.size()-1); }
HypoTestResult * GetLastResult() const
{ return GetResult( fXValues.size()-1); }
int ArraySize() const
 number of entries in the results array
{ return fXValues.size(); }
void SetTestSize(Double_t size)
 set the size of the test (rate of Type I error) (eg. 0.05 for a 95% Confidence Interval)
{ fConfidenceLevel = 1.-size; }
void SetConfidenceLevel(Double_t cl)
 set the confidence level for the interval (eg. 0.95 for a 95% Confidence Interval)
{ fConfidenceLevel = cl; }
void SetCLsCleanupThreshold(Double_t th)
 set CLs threshold for exclusion cleanup function
void UseCLs(bool on = true)
 flag to switch between using CLsb (default) or CLs as confidence level
{ fUseCLs = on; }
bool IsOneSided() const
 query if one sided result
{ return !fIsTwoSided; }
bool IsTwoSided() const
 query if two sided result
{ return fIsTwoSided; }
SamplingDistribution * GetNullTestStatDist(int index) const
 same in terms of alt and null
SamplingDistribution * GetAltTestStatDist(int index) const
SamplingDistribution* GetLowerLimitDistribution() const
 get expected lower limit distributions
 implemented using interpolation
  The size for the sampling distribution is given (by default is given by the average number of toy/point)
{ return GetLimitDistribution(true); }
SamplingDistribution* GetUpperLimitDistribution() const
 get expected upper limit distributions
 implemented using interpolation
{ return GetLimitDistribution(false); }
void SetInterpolationOption(RooStats::HypoTestInverterResult::InterpolOption_t opt)
 set the interpolation option, linear (kLinear ) or spline  (kSpline)
{ fInterpolOption = opt; }
InterpolOption_t GetInterpolationOption() const
{ return fInterpolOption; }
double GetGraphX(const TGraph& g, double y0, bool lowSearch, double& xmin, double& xmax) const