org.freehep.math.minuit
Class MnStrategy

java.lang.Object
  extended by org.freehep.math.minuit.MnStrategy

public class MnStrategy
extends Object

API class for defining three levels of strategies: low (0), medium (1), high (>=2).

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)

Version:
$Id: MnStrategy.java 8584 2006-08-10 23:06:37Z duns $

Constructor Summary
MnStrategy()
          Creates a MnStrategy object with the default strategy (medium)
MnStrategy(int stra)
          Creates a MnStrategy object with the user specified strategy.
 
Method Summary
 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()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MnStrategy

public MnStrategy()
Creates a MnStrategy object with the default strategy (medium)


MnStrategy

public MnStrategy(int stra)
Creates a MnStrategy object with the user specified strategy.

Parameters:
stra - The use defined strategy, 0=low, 1 medium, 2=high.
Method Detail

strategy

public int strategy()

gradientNCycles

public int gradientNCycles()

gradientStepTolerance

public double gradientStepTolerance()

gradientTolerance

public double gradientTolerance()

hessianNCycles

public int hessianNCycles()

hessianStepTolerance

public double hessianStepTolerance()

hessianG2Tolerance

public double hessianG2Tolerance()

hessianGradientNCycles

public int hessianGradientNCycles()

isLow

public boolean isLow()

isMedium

public boolean isMedium()

isHigh

public boolean isHigh()

setLowStrategy

public void setLowStrategy()

setMediumStrategy

public void setMediumStrategy()

setGradientNCycles

public void setGradientNCycles(int n)

setGradientStepTolerance

public void setGradientStepTolerance(double stp)

setGradientTolerance

public void setGradientTolerance(double toler)

setHessianNCycles

public void setHessianNCycles(int n)

setHessianStepTolerance

public void setHessianStepTolerance(double stp)

setHessianG2Tolerance

public void setHessianG2Tolerance(double toler)

setHessianGradientNCycles

public void setHessianGradientNCycles(int n)


Copyright © 2000-2006 FreeHEP. All Rights Reserved.