#ifndef ROOSTATS_ConfInterval
#define ROOSTATS_ConfInterval
#ifndef ROOT_TNamed
#include "TNamed.h"
#endif
#ifndef ROO_ARG_SET
#include "RooArgSet.h"
#endif
// ConfInterval is an interface class for a generic interval in the RooStats framework.
// Any tool inheriting from IntervalCalculator can return a ConfInterval.
// There are many types of intervals, they may be a simple range [a,b] in 1 dimension,
// or they may be disconnected regions in multiple dimensions.
// So the common interface is simply to ask the interval if a given point "IsInInterval".
// The Interval also knows what confidence level it was constructed at and the space of
// parameters for which it was constructed.
// Note, one could use the same class for a Bayesian "credible interval".
// END_HTML
namespace RooStats {
class ConfInterval : public TNamed {
public:
explicit ConfInterval(const char* name = 0) : TNamed(name,name) {}
virtual ~ConfInterval() {}
virtual Bool_t IsInInterval(const RooArgSet&) const = 0;
virtual void SetConfidenceLevel(Double_t cl) = 0;
virtual Double_t ConfidenceLevel() const = 0;
virtual RooArgSet* GetParameters() const = 0;
virtual Bool_t CheckParameters(const RooArgSet&) const = 0;
protected:
ClassDef(ConfInterval,1)
};
}
#endif