00001 #ifndef GENERALIMAGER1D_H
00002 #define GENERALIMAGER1D_H
00003
00004 #include <string>
00005 #include "parametermap.h"
00006 #include "kernel.h"
00007 #include "corr1d_histo.h"
00008 #include "soubase.h"
00009 #include "constants.h"
00010
00011 using namespace std;
00012 using namespace TNT;
00013
00014
00015
00016
00017 class CGeneralImager1d{
00018
00019 public:
00020
00021
00022 CGeneralImager1d( void ):
00023 l(0),
00024 qmin(0.),
00025 qmax(100.),
00026 rmax(0.),
00027 rmin(0.),
00028 ndata_corr(0),
00029 ndata_sou(0),
00030 dq(5.0),
00031 q0(2.5),
00032 bigQ(false),
00033 kernel_particle1(""),
00034 kernel_particle2(""),
00035 kernelPtr(NULL),
00036 corrwork(){}
00037
00038
00039 virtual ~CGeneralImager1d( void ){}
00040
00041
00042 virtual bool Read( const parameterMap& m );
00043 virtual bool Write( parameterMap& m );
00044
00045
00046 virtual bool convertCorrelationToSource( const CCorrFtn1dHisto& corrin, CSourceFtnBase& souout, const parameterMap& m, const CKernel* _kernelPtr=NULL )=0;
00047 virtual bool convertSourceToCorrelation( const CSourceFtnBase& souin, CCorrFtn1dHisto& corrout, const parameterMap& m, const CKernel* _kernelPtr=NULL )=0;
00048
00049
00050 int l;
00051 double qmin;
00052 double qmax;
00053 double rmax;
00054 double rmin;
00055 int ndata_corr;
00056 int ndata_sou;
00057 double dq;
00058 double q0;
00059 bool bigQ;
00060
00061
00062 string kernel_particle1;
00063 string kernel_particle2;
00064 const CKernel* kernelPtr;
00065
00066
00067 CCorrFtn1dHisto corrwork;
00068
00069 void get_usable_data( const CCorrFtn1dHisto& corrin );
00070 virtual bool initialize_source( const CCorrFtn1dHisto& corrin, CSourceFtnBase& souout, const parameterMap& m );
00071 virtual bool initialize_correlation( const CSourceFtnBase& souin, CCorrFtn1dHisto& corrout, const parameterMap& m );
00072 virtual bool set_no_data( CSourceFtnBase& souout )=0;
00073
00074 void set_kernel( const parameterMap& m );
00075 void set_kernel( const CKernel* _kernelPtr );
00076 };
00077
00078 #endif