00001 // -*- Mode: C++; tab-width: 2; -*- 00002 // vi: set ts=2: 00003 // 00004 // $Id: HBondShiftProcessor.h,v 1.14 2005/12/23 17:01:55 amoll Exp $ 00005 // 00006 00007 #ifndef BALL_NMR_HBONDSHIFTPROCESSOR_H 00008 #define BALL_NMR_HBONDSHIFTPROCESSOR_H 00009 00010 #ifndef BALL_KERNEL_PTE_H 00011 # include <BALL/KERNEL/PTE.h> 00012 #endif 00013 00014 #ifndef BALL_KERNEL_BOND_H 00015 # include <BALL/KERNEL/bond.h> 00016 #endif 00017 00018 #ifndef BALL_KERNEL_ATOM_H 00019 # include <BALL/KERNEL/atom.h> 00020 #endif 00021 00022 #ifndef BALL_NMR_SHIFT_MODULE_H 00023 # include <BALL/NMR/shiftModule.h> 00024 #endif 00025 00026 #ifndef BALL_FORMAT_PARAMETERSECTION_H 00027 # include <BALL/FORMAT/parameterSection.h> 00028 #endif 00029 00030 namespace BALL 00031 { 00035 class BALL_EXPORT HBondShiftProcessor 00036 : public ShiftModule 00037 { 00038 public: 00039 BALL_CREATE(HBondShiftProcessor) 00040 00041 00044 00045 static const char* PROPERTY__HBOND_SHIFT; 00046 00048 00051 00054 HBondShiftProcessor() 00055 ; 00056 00059 HBondShiftProcessor(const HBondShiftProcessor& processor) 00060 ; 00061 00064 virtual ~HBondShiftProcessor() 00065 ; 00066 00068 00071 00079 virtual void init(); 00080 00082 00085 00088 virtual bool start(); 00089 00094 virtual Processor::Result operator () (Composite& composite); 00095 00096 00109 virtual bool finish(); 00110 00112 00113 protected: 00114 00117 std::list<Atom*> donor_list_; 00118 00121 std::list<Atom*> acceptor_list_; 00122 00125 float a_; 00126 00129 float b_; 00130 00133 float minimum_bond_length_; 00134 00137 float maximum_bond_length_; 00138 }; 00139 } // namespace BALL 00140 00141 #endif