10 #ifndef ROOT_Minuit2_MinuitParameter 
   11 #define ROOT_Minuit2_MinuitParameter 
   33 class MinuitParameter {
 
   39       fNum(0), fValue(0), fError(0.), fConst(false), fFix(false),
 
   40       fLoLimit(0.), fUpLimit(0.), fLoLimValid(false), fUpLimValid(false),
 
   45    MinuitParameter(
unsigned int num, 
const std::string & name, 
double val) :
 
   46       fNum(num), fValue(val), fError(0.), fConst(true), fFix(false),
 
   47       fLoLimit(0.), fUpLimit(0.), fLoLimValid(false), fUpLimValid(false),
 
   52    MinuitParameter(
unsigned int num, 
const std::string & name, 
double val, 
double err) :
 
   53       fNum(num), fValue(val), fError(err), fConst(false), fFix(false),
 
   54       fLoLimit(0.), fUpLimit(0.), fLoLimValid(false), fUpLimValid(false),
 
   59    MinuitParameter(
unsigned int num, 
const std::string & name, 
double val, 
double err,
 
   60                    double min, 
double max) :
 
   61       fNum(num),fValue(val), fError(err), fConst(false), fFix(false),
 
   62       fLoLimit(min), fUpLimit(max), fLoLimValid(true), fUpLimValid(true),
 
   74    MinuitParameter(
const MinuitParameter& par) :
 
   75       fNum(par.fNum), fValue(par.fValue), fError(par.fError),
 
   76       fConst(par.fConst), fFix(par.fFix), fLoLimit(par.fLoLimit),
 
   77       fUpLimit(par.fUpLimit), fLoLimValid(par.fLoLimValid),
 
   78       fUpLimValid(par.fUpLimValid),
 
   82    MinuitParameter& operator=(
const MinuitParameter& par) {
 
   90          fLoLimit = par.fLoLimit;
 
   91          fUpLimit = par.fUpLimit;
 
   92          fLoLimValid = par.fLoLimValid;
 
   93          fUpLimValid = par.fUpLimValid;
 
   99    unsigned int Number()
 const {
return fNum;}
 
  101    const std::string & GetName()
 const { 
return fName; }
 
  103    const char * Name()
 const {
return fName.c_str();}
 
  105    double Value()
 const {
return fValue;}
 
  106    double Error()
 const {
return fError;}
 
  109    void SetName(
const std::string &name) { fName = name;  }
 
  111    void SetValue(
double val) {fValue = val;}
 
  112    void SetError(
double err) {fError = err;}
 
  113    void SetLimits(
double low, 
double up) {
 
  125    void SetUpperLimit(
double up) {
 
  132    void SetLowerLimit(
double low) {
 
  139    void RemoveLimits() {
 
  146    void Fix() {fFix = 
true;}
 
  147    void Release() {fFix = 
false;}
 
  150    bool IsConst()
 const {
return fConst;}
 
  151    bool IsFixed()
 const {
return fFix;}
 
  153    bool HasLimits()
 const {
return fLoLimValid || fUpLimValid; }
 
  154    bool HasLowerLimit()
 const {
return fLoLimValid; }
 
  155    bool HasUpperLimit()
 const {
return fUpLimValid; }
 
  156    double LowerLimit()
 const {
return fLoLimit;}
 
  157    double UpperLimit()
 const {
return fUpLimit;}
 
  187 #endif  // ROOT_Minuit2_MinuitParameter