#ifndef ROOT_Minuit2_MnContours
#define ROOT_Minuit2_MnContours
#include "Minuit2/MnConfig.h"
#include "Minuit2/MnStrategy.h"
#include <vector>
#include <utility>
namespace ROOT {
namespace Minuit2 {
class FCNBase;
class FunctionMinimum;
class ContoursError;
class MnContours {
public:
MnContours(const FCNBase& fcn, const FunctionMinimum& min) : fFCN(fcn), fMinimum(min), fStrategy(MnStrategy(1)) {}
MnContours(const FCNBase& fcn, const FunctionMinimum& min, unsigned int stra) : fFCN(fcn), fMinimum(min), fStrategy(MnStrategy(stra)) {}
MnContours(const FCNBase& fcn, const FunctionMinimum& min, const MnStrategy& stra) : fFCN(fcn), fMinimum(min), fStrategy(stra) {}
~MnContours() {}
std::vector<std::pair<double,double> > operator()(unsigned int, unsigned int, unsigned int npoints = 20) const;
ContoursError Contour(unsigned int, unsigned int, unsigned int npoints = 20) const;
const MnStrategy& Strategy() const {return fStrategy;}
private:
const FCNBase& fFCN;
const FunctionMinimum& fMinimum;
MnStrategy fStrategy;
};
}
}
#endif // ROOT_Minuit2_MnContours