00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef ROOT_Minuit2_MnFunctionCross
00011 #define ROOT_Minuit2_MnFunctionCross
00012
00013 #include "Minuit2/MnConfig.h"
00014 #include <vector>
00015
00016 namespace ROOT {
00017
00018 namespace Minuit2 {
00019
00020
00021
00022 class FCNBase;
00023 class MnUserParameterState;
00024 class MnStrategy;
00025 class MnCross;
00026
00027
00028
00029
00030
00031 class MnFunctionCross {
00032
00033 public:
00034
00035 MnFunctionCross(const FCNBase& fcn, const MnUserParameterState& state, double fval, const MnStrategy& stra) : fFCN(fcn), fState(state), fFval(fval), fStrategy(stra) {}
00036
00037 ~MnFunctionCross() {}
00038
00039 MnCross operator()(const std::vector<unsigned int>&, const std::vector<double>&, const std::vector<double>&, double, unsigned int) const;
00040
00041 private:
00042
00043 const FCNBase& fFCN;
00044 const MnUserParameterState& fState;
00045 double fFval;
00046 const MnStrategy& fStrategy;
00047 };
00048
00049 }
00050
00051 }
00052
00053 #endif // ROOT_Minuit2_MnFunctionCross