10 #ifndef ROOT_Minuit2_MnStrategy 
   11 #define ROOT_Minuit2_MnStrategy 
   35    explicit MnStrategy(
unsigned int);
 
   39    unsigned int Strategy()
 const {
return fStrategy;}
 
   41    unsigned int GradientNCycles()
 const {
return fGradNCyc;}
 
   42    double GradientStepTolerance()
 const {
return fGradTlrStp;}
 
   43    double GradientTolerance()
 const {
return fGradTlr;}
 
   45    unsigned int HessianNCycles()
 const {
return fHessNCyc;}
 
   46    double HessianStepTolerance()
 const {
return fHessTlrStp;}
 
   47    double HessianG2Tolerance()
 const {
return fHessTlrG2;}
 
   48    unsigned int HessianGradientNCycles()
 const {
return fHessGradNCyc;}
 
   50    int StorageLevel()
 const { 
return fStoreLevel; }
 
   52    bool IsLow()
 const {
return fStrategy == 0;}
 
   53    bool IsMedium()
 const {
return fStrategy == 1;}
 
   54    bool IsHigh()
 const {
return fStrategy >= 2;}
 
   56    void SetLowStrategy();
 
   57    void SetMediumStrategy();
 
   58    void SetHighStrategy();
 
   60    void SetGradientNCycles(
unsigned int n) {fGradNCyc = n;}
 
   61    void SetGradientStepTolerance(
double stp) {fGradTlrStp = stp;}
 
   62    void SetGradientTolerance(
double toler) {fGradTlr = toler;}
 
   64    void SetHessianNCycles(
unsigned int n) {fHessNCyc = n;}
 
   65    void SetHessianStepTolerance(
double stp) {fHessTlrStp = stp;}
 
   66    void SetHessianG2Tolerance(
double toler) {fHessTlrG2 = toler;}
 
   67    void SetHessianGradientNCycles(
unsigned int n) {fHessGradNCyc = n;}
 
   71    void SetStorageLevel(
unsigned int level) { fStoreLevel = level; }
 
   74    unsigned int fStrategy;
 
   76    unsigned int fGradNCyc;
 
   79    unsigned int fHessNCyc;
 
   82    unsigned int fHessGradNCyc;
 
   90 #endif  // ROOT_Minuit2_MnStrategy