10 #ifndef ROOT_Minuit2_MnUserParameterState 
   11 #define ROOT_Minuit2_MnUserParameterState 
   31 class MnUserParameterState {
 
   36    MnUserParameterState() : fValid(false), fCovarianceValid(false), fGCCValid(false), fCovStatus(-1), fFVal(0), fEDM(0), fNFcn(0),
 
   37                             fParameters(MnUserParameters()), fCovariance(MnUserCovariance()),
 
   38                             fIntParameters(std::vector<double>()), fIntCovariance(MnUserCovariance()) {}
 
   41    MnUserParameterState(
const std::vector<double>&, 
const std::vector<double>&);
 
   43    MnUserParameterState(
const MnUserParameters&);
 
   46    MnUserParameterState(
const std::vector<double>&, 
const std::vector<double>&, 
unsigned int);
 
   48    MnUserParameterState(
const std::vector<double>&, 
const MnUserCovariance&);
 
   50    MnUserParameterState(
const MnUserParameters&, 
const MnUserCovariance&);
 
   53    MnUserParameterState(
const MinimumState&, 
double, 
const MnUserTransformation&);
 
   55    ~MnUserParameterState() {}
 
   57    MnUserParameterState(
const MnUserParameterState& state) : fValid(state.fValid),
 
   58                                                              fCovarianceValid(state.fCovarianceValid), fGCCValid(state.fGCCValid), fCovStatus(state.fCovStatus),
 
   59                                                              fFVal(state.fFVal), fEDM(state.fEDM), fNFcn(state.fNFcn),
 
   60                                                              fParameters(state.fParameters),
 
   61                                                              fCovariance(state.fCovariance),
 
   62                                                              fGlobalCC(state.fGlobalCC), fIntParameters(state.fIntParameters), fIntCovariance(state.fIntCovariance) {}
 
   64    MnUserParameterState& operator=(
const MnUserParameterState& state) {
 
   66          fValid = state.fValid;
 
   67          fCovarianceValid = state.fCovarianceValid;
 
   68          fGCCValid = state.fGCCValid;
 
   69          fCovStatus = state.fCovStatus;
 
   73          fParameters = state.fParameters;
 
   74          fCovariance = state.fCovariance;
 
   75          fGlobalCC = state.fGlobalCC;
 
   76          fIntParameters = state.fIntParameters;
 
   77          fIntCovariance = state.fIntCovariance;
 
   83    const MnUserParameters& Parameters()
 const {
return fParameters;}
 
   84    const MnUserCovariance& Covariance()
 const {
return fCovariance;}
 
   85    const MnGlobalCorrelationCoeff& GlobalCC()
 const {
return fGlobalCC;}
 
   88    MnUserCovariance Hessian() 
const;
 
   91    const std::vector<double>& IntParameters()
 const {
return fIntParameters;}
 
   92    const MnUserCovariance& IntCovariance()
 const {
return fIntCovariance;}
 
   95    int CovarianceStatus()
 const { 
return fCovStatus; }
 
   98    const MnUserTransformation& Trafo()
 const {
return fParameters.Trafo();}
 
  100    bool IsValid()
 const {
return fValid;}
 
  101    bool HasCovariance()
 const {
return fCovarianceValid;}
 
  102    bool HasGlobalCC()
 const {
return fGCCValid;}
 
  104    double Fval()
 const {
return fFVal;}
 
  105    double Edm()
 const {
return fEDM;}
 
  106    unsigned int NFcn()
 const {
return fNFcn;}
 
  114    const std::vector<ROOT::Minuit2::MinuitParameter>& MinuitParameters() 
const;
 
  116    std::vector<double> Params() 
const;
 
  117    std::vector<double> Errors() 
const;
 
  120    const MinuitParameter& Parameter(
unsigned int i) 
const;
 
  123    void Add(
const std::string & name, 
double val, 
double err);
 
  125    void Add(
const std::string & name, 
double val, 
double err, 
double , 
double);
 
  127    void Add(
const std::string &, 
double);
 
  130    void Fix(
unsigned int);
 
  131    void Release(
unsigned int);
 
  132    void RemoveLimits(
unsigned int);
 
  133    void SetValue(
unsigned int, 
double);
 
  134    void SetError(
unsigned int, 
double);
 
  135    void SetLimits(
unsigned int, 
double, 
double);
 
  136    void SetUpperLimit(
unsigned int, 
double);
 
  137    void SetLowerLimit(
unsigned int, 
double);
 
  138    void SetName(
unsigned int iext, 
const std::string &name) { fParameters.SetName(iext,name); }
 
  140    double Value(
unsigned int) 
const;
 
  141    double Error(
unsigned int) 
const;
 
  144    void Fix(
const std::string &);
 
  145    void Release(
const std::string &);
 
  146    void SetValue(
const std::string &, 
double);
 
  147    void SetError(
const std::string &, 
double);
 
  148    void SetLimits(
const std::string &, 
double, 
double);
 
  149    void SetUpperLimit(
const std::string &, 
double);
 
  150    void SetLowerLimit(
const std::string &, 
double);
 
  151    void RemoveLimits(
const std::string &);
 
  153    double Value(
const std::string &) 
const;
 
  154    double Error(
const std::string &) 
const;
 
  157    unsigned int Index(
const std::string &) 
const;
 
  159    const std::string & GetName(
unsigned int) 
const;
 
  161    const char* Name(
unsigned int) 
const;
 
  164    double Int2ext(
unsigned int, 
double) 
const;
 
  165    double Ext2int(
unsigned int, 
double) 
const;
 
  166    unsigned int IntOfExt(
unsigned int) 
const;
 
  167    unsigned int ExtOfInt(
unsigned int) 
const;
 
  168    unsigned int VariableParameters() 
const;
 
  169    const MnMachinePrecision& Precision() 
const;
 
  170    void SetPrecision(
double eps);
 
  176    bool fCovarianceValid;
 
  183    MnUserParameters fParameters;
 
  184    MnUserCovariance fCovariance;
 
  185    MnGlobalCorrelationCoeff fGlobalCC;
 
  187    std::vector<double> fIntParameters;
 
  188    MnUserCovariance fIntCovariance;
 
  196 #endif  // ROOT_Minuit2_MnUserParameterState