00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef EVTITFOURCOEFFFCN_HH
00023 #define EVTITFOURCOEFFFCN_HH
00024
00025 #include <vector>
00026 #include "EvtGenModels/EvtItgAbsFunction.hh"
00027
00028 class EvtItgFourCoeffFcn: public EvtItgAbsFunction {
00029
00030 public:
00031
00032 EvtItgFourCoeffFcn( double (*theFunction)(double, const std::vector<double> &, const std::vector<double> &, const std::vector<double> &, const std::vector<double> &),
00033 double lowerRange, double upperRange, const std::vector<double> &coeffs1, const std::vector<double> &coeffs2, const std::vector<double> &coeffs3, const std::vector<double> &coeffs4);
00034
00035 virtual ~EvtItgFourCoeffFcn( );
00036
00037 virtual void setCoeff(int, int, double);
00038 virtual double getCoeff(int, int);
00039
00040 protected:
00041
00042 virtual double myFunction(double x) const;
00043
00044 private:
00045
00046
00047 double (*_myFunction)(double x, const std::vector<double> & coeffs1, const std::vector<double> & coeffs2, const std::vector<double> & coeffs3, const std::vector<double> & coeffs4);
00048
00049
00050
00051 EvtItgFourCoeffFcn( const EvtItgFourCoeffFcn& );
00052 EvtItgFourCoeffFcn& operator= ( const EvtItgFourCoeffFcn& );
00053 std::vector<double> _coeffs1;
00054 std::vector<double> _coeffs2;
00055 std::vector<double> _coeffs3;
00056 std::vector<double> _coeffs4;
00057
00058 };
00059
00060 #endif // EvtITGPTRFUNCTION_HH