00001 #ifndef GENERALIMAGER3D_H 00002 #define GENERALIMAGER3D_H 00003 00004 #include <string> 00005 #include "parametermap.h" 00006 #include "kernel.h" 00007 #include "corr3d_ylm.h" 00008 #include "soubase.h" 00009 00010 using namespace std; 00011 using namespace TNT; 00012 00013 //------------------------------------------ 00014 // Main imaging code 00015 //------------------------------------------ 00016 class CGeneralImager3d{ 00017 00018 public: 00019 00020 // Constructors 00021 CGeneralImager3d( void ): 00022 kernel_particle1(""), 00023 kernel_particle2(""), 00024 kernelPtr(NULL){} 00025 00026 // Destructor 00027 virtual ~CGeneralImager3d( void ){} 00028 00029 // Read/write to parameter map 00030 virtual bool Read( const parameterMap& m ); 00031 virtual bool Write( parameterMap& m ); 00032 00033 // functions that actually manage the (un)imaging 00034 virtual bool convertCorrelationToSource( const CCorrFtn3dSphr& corrin, CSourceFtnBase& souout, const parameterMap& m )=0; 00035 virtual bool convertSourceToCorrelation( const CSourceFtnBase& souin, CCorrFtn3dSphr& corrout, const parameterMap& m )=0; 00036 00037 // controls for kernel init method 00038 string kernel_particle1; 00039 string kernel_particle2; 00040 const CKernel* kernelPtr; 00041 00042 //void get_usable_data( const CCorrFtn3dSphr& corrin ); 00043 virtual bool initialize_source( const CCorrFtn3dSphr& corrin, CSourceFtnBase& souout )=0; 00044 virtual bool initialize_correlation( const CSourceFtnBase& souin, CCorrFtn3dSphr& corrout )=0; 00045 virtual bool set_no_data( CSourceFtnBase& souout )=0; 00046 void set_kernel( const parameterMap& m ); 00047 void set_kernel( const CKernel* _kernelPtr ); 00048 void set_kernel( void ); 00049 }; 00050 00051 #endif