00001 //-------------------------------------------------------------------------- 00002 // 00003 // 00004 // Copyright Information: See EvtGen/COPYRIGHT 00005 // 00006 // Environment: 00007 // This software is part of the EvtGen package developed jointly 00008 // for the BaBar and CLEO collaborations. If you use all or part 00009 // of it, please give an appropriate acknowledgement. 00010 // 00011 // Module: EvtItgPtrFunction.hh 00012 // 00013 // Description: 00014 // Class describing a function with one vector of coefficients. (Stolen and 00015 // modified from the BaBar IntegrationUtils package - author: Phil Strother). 00016 // 00017 // Modification history: 00018 // 00019 // Jane Tinslay March 21, 2001 Module adapted for use in 00020 // EvtGen 00021 // 00022 //------------------------------------------------------------------------ 00023 00024 #ifndef EVTITGPTRFUNCTION_HH 00025 #define EVTITGPTRFUNCTION_HH 00026 00027 #include <vector> 00028 #include "EvtGenModels/EvtItgAbsFunction.hh" 00029 00030 class EvtItgPtrFunction: public EvtItgAbsFunction { 00031 00032 public: 00033 00034 EvtItgPtrFunction( double (*theFunction)(double, const std::vector<double> &), 00035 double lowerRange, double upperRange, const std::vector<double> &coeffs1); 00036 00037 virtual ~EvtItgPtrFunction( ); 00038 00039 virtual void setCoeff(int, int, double); 00040 virtual double getCoeff(int, int); 00041 00042 protected: 00043 00044 virtual double myFunction(double x) const; 00045 00046 private: 00047 00048 // Data members 00049 double (*_myFunction)(double x, const std::vector<double> & coeffs1); 00050 00051 // Note: if your class needs a copy constructor or an assignment operator, 00052 // make one of the following public and implement it. 00053 EvtItgPtrFunction( const EvtItgPtrFunction& ); 00054 EvtItgPtrFunction& operator= ( const EvtItgPtrFunction& ); // Assignment op 00055 std::vector<double> _coeffs1; 00056 00057 }; 00058 00059 #endif // EVTITGPTRFUNCTION_HH