00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef FunctionDirectProduct_h
00014 #define FunctionDirectProduct_h 1
00015 #include "CLHEP/GenericFunctions/AbsFunction.hh"
00016
00017 namespace Genfun {
00018
00023 class FunctionDirectProduct : public AbsFunction {
00024
00025 FUNCTION_OBJECT_DEF(FunctionDirectProduct)
00026
00027 public:
00028
00029
00030 FunctionDirectProduct(const AbsFunction *arg1, const AbsFunction *arg2);
00031
00032
00033 FunctionDirectProduct(const FunctionDirectProduct &right);
00034
00035
00036 virtual ~FunctionDirectProduct();
00037
00038
00039 virtual double operator ()(double argument) const;
00040 virtual double operator ()(const Argument & a) const;
00041
00042
00043 virtual unsigned int dimensionality() const;
00044
00045
00046 Derivative partial (unsigned int) const;
00047
00048
00049 virtual bool hasAnalyticDerivative() const {return true;}
00050
00051 private:
00052
00053
00054 const FunctionDirectProduct & operator=(const FunctionDirectProduct &right);
00055
00056 AbsFunction *_arg1;
00057 AbsFunction *_arg2;
00058 unsigned int _m;
00059 unsigned int _n;
00060
00061 };
00062 }
00063 #endif