00001 // @(#)root/roostats:$Id: ConfInterval.h 31276 2009-11-18 15:06:42Z moneta $ 00002 // Author: Kyle Cranmer, Lorenzo Moneta, Gregory Schott, Wouter Verkerke 00003 /************************************************************************* 00004 * Copyright (C) 1995-2008, Rene Brun and Fons Rademakers. * 00005 * All rights reserved. * 00006 * * 00007 * For the licensing terms see $ROOTSYS/LICENSE. * 00008 * For the list of contributors see $ROOTSYS/README/CREDITS. * 00009 *************************************************************************/ 00010 00011 #ifndef ROOSTATS_ConfInterval 00012 #define ROOSTATS_ConfInterval 00013 00014 #ifndef ROOT_TNamed 00015 #include "TNamed.h" 00016 #endif 00017 00018 #ifndef ROO_ARG_SET 00019 #include "RooArgSet.h" 00020 #endif 00021 00022 //_________________________________________________________________ 00023 // 00024 // BEGIN_HTML 00025 // ConfInterval is an interface class for a generic interval in the RooStats framework. 00026 // Any tool inheriting from IntervalCalculator can return a ConfInterval. 00027 // There are many types of intervals, they may be a simple range [a,b] in 1 dimension, 00028 // or they may be disconnected regions in multiple dimensions. 00029 // So the common interface is simply to ask the interval if a given point "IsInInterval". 00030 // The Interval also knows what confidence level it was constructed at and the space of 00031 // parameters for which it was constructed. 00032 // Note, one could use the same class for a Bayesian "credible interval". 00033 // END_HTML 00034 // 00035 // 00036 00037 00038 namespace RooStats { 00039 00040 class ConfInterval : public TNamed { 00041 00042 public: 00043 00044 // constructor given name and title 00045 explicit ConfInterval(const char* name = 0) : TNamed(name,name) {} 00046 00047 // destructor 00048 virtual ~ConfInterval() {} 00049 00050 // check if given point is in the interval 00051 virtual Bool_t IsInInterval(const RooArgSet&) const = 0; 00052 00053 // used to set confidence level. Keep pure virtual 00054 virtual void SetConfidenceLevel(Double_t cl) = 0; 00055 00056 // return confidence level 00057 virtual Double_t ConfidenceLevel() const = 0; 00058 00059 // return list of parameters of interest defining this interval (return a new cloned list) 00060 virtual RooArgSet* GetParameters() const = 0; 00061 00062 // check if parameters are correct (i.e. they are the POI of this interval) 00063 virtual Bool_t CheckParameters(const RooArgSet&) const = 0; 00064 00065 00066 protected: 00067 00068 ClassDef(ConfInterval,1) // Interface for Confidence Intervals 00069 00070 }; 00071 } 00072 00073 00074 #endif