10 #ifndef ROOT_Minuit2_FunctionMinimum
11 #define ROOT_Minuit2_FunctionMinimum
16 typedef ROOT::Minuit2::MinimumState MinimumState;
30 class FunctionMinimum {
34 class MnReachedCallLimit {};
35 class MnAboveMaxEdm {};
41 FunctionMinimum(
const MinimumSeed& seed,
double up) : fData(MnRefCountedPointer<BasicFunctionMinimum>(new BasicFunctionMinimum(seed, up))) {}
44 FunctionMinimum(
const MinimumSeed& seed,
const std::vector<MinimumState>& states,
double up) : fData(MnRefCountedPointer<BasicFunctionMinimum>(new BasicFunctionMinimum(seed, states, up))) {}
47 FunctionMinimum(
const MinimumSeed& seed,
const std::vector<MinimumState>& states,
double up, MnReachedCallLimit) : fData(MnRefCountedPointer<BasicFunctionMinimum>(new BasicFunctionMinimum(seed, states, up, BasicFunctionMinimum::MnReachedCallLimit()))) {}
50 FunctionMinimum(
const MinimumSeed& seed,
const std::vector<MinimumState>& states,
double up, MnAboveMaxEdm) : fData(MnRefCountedPointer<BasicFunctionMinimum>(new BasicFunctionMinimum(seed, states, up, BasicFunctionMinimum::MnAboveMaxEdm()))) {}
53 FunctionMinimum(
const FunctionMinimum& min) : fData(min.fData) {}
55 FunctionMinimum& operator=(
const FunctionMinimum& min) {
63 void Add(
const MinimumState& state) {fData->Add(state);}
66 void Add(
const MinimumState& state, MnAboveMaxEdm) {fData->Add(state,BasicFunctionMinimum::MnAboveMaxEdm());}
68 const MinimumSeed& Seed()
const {
return fData->Seed();}
69 const std::vector<ROOT::Minuit2::MinimumState>& States()
const {
return fData->States();}
72 const MnUserParameterState& UserState()
const {
73 return fData->UserState();
75 const MnUserParameters& UserParameters()
const {
76 return fData->UserParameters();
78 const MnUserCovariance& UserCovariance()
const {
79 return fData->UserCovariance();
83 const MinimumState& State()
const {
return fData->State();}
84 const MinimumParameters& Parameters()
const {
return fData->Parameters();}
85 const MinimumError& Error()
const {
return fData->Error();}
86 const FunctionGradient& Grad()
const {
return fData->Grad();}
87 double Fval()
const {
return fData->Fval();}
88 double Edm()
const {
return fData->Edm();}
89 int NFcn()
const {
return fData->NFcn();}
91 double Up()
const {
return fData->Up();}
92 bool IsValid()
const {
return fData->IsValid();}
93 bool HasValidParameters()
const {
return fData->HasValidParameters();}
94 bool HasValidCovariance()
const {
return fData->HasValidCovariance();}
95 bool HasAccurateCovar()
const {
return fData->HasAccurateCovar();}
96 bool HasPosDefCovar()
const {
return fData->HasPosDefCovar();}
97 bool HasMadePosDefCovar()
const {
return fData->HasMadePosDefCovar();}
98 bool HesseFailed()
const {
return fData->HesseFailed();}
99 bool HasCovariance()
const {
return fData->HasCovariance();}
100 bool IsAboveMaxEdm()
const {
return fData->IsAboveMaxEdm();}
101 bool HasReachedCallLimit()
const {
return fData->HasReachedCallLimit();}
103 void SetErrorDef(
double up) {
return fData->SetErrorDef(up);}
107 MnRefCountedPointer<BasicFunctionMinimum> fData;
114 #endif // ROOT_Minuit2_FunctionMinimum