10 #ifndef ROOT_Minuit2_MinimumBuilder 
   11 #define ROOT_Minuit2_MinimumBuilder 
   20 class FunctionMinimum;
 
   22 class GradientCalculator;
 
   27 class MinimumBuilder {
 
   33    virtual ~MinimumBuilder() {}
 
   35    virtual FunctionMinimum Minimum(
const MnFcn&, 
const GradientCalculator&, 
const MinimumSeed&, 
const MnStrategy&, 
unsigned int, 
double) 
const = 0;
 
   37    int StorageLevel()
 const {  
return fStorageLevel; }
 
   38    int PrintLevel()
 const { 
return fPrintLevel; }
 
   40    bool TraceIter()
 const { 
return (fTracer); }
 
   41    MnTraceObject * TraceObject()
 const { 
return (fTracer); }
 
   43    virtual void SetPrintLevel(
int level) { fPrintLevel = level;}
 
   44    virtual void SetStorageLevel(
int level) { fStorageLevel = level;}
 
   47    virtual void SetTraceObject(MnTraceObject & obj) {
 
   51    void TraceIteration(
int iter, 
const MinimumState & state)
 const {
 
   52       if (fTracer) (*fTracer)(iter, state);
 
   60    MnTraceObject * fTracer; 
 
   68 #endif  // ROOT_Minuit2_MinimumBuilder