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