BornAgain  1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
ROOT::Minuit2::BasicFunctionMinimum Class Reference

Description

result of the minimization; both internal and external (MnUserParameterState) representation available For the parameters at the Minimum

Definition at line 34 of file BasicFunctionMinimum.h.

Collaboration diagram for ROOT::Minuit2::BasicFunctionMinimum:
[legend]

Classes

class  MnAboveMaxEdm
 
class  MnReachedCallLimit
 

Public Member Functions

 BasicFunctionMinimum (const BasicFunctionMinimum &min)
 copy constructor More...
 
 BasicFunctionMinimum (const MinimumSeed &seed, const std::vector< MinimumState > &states, double up)
 constructor at the end of a successfull minimization from seed and vector of states More...
 
 BasicFunctionMinimum (const MinimumSeed &seed, const std::vector< MinimumState > &states, double up, MnAboveMaxEdm)
 constructor at the end of a failed minimization due to edm above maximum value More...
 
 BasicFunctionMinimum (const MinimumSeed &seed, const std::vector< MinimumState > &states, double up, MnReachedCallLimit)
 constructor at the end of a failed minimization due to exceeding function call limit More...
 
 BasicFunctionMinimum (const MinimumSeed &seed, double up)
 constructor from only MinimumSeed. Minimum is only from seed result not the full minimization More...
 
 ~BasicFunctionMinimum ()
 
void Add (const MinimumState &state)
 add latest minimization state (for example add Hesse result after Migrad) More...
 
void Add (const MinimumState &state, MnAboveMaxEdm)
 Add a new state and flag that edm is above maximum. More...
 
double Edm () const
 
const MinimumErrorError () const
 
double Fval () const
 
const FunctionGradientGrad () const
 
bool HasAccurateCovar () const
 
bool HasCovariance () const
 
bool HasMadePosDefCovar () const
 
bool HasPosDefCovar () const
 
bool HasReachedCallLimit () const
 
bool HasValidCovariance () const
 
bool HasValidParameters () const
 
bool HesseFailed () const
 
bool IsAboveMaxEdm () const
 
bool IsValid () const
 
int NFcn () const
 
void operator delete (void *p, size_t)
 
void * operator new (size_t nbytes)
 
BasicFunctionMinimumoperator= (const BasicFunctionMinimum &min)
 
const MinimumParametersParameters () const
 
const MinimumSeedSeed () const
 
void SetErrorDef (double up)
 
const MinimumStateState () const
 
const std::vector< MinimumState > & States () const
 
double Up () const
 
const MnUserCovarianceUserCovariance () const
 
const MnUserParametersUserParameters () const
 
const MnUserParameterStateUserState () const
 

Private Attributes

bool fAboveMaxEdm
 
double fErrorDef
 
bool fReachedCallLimit
 
MinimumSeed fSeed
 
std::vector< MinimumStatefStates
 
MnUserParameterState fUserState
 

Constructor & Destructor Documentation

◆ BasicFunctionMinimum() [1/5]

ROOT::Minuit2::BasicFunctionMinimum::BasicFunctionMinimum ( const MinimumSeed seed,
double  up 
)
inline

constructor from only MinimumSeed. Minimum is only from seed result not the full minimization

Definition at line 44 of file BasicFunctionMinimum.h.

44 : fSeed(seed), fStates(std::vector<MinimumState>(1, MinimumState(seed.Parameters(), seed.Error(), seed.Gradient(), seed.Parameters().Fval(), seed.NFcn()))), fErrorDef(up), fAboveMaxEdm(false), fReachedCallLimit(false), fUserState(MnUserParameterState()) {}
std::vector< MinimumState > fStates

◆ BasicFunctionMinimum() [2/5]

ROOT::Minuit2::BasicFunctionMinimum::BasicFunctionMinimum ( const MinimumSeed seed,
const std::vector< MinimumState > &  states,
double  up 
)
inline

constructor at the end of a successfull minimization from seed and vector of states

Definition at line 47 of file BasicFunctionMinimum.h.

47 : fSeed(seed), fStates(states), fErrorDef(up), fAboveMaxEdm(false), fReachedCallLimit(false), fUserState(MnUserParameterState()) {}

◆ BasicFunctionMinimum() [3/5]

ROOT::Minuit2::BasicFunctionMinimum::BasicFunctionMinimum ( const MinimumSeed seed,
const std::vector< MinimumState > &  states,
double  up,
MnReachedCallLimit   
)
inline

constructor at the end of a failed minimization due to exceeding function call limit

Definition at line 50 of file BasicFunctionMinimum.h.

50 : fSeed(seed), fStates(states), fErrorDef(up), fAboveMaxEdm(false), fReachedCallLimit(true), fUserState(MnUserParameterState()) {}

