CLHEP 2.0.4.7 Reference Documentation
   
CLHEP Home Page     CLHEP Documentation     CLHEP Bug Reports

FunctionConvolution.hh

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 // $Id: FunctionConvolution.hh,v 1.2 2003/09/06 14:04:13 boudreau Exp $
00003 //------------------------------FunctionConvolution-------------------------//
00004 //                                                                          //
00005 // FunctionConvolution:  output of the Convolve[f,g] operation              //
00006 //                                                                          //
00007 // Petar Maksimovic, Joe Boudreau, November 1999                            //
00008 //                                                                          //
00009 //  Warning!  This is not a very good convolution algorithm!  Does anybody  //
00010 //  out there really know how to perform a reasonable numerical convolution //
00011 //  ? Wanna help the Generic Functions Project?                             //
00012 //                                                                          //
00013 //--------------------------------------------------------------------------//
00014 
00015 #ifndef FunctionConvolution_h
00016 #define FunctionConvolution_h 1
00017 #include "CLHEP/GenericFunctions/AbsFunction.hh"
00018 
00019 namespace Genfun {
00020 
00025   class FunctionConvolution : public AbsFunction  {
00026 
00027     FUNCTION_OBJECT_DEF(FunctionConvolution)
00028 
00029       public:
00030 
00031     // Constructor
00032     FunctionConvolution(const AbsFunction *arg1, const AbsFunction *arg2, double x0, double x1);
00033   
00034     // Copy Constructor
00035     FunctionConvolution(const FunctionConvolution &right);
00036   
00037     // Destructor
00038     virtual ~FunctionConvolution();
00039   
00040     // Retrieve function value
00041     virtual double operator ()(double argument) const;
00042     virtual double operator ()(const Argument & a) const {return operator() (a[0]);}
00043   
00044   private:
00045 
00046     // It is illegal to assign a convolution
00047     const FunctionConvolution & operator=(const FunctionConvolution &right);
00048 
00049     // Input functions to convolution
00050     const AbsFunction *_arg1;
00051     const AbsFunction *_arg2;
00052     double _x0;
00053     double _x1;
00054 
00055   };
00056 } // namespace Genfun
00057 #endif

Generated on Thu Jul 1 22:02:30 2010 for CLHEP by  doxygen 1.4.7