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