public class MnStrategy extends Object
At many places in the analysis of the FCN (the user provided function), MINUIT must decide whether to be safe and waste a few function calls in order to know where it is, or to be fast and attempt to get the requested results with the fewest possible calls at a certain risk of not obtaining the precision desired by the user. In order to allow the user to infuence these decisions, the MnStrategy class allows the user to control different settings. MnStrategy can be instantiated with three different minimization quality levels for low (0), medium (1) and high (2) quality. Default settings for iteration cycles and tolerances are initialized then.
The default setting is set for medium quality. Value 0 (low) indicates to MINUIT that it should economize function calls; it is intended for cases where there are many variable parameters and/or the function takes a long time to calculate and/or the user is not interested in very precise values for parameter errors. On the other hand, value 2 (high) indicates that MINUIT is allowed to waste function calls in order to be sure that all values are precise; it is it is intended for cases where the function is evaluated in a relatively short time and/or where the parameter errors must be calculated reliably.
In addition all constants set in MnStrategy can be changed individually by the user, e.g. the number of iteration cycles in the numerical gradient.
Acts on: Migrad (behavioural), Minos (lowers strategy by 1 for Minos-own minimization), Hesse (iterations), Numerical2PDerivative (iterations)
Constructor and Description |
---|
MnStrategy()
Creates a MnStrategy object with the default strategy (medium)
|
MnStrategy(int stra)
Creates a MnStrategy object with the user specified strategy.
|
Modifier and Type | Method and Description |
---|---|
int |
gradientNCycles() |
double |
gradientStepTolerance() |
double |
gradientTolerance() |
double |
hessianG2Tolerance() |
int |
hessianGradientNCycles() |
int |
hessianNCycles() |
double |
hessianStepTolerance() |
boolean |
isHigh() |
boolean |
isLow() |
boolean |
isMedium() |
void |
setGradientNCycles(int n) |
void |
setGradientStepTolerance(double stp) |
void |
setGradientTolerance(double toler) |
void |
setHessianG2Tolerance(double toler) |
void |
setHessianGradientNCycles(int n) |
void |
setHessianNCycles(int n) |
void |
setHessianStepTolerance(double stp) |
void |
setLowStrategy() |
void |
setMediumStrategy() |
int |
strategy() |
public MnStrategy()
public MnStrategy(int stra)
stra
- The use defined strategy, 0=low, 1 medium, 2=high.public int strategy()
public int gradientNCycles()
public double gradientStepTolerance()
public double gradientTolerance()
public int hessianNCycles()
public double hessianStepTolerance()
public double hessianG2Tolerance()
public int hessianGradientNCycles()
public boolean isLow()
public boolean isMedium()
public boolean isHigh()
public void setLowStrategy()
public void setMediumStrategy()
public void setGradientNCycles(int n)
public void setGradientStepTolerance(double stp)
public void setGradientTolerance(double toler)
public void setHessianNCycles(int n)
public void setHessianStepTolerance(double stp)
public void setHessianG2Tolerance(double toler)
public void setHessianGradientNCycles(int n)
Jas4pp 1.5 © Java Analysis Studio for Particle Physics