00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #include "Minuit2/FCNBase.h"
00011
00012 namespace ROOT {
00013
00014 namespace Minuit2 {
00015
00016
00017 class Quad8F : public FCNBase {
00018
00019 public:
00020
00021 double operator()(const std::vector<double>& par) const {
00022
00023 double x = par[0];
00024 double y = par[1];
00025 double z = par[2];
00026 double w = par[3];
00027 double x0 = par[4];
00028 double y0 = par[5];
00029 double z0 = par[6];
00030 double w0 = par[7];
00031
00032
00033 return ( (1./70.)*(21*x*x + 20*y*y + 19*z*z - 14*x*z - 20*y*z) + w*w + (1./70.)*(21*x0*x0 + 20*y0*y0 + 19*z0*z0 - 14*x0*z0 - 20*y0*z0) + w0*w0 );
00034 }
00035
00036 double Up() const {return 1.;}
00037
00038 private:
00039
00040 };
00041
00042 }
00043
00044 }