```/*****************************************************************************
* Project: RooFit                                                           *
* Package: RooFitCore                                                       *
*    File: \$Id: RooMinuit.h,v 1.15 2007/07/12 20:30:28 wouter Exp \$
* Authors:                                                                  *
*   WV, Wouter Verkerke, UC Santa Barbara, verkerke@slac.stanford.edu       *
*   DK, David Kirkby,    UC Irvine,         dkirkby@uci.edu                 *
*                                                                           *
* Copyright (c) 2000-2005, Regents of the University of California          *
*                                                                           *
* Redistribution and use in source and binary forms,                        *
* with or without modification, are permitted according to the terms        *
*****************************************************************************/
#ifndef ROO_MINUIT
#define ROO_MINUIT

#include "TObject.h"
#include "TStopwatch.h"
#include <fstream>
#include "TMatrixDSymfwd.h"
#include <vector>
#include <string>
#include <map>

class RooAbsReal ;
class RooFitResult ;
class RooArgList ;
class RooRealVar ;
class RooArgSet ;
class RooAbsArg ;
class TVirtualFitter ;
class TH2F ;
class RooPlot ;

void RooMinuitGlue(Int_t& /*np*/, Double_t* /*gin*/,  Double_t &f, Double_t *par, Int_t /*flag*/) ;

class RooMinuit : public TObject {
public:

RooMinuit(RooAbsReal& function) ;
virtual ~RooMinuit() ;

enum Strategy { Speed=0, Balance=1, Robustness=2 } ;
enum PrintLevel { None=-1, Reduced=0, Normal=1, ExtraForProblem=2, Maximum=3 } ;
void setStrategy(Int_t strat) ;
void setErrorLevel(Double_t level) ;
void setEps(Double_t eps) ;
void optimizeConst(Int_t flag) ;
void setEvalErrorWall(Bool_t flag) { _doEvalErrorWall = flag ; }
void setOffsetting(Bool_t flag) ;

RooFitResult* fit(const char* options) ;

Int_t hesse() ;
Int_t minos() ;
Int_t minos(const RooArgSet& minosParamList) ;  // added FMV, 08/18/03
Int_t seek() ;
Int_t simplex() ;
Int_t improve() ;

RooFitResult* save(const char* name=0, const char* title=0) ;
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) ;

Int_t setPrintLevel(Int_t newLevel) ;
void setNoWarn() ;
Int_t setWarnLevel(Int_t newLevel) ;
void setPrintEvalErrors(Int_t numEvalErrors) { _printEvalErrors = numEvalErrors ; }
void setVerbose(Bool_t flag=kTRUE) { _verbose = flag ; }
void setProfile(Bool_t flag=kTRUE) { _profile = flag ; }
void setMaxEvalMultiplier(Int_t n) { _maxEvalMult = n ; }
Bool_t setLogFile(const char* logfile=0) ;

static void cleanup() ;

Int_t evalCounter() const { return _evalCounter ; }
void zeroEvalCount() { _evalCounter = 0 ; }

protected:

friend class RooAbsPdf ;
void applyCovarianceMatrix(TMatrixDSym& V) ;

friend void RooMinuitGlue(Int_t &np, Double_t *gin, Double_t &f, Double_t *par, Int_t flag) ;

void profileStart() ;
void profileStop() ;

Bool_t synchronize(Bool_t verbose) ;
void backProp() ;

inline Int_t getNPar() const { return _nPar ; }
inline std::ofstream* logfile() const { return _logfile ; }
inline Double_t& maxFCN() { return _maxFCN ; }

Double_t getPdfParamVal(Int_t index) ;
Double_t getPdfParamErr(Int_t index) ;
virtual Bool_t setPdfParamVal(Int_t index, Double_t value, Bool_t verbose=kFALSE) ;
void setPdfParamErr(Int_t index, Double_t value) ;
void setPdfParamErr(Int_t index, Double_t loVal, Double_t hiVal) ;
void clearPdfParamAsymErr(Int_t index) ;

void saveStatus(const char* label, Int_t status) { _statusHistory.push_back(std::pair<std::string,int>(label,status)) ; }

void updateFloatVec() ;

private:

Int_t       _evalCounter ;
Int_t       _printLevel ;
Int_t       _warnLevel ;
Int_t       _status ;
Int_t       _optConst ;
Bool_t      _profile ;
Bool_t      _handleLocalErrors ;
Int_t       _nPar ;
Int_t       _printEvalErrors ;
Bool_t      _doEvalErrorWall ;
Int_t       _maxEvalMult ;
RooArgList* _floatParamList ;
std::vector<RooAbsArg*> _floatParamVec ;
RooArgList* _initFloatParamList ;
RooArgList* _constParamList ;
RooArgList* _initConstParamList ;
RooAbsReal* _func ;

Double_t    _maxFCN ;
std::ofstream*   _logfile ;
Bool_t      _verbose ;
TStopwatch  _timer ;
TStopwatch  _cumulTimer ;

TMatrixDSym* _extV ;

static TVirtualFitter *_theFitter ;

std::vector<std::pair<std::string,int> > _statusHistory ;

RooMinuit(const RooMinuit&) ;

ClassDef(RooMinuit,0) // RooFit minimizer based on MINUIT
} ;

#endif

```
RooMinuit.h:1
RooMinuit.h:2
RooMinuit.h:3
RooMinuit.h:4
RooMinuit.h:5
RooMinuit.h:6
RooMinuit.h:7
RooMinuit.h:8
RooMinuit.h:9
RooMinuit.h:10
RooMinuit.h:11
RooMinuit.h:12
RooMinuit.h:13
RooMinuit.h:14
RooMinuit.h:15
RooMinuit.h:16
RooMinuit.h:17
RooMinuit.h:18
RooMinuit.h:19
RooMinuit.h:20
RooMinuit.h:21
RooMinuit.h:22
RooMinuit.h:23
RooMinuit.h:24
RooMinuit.h:25
RooMinuit.h:26
RooMinuit.h:27
RooMinuit.h:28
RooMinuit.h:29
RooMinuit.h:30
RooMinuit.h:31
RooMinuit.h:32
RooMinuit.h:33
RooMinuit.h:34
RooMinuit.h:35
RooMinuit.h:36
RooMinuit.h:37
RooMinuit.h:38
RooMinuit.h:39
RooMinuit.h:40
RooMinuit.h:41
RooMinuit.h:42
RooMinuit.h:43
RooMinuit.h:44
RooMinuit.h:45
RooMinuit.h:46
RooMinuit.h:47
RooMinuit.h:48
RooMinuit.h:49
RooMinuit.h:50
RooMinuit.h:51
RooMinuit.h:52
RooMinuit.h:53
RooMinuit.h:54
RooMinuit.h:55
RooMinuit.h:56
RooMinuit.h:57
RooMinuit.h:58
RooMinuit.h:59
RooMinuit.h:60
RooMinuit.h:61
RooMinuit.h:62
RooMinuit.h:63
RooMinuit.h:64
RooMinuit.h:65
RooMinuit.h:66
RooMinuit.h:67
RooMinuit.h:68
RooMinuit.h:69
RooMinuit.h:70
RooMinuit.h:71
RooMinuit.h:72
RooMinuit.h:73
RooMinuit.h:74
RooMinuit.h:75
RooMinuit.h:76
RooMinuit.h:77
RooMinuit.h:78
RooMinuit.h:79
RooMinuit.h:80
RooMinuit.h:81
RooMinuit.h:82
RooMinuit.h:83
RooMinuit.h:84
RooMinuit.h:85
RooMinuit.h:86
RooMinuit.h:87
RooMinuit.h:88
RooMinuit.h:89
RooMinuit.h:90
RooMinuit.h:91
RooMinuit.h:92
RooMinuit.h:93
RooMinuit.h:94
RooMinuit.h:95
RooMinuit.h:96
RooMinuit.h:97
RooMinuit.h:98
RooMinuit.h:99
RooMinuit.h:100
RooMinuit.h:101
RooMinuit.h:102
RooMinuit.h:103
RooMinuit.h:104
RooMinuit.h:105
RooMinuit.h:106
RooMinuit.h:107
RooMinuit.h:108
RooMinuit.h:109
RooMinuit.h:110
RooMinuit.h:111
RooMinuit.h:112
RooMinuit.h:113
RooMinuit.h:114
RooMinuit.h:115
RooMinuit.h:116
RooMinuit.h:117
RooMinuit.h:118
RooMinuit.h:119
RooMinuit.h:120
RooMinuit.h:121
RooMinuit.h:122
RooMinuit.h:123
RooMinuit.h:124
RooMinuit.h:125
RooMinuit.h:126
RooMinuit.h:127
RooMinuit.h:128
RooMinuit.h:129
RooMinuit.h:130
RooMinuit.h:131
RooMinuit.h:132
RooMinuit.h:133
RooMinuit.h:134
RooMinuit.h:135
RooMinuit.h:136
RooMinuit.h:137
RooMinuit.h:138
RooMinuit.h:139
RooMinuit.h:140
RooMinuit.h:141
RooMinuit.h:142
RooMinuit.h:143
RooMinuit.h:144
RooMinuit.h:145
RooMinuit.h:146
RooMinuit.h:147
RooMinuit.h:148
RooMinuit.h:149
RooMinuit.h:150
RooMinuit.h:151