◆ BasicFunctionMinimum() [4/5]

ROOT::Minuit2::BasicFunctionMinimum::BasicFunctionMinimum ( const MinimumSeed seed,
const std::vector< MinimumState > &  states,
double  up,
MnAboveMaxEdm   
)
inline

constructor at the end of a failed minimization due to edm above maximum value

Definition at line 53 of file BasicFunctionMinimum.h.

53 : fSeed(seed), fStates(states), fErrorDef(up), fAboveMaxEdm(true), fReachedCallLimit(false), fUserState(MnUserParameterState()) {}

◆ BasicFunctionMinimum() [5/5]

ROOT::Minuit2::BasicFunctionMinimum::BasicFunctionMinimum ( const BasicFunctionMinimum min)
inline

copy constructor

Definition at line 56 of file BasicFunctionMinimum.h.

56 : fSeed(min.fSeed), fStates(min.fStates), fErrorDef(min.fErrorDef), fAboveMaxEdm(min.fAboveMaxEdm), fReachedCallLimit(min.fReachedCallLimit), fUserState(min.fUserState) {}

◆ ~BasicFunctionMinimum()

ROOT::Minuit2::BasicFunctionMinimum::~BasicFunctionMinimum ( )
inline

Definition at line 68 of file BasicFunctionMinimum.h.

68 {}

Member Function Documentation

◆ Add() [1/2]

void ROOT::Minuit2::BasicFunctionMinimum::Add ( const MinimumState state)
inline

add latest minimization state (for example add Hesse result after Migrad)

Definition at line 71 of file BasicFunctionMinimum.h.

71  {
72  fStates.push_back(state);
73  // LM : update also the user state
74  fUserState = MnUserParameterState(State(), Up(), Seed().Trafo());
75  // reset maxedm flag. If new state has edm over max other method must be used
76  fAboveMaxEdm = false;
77  }
const MinimumState & State() const
const MinimumSeed & Seed() const

References fAboveMaxEdm, fStates, fUserState, Seed(), State(), and Up().

Referenced by Add().

Here is the call graph for this function:

◆ Add() [2/2]

void ROOT::Minuit2::BasicFunctionMinimum::Add ( const MinimumState state,
MnAboveMaxEdm   
)
inline

Add a new state and flag that edm is above maximum.

Definition at line 80 of file BasicFunctionMinimum.h.

80  {
81  Add(state);
82  fAboveMaxEdm = true;
83  }
void Add(const MinimumState &state)
add latest minimization state (for example add Hesse result after Migrad)

References Add(), and fAboveMaxEdm.

Here is the call graph for this function:

◆ Edm()

double ROOT::Minuit2::BasicFunctionMinimum::Edm ( ) const
inline

Definition at line 119 of file BasicFunctionMinimum.h.

119 {return fStates.back().Edm();}

References fStates.

◆ Error()

const MinimumError& ROOT::Minuit2::BasicFunctionMinimum::Error ( ) const
inline

Definition at line 116 of file BasicFunctionMinimum.h.

116 {return fStates.back().Error();}

References fStates.

◆ Fval()

double ROOT::Minuit2::BasicFunctionMinimum::Fval ( ) const
inline

Definition at line 118 of file BasicFunctionMinimum.h.

118 {return fStates.back().Fval();}

References fStates.

◆ Grad()

const FunctionGradient& ROOT::Minuit2::BasicFunctionMinimum::Grad ( ) const
inline

Definition at line 117 of file BasicFunctionMinimum.h.

117 {return fStates.back().Gradient();}

References fStates.

◆ HasAccurateCovar()

bool ROOT::Minuit2::BasicFunctionMinimum::HasAccurateCovar ( ) const
inline

Definition at line 128 of file BasicFunctionMinimum.h.

128 {return State().Error().IsAccurate();}
const MinimumError & Error() const
Definition: MinimumState.h:62

References ROOT::Minuit2::MinimumState::Error(), ROOT::Minuit2::MinimumError::IsAccurate(), and State().

Here is the call graph for this function:

◆ HasCovariance()

bool ROOT::Minuit2::BasicFunctionMinimum::HasCovariance ( ) const
inline

Definition at line 132 of file BasicFunctionMinimum.h.

132 {return State().Error().IsAvailable();}

References ROOT::Minuit2::MinimumState::Error(), ROOT::Minuit2::MinimumError::IsAvailable(), and State().

Here is the call graph for this function:

◆ HasMadePosDefCovar()

bool ROOT::Minuit2::BasicFunctionMinimum::HasMadePosDefCovar ( ) const
inline

Definition at line 130 of file BasicFunctionMinimum.h.

130 {return State().Error().IsMadePosDef();}

References ROOT::Minuit2::MinimumState::Error(), ROOT::Minuit2::MinimumError::IsMadePosDef(), and State().

