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