00001 // -*- Mode: C++; tab-width: 2; -*- 00002 // vi: set ts=2: 00003 // 00004 // $Id: anisotropyShiftProcessor.h,v 1.20.20.1 2007/08/07 17:22:59 aleru Exp $ 00005 // 00006 00007 #ifndef BALL_NMR_ANISOTROPYSHIFTPROCESSOR_H 00008 #define BALL_NMR_ANISOTROPYSHIFTPROCESSOR_H 00009 00010 #ifndef BALL_KERNEL_BOND_H 00011 # include <BALL/KERNEL/bond.h> 00012 #endif 00013 00014 #ifndef BALL_KERNEL_ATOM_H 00015 # include<BALL/KERNEL/atom.h> 00016 #endif 00017 00018 #ifndef BALL_NMR_SHIFT_MODULE_H 00019 # include<BALL/NMR/shiftModule.h> 00020 #endif 00021 00022 #include <list> 00023 00024 namespace BALL 00025 { 00029 class BALL_EXPORT AnisotropyShiftProcessor 00030 : public ShiftModule 00031 { 00032 public: 00033 00034 BALL_CREATE(AnisotropyShiftProcessor) 00035 00036 00039 00043 static const char* PROPERTY__ANISOTROPY_SHIFT; 00044 00046 00049 00052 AnisotropyShiftProcessor(); 00053 00056 AnisotropyShiftProcessor(const AnisotropyShiftProcessor& processor); 00057 00060 virtual ~AnisotropyShiftProcessor(); 00061 00063 00066 00122 virtual bool finish(); 00123 00135 virtual Processor::Result operator() (Composite& composite); 00136 00138 00141 00144 virtual void init(); 00145 00147 00148 protected: 00149 std::list<const Atom*> proton_list_; 00150 std::list<const Bond*> eff_list_; 00151 std::list<const Bond*> eff_list_2_; 00152 bool ignore_other_chain_; 00153 }; 00154 00155 } // namespace BALL 00156 00157 #endif // BALL_NMR_ANISOTROPYSHIFTPROCESSOR_H