#ifndef ROOT_Minuit2_MnUserParameterState
#define ROOT_Minuit2_MnUserParameterState
#include "Minuit2/MnUserParameters.h"
#include "Minuit2/MnUserCovariance.h"
#include "Minuit2/MnGlobalCorrelationCoeff.h"
namespace ROOT {
   namespace Minuit2 {
class MinimumState;
class MnUserParameterState {
public:
   
   MnUserParameterState() : fValid(false), fCovarianceValid(false), fParameters(MnUserParameters()), fCovariance(MnUserCovariance()), fIntParameters(std::vector<double>()), fIntCovariance(MnUserCovariance()) {} 
   
   MnUserParameterState(const std::vector<double>&, const std::vector<double>&);
   MnUserParameterState(const MnUserParameters&);
   
   MnUserParameterState(const std::vector<double>&, const std::vector<double>&, unsigned int);
   MnUserParameterState(const std::vector<double>&, const MnUserCovariance&);
   MnUserParameterState(const MnUserParameters&, const MnUserCovariance&);
   
   MnUserParameterState(const MinimumState&, double, const MnUserTransformation&);
   ~MnUserParameterState() {}
   MnUserParameterState(const MnUserParameterState& state) : fValid(state.fValid), fCovarianceValid(state.fCovarianceValid), fGCCValid(state.fGCCValid), fFVal(state.fFVal), fEDM(state.fEDM), fNFcn(state.fNFcn), fParameters(state.fParameters), fCovariance(state.fCovariance), fGlobalCC(state.fGlobalCC), fIntParameters(state.fIntParameters), fIntCovariance(state.fIntCovariance) {}
   MnUserParameterState& operator=(const MnUserParameterState& state) {
      fValid = state.fValid;
      fCovarianceValid = state.fCovarianceValid;
      fGCCValid = state.fGCCValid;
      fFVal = state.fFVal;
      fEDM = state.fEDM;
      fNFcn = state.fNFcn;
      fParameters = state.fParameters;
      fCovariance = state.fCovariance;
      fGlobalCC = state.fGlobalCC;
      fIntParameters = state.fIntParameters;
      fIntCovariance = state.fIntCovariance;
      return *this;
   }
   
   const MnUserParameters& Parameters() const {return fParameters;}
   const MnUserCovariance& Covariance() const {return fCovariance;}
   const MnGlobalCorrelationCoeff& GlobalCC() const {return fGlobalCC;}
   
   const std::vector<double>& IntParameters() const {return fIntParameters;}
   const MnUserCovariance& IntCovariance() const {return fIntCovariance;}
   
   const MnUserTransformation& Trafo() const {return fParameters.Trafo();}
   bool IsValid() const {return fValid;}
   bool HasCovariance() const {return fCovarianceValid;}
   bool HasGlobalCC() const {return fGCCValid;}
   double Fval() const {return fFVal;}
   double Edm() const {return fEDM;}
   unsigned int NFcn() const {return fNFcn;}  
private:
  
   bool fValid;
   bool fCovarianceValid;
   bool fGCCValid;
   double fFVal;
   double fEDM;
   unsigned int fNFcn;
   MnUserParameters fParameters;
   MnUserCovariance fCovariance;
   MnGlobalCorrelationCoeff fGlobalCC;
   std::vector<double> fIntParameters;
   MnUserCovariance fIntCovariance;
public:
   
   const std::vector<ROOT::Minuit2::MinuitParameter>& MinuitParameters() const;
   
   std::vector<double> Params() const;
   std::vector<double> Errors() const;
   
   const MinuitParameter& Parameter(unsigned int i) const;
   
   void Add(const char* Name, double val, double err);
   
   void Add(const char* Name, double val, double err, double , double);
   
   void Add(const char*, double);
   
   void Fix(unsigned int);
   void Release(unsigned int);
   void SetValue(unsigned int, double);
   void SetError(unsigned int, double);
   void SetLimits(unsigned int, double, double);
   void SetUpperLimit(unsigned int, double);
   void SetLowerLimit(unsigned int, double);
   void RemoveLimits(unsigned int);
   double Value(unsigned int) const;
   double Error(unsigned int) const;
  
   
   void Fix(const char*);
   void Release(const char*);
   void SetValue(const char*, double);
   void SetError(const char*, double);
   void SetLimits(const char*, double, double);
   void SetUpperLimit(const char*, double);
   void SetLowerLimit(const char*, double);
   void RemoveLimits(const char*);
   double Value(const char*) const;
   double Error(const char*) const;
  
   
   unsigned int Index(const char*) const;
   
   const char* Name(unsigned int) const;
   
   double Int2ext(unsigned int, double) const;
   double Ext2int(unsigned int, double) const;
   unsigned int IntOfExt(unsigned int) const;
   unsigned int ExtOfInt(unsigned int) const;
   unsigned int VariableParameters() const;
   const MnMachinePrecision& Precision() const;
   void SetPrecision(double eps);
};
  }  
}  
#endif  // ROOT_Minuit2_MnUserParameterState
Last update: Thu Jan 17 08:42:40 2008
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.