Here is the call graph for this function:

◆ HasPosDefCovar()

bool ROOT::Minuit2::BasicFunctionMinimum::HasPosDefCovar ( ) const
inline

Definition at line 129 of file BasicFunctionMinimum.h.

129 {return State().Error().IsPosDef();}

References ROOT::Minuit2::MinimumState::Error(), ROOT::Minuit2::MinimumError::IsPosDef(), and State().

Here is the call graph for this function:

◆ HasReachedCallLimit()

bool ROOT::Minuit2::BasicFunctionMinimum::HasReachedCallLimit ( ) const
inline

Definition at line 134 of file BasicFunctionMinimum.h.

134 {return fReachedCallLimit;}

References fReachedCallLimit.

Referenced by IsValid().

◆ HasValidCovariance()

bool ROOT::Minuit2::BasicFunctionMinimum::HasValidCovariance ( ) const
inline

Definition at line 127 of file BasicFunctionMinimum.h.

127 {return State().Error().IsValid();}

References ROOT::Minuit2::MinimumState::Error(), ROOT::Minuit2::MinimumError::IsValid(), and State().

Here is the call graph for this function:

◆ HasValidParameters()

bool ROOT::Minuit2::BasicFunctionMinimum::HasValidParameters ( ) const
inline

Definition at line 126 of file BasicFunctionMinimum.h.

126 {return State().Parameters().IsValid();}
const MinimumParameters & Parameters() const
Definition: MinimumState.h:58

References ROOT::Minuit2::MinimumParameters::IsValid(), ROOT::Minuit2::MinimumState::Parameters(), and State().

Here is the call graph for this function:

◆ HesseFailed()

bool ROOT::Minuit2::BasicFunctionMinimum::HesseFailed ( ) const
inline

Definition at line 131 of file BasicFunctionMinimum.h.

131 {return State().Error().HesseFailed();}

References ROOT::Minuit2::MinimumState::Error(), ROOT::Minuit2::MinimumError::HesseFailed(), and State().

Here is the call graph for this function:

◆ IsAboveMaxEdm()

bool ROOT::Minuit2::BasicFunctionMinimum::IsAboveMaxEdm ( ) const
inline

Definition at line 133 of file BasicFunctionMinimum.h.

133 {return fAboveMaxEdm;}

References fAboveMaxEdm.

Referenced by IsValid().

◆ IsValid()

bool ROOT::Minuit2::BasicFunctionMinimum::IsValid ( ) const
inline

Definition at line 123 of file BasicFunctionMinimum.h.

References HasReachedCallLimit(), IsAboveMaxEdm(), ROOT::Minuit2::MinimumState::IsValid(), and State().

Here is the call graph for this function:

◆ NFcn()

int ROOT::Minuit2::BasicFunctionMinimum::NFcn ( ) const
inline

Definition at line 120 of file BasicFunctionMinimum.h.

120 {return fStates.back().NFcn();}

References fStates.

◆ operator delete()

void ROOT::Minuit2::BasicFunctionMinimum::operator delete ( void *  p,
size_t   
)
inline

Definition at line 109 of file BasicFunctionMinimum.h.

109  {
111  }
static StackAllocator & Get()

References ROOT::Minuit2::StackAllocator::Deallocate(), and ROOT::Minuit2::StackAllocatorHolder::Get().

Here is the call graph for this function:

◆ operator new()

void* ROOT::Minuit2::BasicFunctionMinimum::operator new ( size_t  nbytes)
inline

Definition at line 105 of file BasicFunctionMinimum.h.

105  {
106  return StackAllocatorHolder::Get().Allocate(nbytes);
107  }
void * Allocate(size_t nBytes)

References ROOT::Minuit2::StackAllocator::Allocate(), and ROOT::Minuit2::StackAllocatorHolder::Get().

Here is the call graph for this function:

◆ operator=()

BasicFunctionMinimum& ROOT::Minuit2::BasicFunctionMinimum::operator= ( const BasicFunctionMinimum min)
inline

Definition at line 58 of file BasicFunctionMinimum.h.

58  {
59  fSeed = min.fSeed;
60  fStates = min.fStates;
61  fErrorDef = min.fErrorDef;
62  fAboveMaxEdm = min.fAboveMaxEdm;
63  fReachedCallLimit = min.fReachedCallLimit;
64  fUserState = min.fUserState;
65  return *this;
66  }

References fAboveMaxEdm, fErrorDef, fReachedCallLimit, fSeed, fStates, and fUserState.

◆ Parameters()

const MinimumParameters& ROOT::Minuit2::BasicFunctionMinimum::Parameters ( ) const
inline

Definition at line 115 of file BasicFunctionMinimum.h.

