10 #ifndef ROOT_Minuit2_MinimumState 
   11 #define ROOT_Minuit2_MinimumState 
   21 class MinimumParameters;
 
   23 class FunctionGradient;
 
   34    MinimumState(
unsigned int n) :
 
   35       fData(MnRefCountedPointer<BasicMinimumState>(new BasicMinimumState(n,0.,0.,0.))) {}
 
   37    MinimumState(
double fval, 
double edm, 
int nfcn) :
 
   38       fData(MnRefCountedPointer<BasicMinimumState>(new BasicMinimumState(0, fval, edm, nfcn))) {}
 
   40    MinimumState(
const MinimumParameters& states, 
double edm, 
int nfcn) :
 
   41       fData(MnRefCountedPointer<BasicMinimumState>(new BasicMinimumState(states, edm, nfcn))) {}
 
   45   MinimumState(
const MinimumParameters& states, 
const MinimumError& err,
 
   46                const FunctionGradient& grad, 
double edm, 
int nfcn) :
 
   47      fData(MnRefCountedPointer<BasicMinimumState>(new BasicMinimumState(states, err, grad, edm, nfcn))) {}
 
   51   MinimumState(
const MinimumState& state) : fData(state.fData) {}
 
   53   MinimumState& operator=(
const MinimumState& state) {
 
   58   const MinimumParameters& Parameters()
 const {
return fData->Parameters();}
 
   59   const MnAlgebraicVector& Vec()
 const {
return fData->Vec();}
 
   60   int size()
 const {
return fData->size();}
 
   62   const MinimumError& Error()
 const {
return fData->Error();}
 
   63   const FunctionGradient& Gradient()
 const {
return fData->Gradient();}
 
   64   double Fval()
 const {
return fData->Fval();}
 
   65   double Edm()
 const {
return fData->Edm();}
 
   66   int NFcn()
 const {
return fData->NFcn();}
 
   68   bool IsValid()
 const {
return fData->IsValid();}
 
   70   bool HasParameters()
 const {
return fData->HasParameters();}
 
   71   bool HasCovariance()
 const {
return fData->HasCovariance();}
 
   75   MnRefCountedPointer<BasicMinimumState> fData;
 
   82 #endif  // ROOT_Minuit2_MinimumState