00001
00002
00003
00004
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 }
00156
00157 #endif // BALL_NMR_ANISOTROPYSHIFTPROCESSOR_H