Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
MinimumBuilder.h
Go to the documentation of this file.
1// @(#)root/minuit2:$Id$
2// Authors: M. Winkler, F. James, L. Moneta, A. Zsenei 2003-2005
3
4/**********************************************************************
5 * *
6 * Copyright (c) 2005 LCG ROOT Math team, CERN/PH-SFT *
7 * *
8 **********************************************************************/
9
10#ifndef ROOT_Minuit2_MinimumBuilder
11#define ROOT_Minuit2_MinimumBuilder
12
14#include "Minuit2/MnPrint.h"
15
16namespace ROOT {
17
18namespace Minuit2 {
19
20class FunctionMinimum;
21class MnFcn;
22class GradientCalculator;
23class MinimumSeed;
24class MinimumState;
25class MnStrategy;
26
28
29public:
31
32 virtual ~MinimumBuilder() {}
33
34 virtual FunctionMinimum Minimum(const MnFcn &, const GradientCalculator &, const MinimumSeed &, const MnStrategy &,
35 unsigned int, double) const = 0;
36
37 int StorageLevel() const { return fStorageLevel; }
38 int PrintLevel() const { return fPrintLevel; }
39
40 bool TraceIter() const { return (fTracer); }
41 MnTraceObject *TraceObject() const { return (fTracer); }
42
43 virtual void SetPrintLevel(int level) { fPrintLevel = level; }
44 virtual void SetStorageLevel(int level) { fStorageLevel = level; }
45
46 // set trace object (user manages it)
47 virtual void SetTraceObject(MnTraceObject &obj) { fTracer = &obj; }
48
49 void TraceIteration(int iter, const MinimumState &state) const
50 {
51 if (fTracer)
52 (*fTracer)(iter, state);
53 }
54
55private:
58
59 MnTraceObject *fTracer; //! tracer object (it is managed by user)
60};
61
62} // namespace Minuit2
63
64} // namespace ROOT
65
66#endif // ROOT_Minuit2_MinimumBuilder
class holding the full result of the minimization; both internal and external (MnUserParameterState) ...
interface class for gradient calculators
virtual void SetStorageLevel(int level)
void TraceIteration(int iter, const MinimumState &state) const
virtual void SetPrintLevel(int level)
virtual void SetTraceObject(MnTraceObject &obj)
MnTraceObject * TraceObject() const
virtual FunctionMinimum Minimum(const MnFcn &, const GradientCalculator &, const MinimumSeed &, const MnStrategy &, unsigned int, double) const =0
MinimumState keeps the information (position, Gradient, 2nd deriv, etc) after one minimization step (...
Wrapper class to FCNBase interface used internally by Minuit.
Definition MnFcn.h:30
API class for defining four levels of strategies: low (0), medium (1), high (2), very high (>=3); act...
Definition MnStrategy.h:27
This file contains a specialised ROOT message handler to test for diagnostic in unit tests.