00001 #ifndef __CONVOLUTION_H 00002 #define __CONVOLUTION_H 00003 00004 #include "parametermap.h" 00005 #include "objects1d.h" 00006 #include "corr1d_histo.h" 00007 #include "kernel.h" 00008 #include "crombergintegrator.h" 00009 00010 class CConvoluterIntegrand1d{ 00011 public: 00012 double q; 00013 int l; 00014 const CKernel* kernelPtr; 00015 const CObject1d* sourcePtr; 00016 CRombergIntegrator integrator; 00017 CConvoluterIntegrand1d(const CKernel* kPtr, const CObject1d* sPtr): 00018 q(0), kernelPtr(kPtr), sourcePtr(sPtr), integrator( (void*)this, getValue ) 00019 {l=0;if (sourcePtr) l=sourcePtr->l;} 00020 static double getValue(void* me, double r); 00021 double integrate(double rmin,double rmax); 00022 }; 00023 00024 CCorrFtn1dHisto convolute(const CObject1d& sourceFtn, const parameterMap& m); 00025 00026 #endif