00001
00002
00003
00004
00005
00006
00007 #ifndef BALL_NMR_EFSHIFTPROCESSOR_H
00008 #define BALL_NMR_EFSHIFTPROCESSOR_H
00009
00010 #ifndef BALL_NMR_SHIFT_MODULE_H
00011 # include<BALL/NMR/shiftModule.h>
00012 #endif
00013
00014 #ifndef BALL_KERNEL_EXPRESSION_H
00015 # include<BALL/KERNEL/expression.h>
00016 #endif
00017
00018 namespace BALL
00019 {
00020 class Atom;
00021
00025 class BALL_EXPORT EFShiftProcessor
00026 : public ShiftModule
00027 {
00028 public:
00029
00030 BALL_CREATE(EFShiftProcessor)
00031
00032
00035
00039 static const char* PROPERTY__EF_SHIFT;
00040
00042
00045
00048 EFShiftProcessor()
00049 ;
00050
00053 EFShiftProcessor(const EFShiftProcessor& processor)
00054 ;
00055
00058 virtual ~EFShiftProcessor()
00059 ;
00060
00062
00065
00081 virtual void init()
00082 ;
00083
00085
00088
00094 virtual bool start()
00095 ;
00096
00097
00106 virtual Processor::Result operator () (Composite& composite)
00107 ;
00108
00126 virtual bool finish()
00127 ;
00128
00130
00131 protected:
00132
00133
00134
00135 std::list<Bond*> bond_list_;
00136
00137
00138
00139 std::list<Atom*> effector_list_;
00140
00141
00142
00143 std::vector<Expression> first_atom_expressions_;
00144
00145
00146
00147 std::vector<Expression> second_atom_expressions_;
00148
00149
00150
00151 std::vector<float> epsilon1_;
00152
00153
00154
00155 std::vector<float> epsilon2_;
00156
00157
00158
00159 StringHashMap<float> charge_map_;
00160
00161
00162
00163
00164
00165
00166 bool exclude_residue_field_;
00167
00168
00169
00170
00171
00172
00173
00174 float cut_off2_;
00175
00176 };
00177
00178 }
00179
00180 #endif // BALL_NMR_EFSHIFTPROCESSOR_H