Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
RooMinuit.h
Go to the documentation of this file.
1/*****************************************************************************
2 * Project: RooFit *
3 * Package: RooFitCore *
4 * File: $Id: RooMinuit.h,v 1.15 2007/07/12 20:30:28 wouter Exp $
5 * Authors: *
6 * WV, Wouter Verkerke, UC Santa Barbara, verkerke@slac.stanford.edu *
7 * DK, David Kirkby, UC Irvine, dkirkby@uci.edu *
8 * *
9 * Copyright (c) 2000-2005, Regents of the University of California *
10 * and Stanford University. All rights reserved. *
11 * *
12 * Redistribution and use in source and binary forms, *
13 * with or without modification, are permitted according to the terms *
14 * listed in LICENSE (http://roofit.sourceforge.net/license.txt) *
15 *****************************************************************************/
16#ifndef ROO_MINUIT
17#define ROO_MINUIT
18
19#include "TObject.h"
20#include "TStopwatch.h"
21#include <fstream>
22#include "TMatrixDSymfwd.h"
23#include <vector>
24#include <string>
25#include <utility>
26
27#include <ROOT/RConfig.hxx>
28
29class RooAbsReal ;
30class RooFitResult ;
31class RooArgList ;
32class RooRealVar ;
33class RooArgSet ;
34class RooAbsArg ;
35class TVirtualFitter ;
36class TH2F ;
37class RooPlot ;
38
39void RooMinuitGlue(Int_t& /*np*/, Double_t* /*gin*/, Double_t &f, Double_t *par, Int_t /*flag*/) ;
40
41class RooMinuit : public TObject {
42public:
43
44 RooMinuit(RooAbsReal& function) ;
45 virtual ~RooMinuit() ;
46
47 enum Strategy { Speed=0, Balance=1, Robustness=2 } ;
49 void setStrategy(Int_t strat) ;
50 void setErrorLevel(Double_t level) ;
51 void setEps(Double_t eps) ;
52 void optimizeConst(Int_t flag) ;
54 void setOffsetting(Bool_t flag) ;
55
56 RooFitResult* fit(const char* options) ;
57
58 Int_t migrad() ;
59 Int_t hesse() ;
60 Int_t minos() ;
61 Int_t minos(const RooArgSet& minosParamList) ; // added FMV, 08/18/03
62 Int_t seek() ;
63 Int_t simplex() ;
64 Int_t improve() ;
65
66 RooFitResult* save(const char* name=0, const char* title=0) ;
67 RooPlot* contour(RooRealVar& var1, RooRealVar& var2,
68 Double_t n1=1, Double_t n2=2, Double_t n3=0,
69 Double_t n4=0, Double_t n5=0, Double_t n6=0) ;
70
71 Int_t setPrintLevel(Int_t newLevel) ;
72 void setNoWarn() ;
73 Int_t setWarnLevel(Int_t newLevel) ;
74 void setPrintEvalErrors(Int_t numEvalErrors) { _printEvalErrors = numEvalErrors ; }
75 void setVerbose(Bool_t flag=kTRUE) { _verbose = flag ; }
76 void setProfile(Bool_t flag=kTRUE) { _profile = flag ; }
78 Bool_t setLogFile(const char* logfile=0) ;
79
80 static void cleanup() ;
81
82 Int_t evalCounter() const { return _evalCounter ; }
83 void zeroEvalCount() { _evalCounter = 0 ; }
84
85protected:
86
87 friend class RooAbsPdf ;
89
90 friend void RooMinuitGlue(Int_t &np, Double_t *gin, Double_t &f, Double_t *par, Int_t flag) ;
91
92 void profileStart() ;
93 void profileStop() ;
94
95 Bool_t synchronize(Bool_t verbose) ;
96 void backProp() ;
97
98 inline Int_t getNPar() const { return _nPar ; }
99 inline std::ofstream* logfile() const { return _logfile ; }
100 inline Double_t& maxFCN() { return _maxFCN ; }
101
104 virtual Bool_t setPdfParamVal(Int_t index, Double_t value, Bool_t verbose=kFALSE) ;
105 void setPdfParamErr(Int_t index, Double_t value) ;
106 void setPdfParamErr(Int_t index, Double_t loVal, Double_t hiVal) ;
107 void clearPdfParamAsymErr(Int_t index) ;
108
109 void saveStatus(const char* label, Int_t status) { _statusHistory.push_back(std::pair<std::string,int>(label,status)) ; }
110
111 void updateFloatVec() ;
112
113private:
114
128 std::vector<RooAbsArg*> _floatParamVec ;
133
135 std::ofstream* _logfile ;
139
141
143
144 std::vector<std::pair<std::string,int> > _statusHistory ;
145
147
148 ClassDef(RooMinuit,0) // RooFit minimizer based on MINUIT
149} R__SUGGEST_ALTERNATIVE("Please use RooMinimizer instead of RooMinuit");
150
151
152#endif
153
#define R__SUGGEST_ALTERNATIVE(ALTERNATIVE)
Definition RConfig.hxx:524
#define f(i)
Definition RSha256.hxx:104
void RooMinuitGlue(Int_t &, Double_t *, Double_t &f, Double_t *par, Int_t)
int Int_t
Definition RtypesCore.h:45
const Bool_t kFALSE
Definition RtypesCore.h:101
bool Bool_t
Definition RtypesCore.h:63
double Double_t
Definition RtypesCore.h:59
const Bool_t kTRUE
Definition RtypesCore.h:100
#define ClassDef(name, id)
Definition Rtypes.h:325
char name[80]
Definition TGX11.cxx:110
RooAbsArg is the common abstract base class for objects that represent a value and a "shape" in RooFi...
Definition RooAbsArg.h:69
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
Definition RooAbsReal.h:64
RooArgList is a container object that can hold multiple RooAbsArg objects.
Definition RooArgList.h:22
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Definition RooArgSet.h:35
RooFitResult is a container class to hold the input and output of a PDF fit to a dataset.
RooMinuit is a wrapper class around TFitter/TMinuit that provides a seamless interface between the MI...
Definition RooMinuit.h:41
Int_t _numBadNLL
Definition RooMinuit.h:122
void setPdfParamErr(Int_t index, Double_t value)
Modify PDF parameter error by ordinal index (needed by MINUIT)
Int_t hesse()
Execute HESSE.
Double_t & maxFCN()
Definition RooMinuit.h:100
Bool_t setLogFile(const char *logfile=0)
Change the file name for logging of a RooMinuit of all MINUIT steppings through the parameter space.
Int_t _nPar
Definition RooMinuit.h:123
Int_t _optConst
Definition RooMinuit.h:119
void setVerbose(Bool_t flag=kTRUE)
Definition RooMinuit.h:75
RooArgList * _floatParamList
Definition RooMinuit.h:127
Int_t _printEvalErrors
Definition RooMinuit.h:124
Int_t evalCounter() const
Definition RooMinuit.h:82
void setEvalErrorWall(Bool_t flag)
Definition RooMinuit.h:53
Bool_t _handleLocalErrors
Definition RooMinuit.h:121
void setProfile(Bool_t flag=kTRUE)
Definition RooMinuit.h:76
void optimizeConst(Int_t flag)
If flag is true, perform constant term optimization on function being minimized.
RooFitResult * save(const char *name=0, const char *title=0)
Save and return a RooFitResult snaphot of current minimizer status.
Int_t getNPar() const
Definition RooMinuit.h:98
Bool_t _verbose
Definition RooMinuit.h:136
void setOffsetting(Bool_t flag)
Enable internal likelihood offsetting for enhanced numeric precision.
static void cleanup()
Cleanup method called by atexit handler installed by RooSentinel to delete all global heap objects wh...
Definition RooMinuit.cxx:84
Int_t seek()
Execute SEEK.
Bool_t _profile
Definition RooMinuit.h:120
std::ofstream * _logfile
Definition RooMinuit.h:135
Int_t simplex()
Execute SIMPLEX.
TStopwatch _cumulTimer
Definition RooMinuit.h:138
Bool_t synchronize(Bool_t verbose)
Internal function to synchronize TMinuit with current information in RooAbsReal function parameters.
void setErrorLevel(Double_t level)
Set the level for MINUIT error analysis to the given value.
friend void RooMinuitGlue(Int_t &np, Double_t *gin, Double_t &f, Double_t *par, Int_t flag)
RooPlot * contour(RooRealVar &var1, RooRealVar &var2, Double_t n1=1, Double_t n2=2, Double_t n3=0, Double_t n4=0, Double_t n5=0, Double_t n6=0)
Create and draw a TH2 with the error contours in parameters var1 and v2 at up to 6 'sigma' settings w...
void zeroEvalCount()
Definition RooMinuit.h:83
virtual Bool_t setPdfParamVal(Int_t index, Double_t value, Bool_t verbose=kFALSE)
Modify PDF parameter value by ordinal index (needed by MINUIT)
void saveStatus(const char *label, Int_t status)
Definition RooMinuit.h:109
void setStrategy(Int_t strat)
Change MINUIT strategy to istrat.
Int_t setPrintLevel(Int_t newLevel)
Change the MINUIT internal printing level.
std::vector< std::pair< std::string, int > > _statusHistory
Definition RooMinuit.h:144
Int_t _warnLevel
Definition RooMinuit.h:117
std::vector< RooAbsArg * > _floatParamVec
Definition RooMinuit.h:128
Int_t migrad()
Execute MIGRAD.
Int_t _printLevel
Definition RooMinuit.h:116
std::ofstream * logfile() const
Definition RooMinuit.h:99
Double_t _maxFCN
Definition RooMinuit.h:134
Int_t setWarnLevel(Int_t newLevel)
Set MINUIT warning level to given level.
void applyCovarianceMatrix(TMatrixDSym &V)
Apply results of given external covariance matrix.
Int_t _status
Definition RooMinuit.h:118
void backProp()
Transfer MINUIT fit results back into RooFit objects.
Double_t getPdfParamErr(Int_t index)
Access PDF parameter error by ordinal index (needed by MINUIT)
RooArgList * _initConstParamList
Definition RooMinuit.h:131
@ ExtraForProblem
Definition RooMinuit.h:48
void updateFloatVec()
Bool_t _doEvalErrorWall
Definition RooMinuit.h:125
void setEps(Double_t eps)
Change MINUIT epsilon.
RooArgList * _initFloatParamList
Definition RooMinuit.h:129
void setPrintEvalErrors(Int_t numEvalErrors)
Definition RooMinuit.h:74
void setMaxEvalMultiplier(Int_t n)
Definition RooMinuit.h:77
void profileStop()
Stop profiling timer and report results of last session.
TMatrixDSym * _extV
Definition RooMinuit.h:140
TStopwatch _timer
Definition RooMinuit.h:137
Int_t minos()
Execute MINOS.
RooMinuit(const RooMinuit &)
void clearPdfParamAsymErr(Int_t index)
Modify PDF parameter error by ordinal index (needed by MINUIT)
Int_t improve()
Execute IMPROVE.
void profileStart()
Start profiling timer.
void setNoWarn()
Instruct MINUIT to suppress warnings.
RooArgList * _constParamList
Definition RooMinuit.h:130
virtual ~RooMinuit()
Destructor.
Int_t _evalCounter
Definition RooMinuit.h:115
RooFitResult * fit(const char *options)
Parse traditional RooAbsPdf::fitTo driver options.
RooAbsReal * _func
Definition RooMinuit.h:132
Int_t _maxEvalMult
Definition RooMinuit.h:126
Double_t getPdfParamVal(Int_t index)
Access PDF parameter value by ordinal index (needed by MINUIT)
static TVirtualFitter * _theFitter
Definition RooMinuit.h:142
A RooPlot is a plot frame and a container for graphics objects within that frame.
Definition RooPlot.h:44
RooRealVar represents a variable that can be changed from the outside.
Definition RooRealVar.h:39
2-D histogram with a float per channel (see TH1 documentation)}
Definition TH2.h:251
Mother of all ROOT objects.
Definition TObject.h:41
Stopwatch class.
Definition TStopwatch.h:28
Abstract Base Class for Fitting.
const Int_t n
Definition legend1.C:16