115 {return fStates.back().Parameters();}

References fStates.

◆ Seed()

const MinimumSeed& ROOT::Minuit2::BasicFunctionMinimum::Seed ( ) const
inline

Definition at line 85 of file BasicFunctionMinimum.h.

85 {return fSeed;}

References fSeed.

Referenced by Add(), SetErrorDef(), UserCovariance(), UserParameters(), and UserState().

◆ SetErrorDef()

void ROOT::Minuit2::BasicFunctionMinimum::SetErrorDef ( double  up)
inline

Definition at line 136 of file BasicFunctionMinimum.h.

136  {
137  fErrorDef = up;
138  // update user state for new valeu of up (scaling of errors)
139  fUserState = MnUserParameterState(State(), up, Seed().Trafo());
140  }

References fErrorDef, fUserState, Seed(), and State().

Here is the call graph for this function:

◆ State()

const MinimumState& ROOT::Minuit2::BasicFunctionMinimum::State ( ) const
inline

◆ States()

const std::vector<MinimumState>& ROOT::Minuit2::BasicFunctionMinimum::States ( ) const
inline

Definition at line 86 of file BasicFunctionMinimum.h.

86 {return fStates;}

References fStates.

◆ Up()

double ROOT::Minuit2::BasicFunctionMinimum::Up ( ) const
inline

Definition at line 122 of file BasicFunctionMinimum.h.

122 {return fErrorDef;}

References fErrorDef.

Referenced by Add(), UserCovariance(), UserParameters(), and UserState().

◆ UserCovariance()

const MnUserCovariance& ROOT::Minuit2::BasicFunctionMinimum::UserCovariance ( ) const
inline

Definition at line 99 of file BasicFunctionMinimum.h.

99  {
100  if(!fUserState.IsValid())
101  fUserState = MnUserParameterState(State(), Up(), Seed().Trafo());
102  return fUserState.Covariance();
103  }
const MnUserCovariance & Covariance() const

References ROOT::Minuit2::MnUserParameterState::Covariance(), fUserState, ROOT::Minuit2::MnUserParameterState::IsValid(), Seed(), State(), and Up().

Here is the call graph for this function:

◆ UserParameters()

const MnUserParameters& ROOT::Minuit2::BasicFunctionMinimum::UserParameters ( ) const
inline

Definition at line 94 of file BasicFunctionMinimum.h.

94  {
95  if(!fUserState.IsValid())
96  fUserState = MnUserParameterState(State(), Up(), Seed().Trafo());
97  return fUserState.Parameters();
98  }
const MnUserParameters & Parameters() const

References fUserState, ROOT::Minuit2::MnUserParameterState::IsValid(), ROOT::Minuit2::MnUserParameterState::Parameters(), Seed(), State(), and Up().

Here is the call graph for this function:

◆ UserState()

const MnUserParameterState& ROOT::Minuit2::BasicFunctionMinimum::UserState ( ) const
inline

Definition at line 89 of file BasicFunctionMinimum.h.

89  {
90  if(!fUserState.IsValid())
91  fUserState = MnUserParameterState(State(), Up(), Seed().Trafo());
92  return fUserState;
93  }

References fUserState, ROOT::Minuit2::MnUserParameterState::IsValid(), Seed(), State(), and Up().

Here is the call graph for this function:

Member Data Documentation

◆ fAboveMaxEdm

bool ROOT::Minuit2::BasicFunctionMinimum::fAboveMaxEdm
private

Definition at line 147 of file BasicFunctionMinimum.h.

Referenced by Add(), IsAboveMaxEdm(), and operator=().

◆ fErrorDef

double ROOT::Minuit2::BasicFunctionMinimum::fErrorDef
private

Definition at line 146 of file BasicFunctionMinimum.h.

Referenced by operator=(), SetErrorDef(), and Up().

◆ fReachedCallLimit

bool ROOT::Minuit2::BasicFunctionMinimum::fReachedCallLimit
private

Definition at line 148 of file BasicFunctionMinimum.h.

Referenced by HasReachedCallLimit(), and operator=().

◆ fSeed

MinimumSeed ROOT::Minuit2::BasicFunctionMinimum::fSeed
private

Definition at line 144 of file BasicFunctionMinimum.h.

Referenced by operator=(), and Seed().

◆ fStates

std::vector<MinimumState> ROOT::Minuit2::BasicFunctionMinimum::fStates
private

Definition at line 145 of file BasicFunctionMinimum.h.

Referenced by Add(), Edm(), Error(), Fval(), Grad(), NFcn(), operator=(), Parameters(), State(), and States().

◆ fUserState

MnUserParameterState ROOT::Minuit2::BasicFunctionMinimum::fUserState
mutableprivate

The documentation for this class was generated from the following file: