79   ConfInterval(
name), fBestFitParams(0), fLikelihoodRatio(0), fConfidenceLevel(0.95)
 
   90   fBestFitParams(bestParams),
 
   92   fConfidenceLevel(0.95)
 
  117    std::cout << 
"parameters don't match" << std::endl;
 
  124    std::cout << 
"likelihood ratio not set" << std::endl;
 
  137    std::cout << 
"The likelihood ratio is < 0, indicates a bad minimum or numerical precision problems.  Will return true" << std::endl;
 
  170    std::cout << 
"size is wrong, parameters don't match" << std::endl;
 
  174    std::cout << 
"size is ok, but parameters don't match" << std::endl;
 
  224   if (!profilell) 
return false;
 
  230   std::unique_ptr<RooArgSet> partmp{profilell->
getVariables()};
 
  238      for (
int i = 0; i < params.
getSize(); ++i) {
 
  251   if (config.useLikelihoodOffset) {
 
  252      ccoutI(InputArguments) << 
"LikelihoodInterval: using nll offset - set all RooAbsReal to hide the offset  " << std::endl;
 
  258   std::transform(minimType.begin(), minimType.end(), minimType.begin(), (
int(*)(
int)) tolower );
 
  259   *minimType.begin() = toupper( *minimType.begin());
 
  261   if (minimType != 
"Minuit" && minimType != 
"Minuit2") {
 
  262      ccoutE(InputArguments) << minimType << 
" is wrong type of minimizer for getting interval limits or contours - must use Minuit or Minuit2" << std::endl;
 
  272   fMinFunc = std::static_pointer_cast<ROOT::Math::IMultiGenFunction>(
 
  279   for (
unsigned int i = 0; i < 
fMinFunc->NDim(); ++i) {
 
  281      fMinimizer->SetLimitedVariable( i, 
v.GetName(), 
v.getVal(), 
v.getError(), 
v.getMin(), 
v.getMax() );
 
  286      ccoutE(Minimization) << 
"Error: Minimization failed  " << std::endl;
 
  307      lower = itrl->second;
 
  308      upper = itru->second;
 
  316   int ix = params.
index(¶m);
 
  318      ccoutE(InputArguments) << 
"Error - invalid parameter " << param.
GetName() << 
" specified for finding the interval limits " << std::endl;
 
  325      ccoutE(Eval) << 
"Error returned from minimization of likelihood function - cannot find interval limits " << std::endl;
 
  333   err_level = err_level/2; 
 
  336   unsigned int ivarX = ix;
 
  340   ret = 
fMinimizer->GetMinosError(ivarX, elow, eup );
 
  342      ccoutE(Minimization) << 
"Error  running Minos for parameter " << param.
GetName() << std::endl;
 
  349      ccoutW(Minimization) << 
"Warning: lower value for " << param.
GetName() << 
" is at limit " << lower << std::endl;
 
  355      ccoutW(Minimization) << 
"Warning: upper value for " << param.
GetName() << 
" is at limit " << upper << std::endl;
 
  379   int ix = params.
index(¶mX);
 
  380   int iy = params.
index(¶mY);
 
  381   if (ix < 0 || iy < 0) {
 
  382      coutE(InputArguments) << 
"LikelihoodInterval - Error - invalid parameters specified for finding the contours; parX = " << paramX.
GetName()
 
  383             << 
" parY = " << paramY.
GetName() << std::endl;
 
  390      coutE(Eval) << 
"LikelihoodInterval - Error returned creating minimizer for likelihood function - cannot find contour points " << std::endl;
 
  398   cont_level = cont_level/2; 
 
  401   unsigned int ncp = npoints;
 
  402   unsigned int ivarX = ix;
 
  403   unsigned int ivarY = iy;
 
  404   coutI(Minimization)  << 
"LikelihoodInterval - Finding the contour of " << paramX.
GetName() << 
" ( " << ivarX << 
" ) and " << paramY.
GetName() << 
" ( " << ivarY << 
" ) " << std::endl;
 
  407      coutE(Minimization) << 
"LikelihoodInterval - Error finding contour for parameters " << paramX.
GetName() << 
" and " << paramY.
GetName()  << std::endl;
 
  410   if (
int(ncp) < npoints) {
 
  411      coutW(Minimization) << 
"LikelihoodInterval -Warning - Less points calculated in contours np = " << ncp << 
" / " << npoints << std::endl;
 
static ROOT::Math::Minimizer * CreateMinimizer(const std::string &minimizerType="", const std::string &algoType="")
static method to create the corresponding Minimizer given the string Supported Minimizers types are: ...
 
static const std::string & DefaultMinimizerType()
 
Template class to wrap any C++ callable object implementing operator() (const double * x) in a multi-...
 
RooFit::OwningPtr< RooArgSet > getVariables(bool stripDisconnected=true) const
Return RooArgSet with all variables (tree leaf nodes of expresssion tree)
 
bool equals(const RooAbsCollection &otherColl) const
Check if this and other collection have identically-named contents.
 
Int_t getSize() const
Return the number of elements in the collection.
 
Int_t index(const RooAbsArg *arg) const
Returns index of given arg, or -1 if arg is not in the collection.
 
RooAbsArg * find(const char *name) const
Find object with given name in list.
 
virtual double getMax(const char *name=nullptr) const
Get maximum of currently defined range.
 
virtual double getMin(const char *name=nullptr) const
Get minimum of currently defined range.
 
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
 
double getVal(const RooArgSet *normalisationSet=nullptr) const
Evaluate object.
 
static void setHideOffset(bool flag)
 
RooArgList is a container object that can hold multiple RooAbsArg objects.
 
RooArgSet is a container object that can hold multiple RooAbsArg objects.
 
static RooMsgService & instance()
Return reference to singleton instance.
 
void setGlobalKillBelow(RooFit::MsgLevel level)
 
RooFit::MsgLevel globalKillBelow() const
 
Class RooProfileLL implements the profile likelihood estimator for a given likelihood and set of para...
 
RooRealVar represents a variable that can be changed from the outside.
 
void setVal(double value) override
Set value of variable to 'value'.
 
void setError(double value)
 
ConfInterval is an interface class for a generic interval in the RooStats framework.
 
LikelihoodInterval is a concrete implementation of the RooStats::ConfInterval interface.
 
double ConfidenceLevel() const override
return confidence level
 
double UpperLimit(const RooRealVar ¶m)
return the upper bound of the interval on a given parameter
 
Int_t GetContourPoints(const RooRealVar ¶mX, const RooRealVar ¶mY, double *x, double *y, Int_t npoints=30)
return the 2D-contour points for the given subset of parameters by default make the contour using 30 ...
 
void ResetLimits()
reset the cached limit values
 
bool CreateMinimizer()
internal function to create the minimizer for finding the contours
 
RooArgSet * GetParameters() const override
return a cloned list of parameters of interest. User manages the return object
 
RooArgSet * fBestFitParams
snapshot of the model parameters with best fit value (managed internally)
 
RooArgSet fParameters
parameters of interest for this interval
 
~LikelihoodInterval() override
destructor
 
double LowerLimit(const RooRealVar ¶m)
return the lower bound of the interval on a given parameter
 
std::shared_ptr< RooFunctor > fFunctor
! transient pointer to functor class used by the minimizer
 
bool FindLimits(const RooRealVar ¶m, double &lower, double &upper)
find both lower and upper interval boundaries for a given parameter return false if the bounds have n...
 
double fConfidenceLevel
Requested confidence level (eg. 0.95 for 95% CL)
 
std::map< std::string, double > fLowerLimits
map with cached lower bound values
 
bool IsInInterval(const RooArgSet &) const override
check if given point is in the interval
 
bool CheckParameters(const RooArgSet &) const override
check if parameters are correct (i.e. they are the POI of this interval)
 
RooAbsReal * fLikelihoodRatio
likelihood ratio function used to make contours (managed internally)
 
std::map< std::string, double > fUpperLimits
map with cached upper bound values
 
std::shared_ptr< ROOT::Math::Minimizer > fMinimizer
! transient pointer to minimizer class used to find limits and contour
 
LikelihoodInterval(const char *name=nullptr)
default constructor
 
std::shared_ptr< ROOT::Math::IMultiGenFunction > fMinFunc
! transient pointer to the minimization function
 
static bool UseStaticMinuit(bool on=true)
static function to switch on/off usage of static global TMinuit instance (gMinuit) By default it is u...
 
const char * GetName() const override
Returns name of object.
 
MsgLevel
Verbosity level for RooMsgService::StreamConfig in RooMsgService.
 
Namespace for the RooStats classes.
 
void SetParameters(const RooArgSet *desiredVals, RooArgSet *paramsToChange)
 
void RemoveConstantParameters(RooArgSet *set)
 
RooStatsConfig & GetGlobalRooStatsConfig()
Retrieve the config object which can be used to set flags for things like offsetting the likelihood o...
 
Double_t Prob(Double_t chi2, Int_t ndf)
Computation of the probability for a certain Chi-squared (chi2) and number of degrees of freedom (ndf...
 
Double_t ChisquareQuantile(Double_t p, Double_t ndf)
Evaluate the quantiles of the chi-squared probability distribution function.