BALL 1.5.0
Loading...
Searching...
No Matches
EFShiftProcessor.h
Go to the documentation of this file.
1// -*- Mode: C++; tab-width: 2; -*-
2// vi: set ts=2:
3//
4// $Id: EFShiftProcessor.h,v 1.23.10.5 2007-04-12 13:53:52 anne Exp $
5//
6
7#ifndef BALL_NMR_EFSHIFTPROCESSOR_H
8#define BALL_NMR_EFSHIFTPROCESSOR_H
9
10#ifndef BALL_NMR_SHIFT_MODULE_H
12#endif
13
14#ifndef BALL_KERNEL_EXPRESSION_H
16#endif
17
18namespace BALL
19{
20 class Atom;
21
26 : public ShiftModule
27 {
28 public:
29
31
32
35
39 static const char* PROPERTY__EF_SHIFT;
40
42
45
49 ;
50
54 ;
55
59 ;
60
62
65
90 virtual void init()
91 ;
92
94
97
103 virtual bool start()
104 ;
105
106
115 virtual Processor::Result operator () (Composite& composite)
116 ;
117
136 virtual bool finish()
137 ;
138
140
141 protected:
142
143 /*_ The list of all target bonds collected by {\tt operator ()}.
144 * The first element of the pair is the origin of the bond, the second the destination.
145 * The shift _always_ applies to the first element of the pair.
146 */
147 std::vector<std::pair<Atom*, Atom*> > bond_list_;
148
149 /*_ The index of the expression that matched to result in the corresponding element in bond_list_
150 */
152
153 /*_ The list of charged atoms (effectors).
154 */
156
157 /*_ The expressions describing the first atom of a bond.
158 */
160
161 /*_ The expressions describing the first atom of a bond.
162 */
164
165 /*_ The parameter $\varepsilon_1$.
166 */
167 std::vector<float> epsilon1_;
168
169 /*_ The parameter $\varepsilon_2$.
170 */
171 std::vector<float> epsilon2_;
172
173 /*_ The charge assignment map.
174 */
176
177 /*_ A flag indicating whether effectors in the same residues are to be considered.
178 Set this flag by specifying the option {\tt exclude_residue_field = true} in
179 the ElectricFieldShift section of the parameter file.
180 Default is false.
181 */
183
184 /*_ A flag indicating whether effectors in adjacent residues are to be considered.
185 Set this flag by specifying the option {\tt exclude_adjacent_residue_field = true} in
186 the ElectricFieldShift section of the parameter file.
187 Default is false.
188 */
190
191 /*_ A flag indicating whether carbonyl effectors are to be considered for amid targets.
192 Set this flag by specifying the option {\tt carbonyl_influences_amide_field = false} in
193 the ElectricFieldShift section of the parameter file.
194 Default is false.
195 */
197
198
199 /*_ A flag indicating whether solvent atoms do act as effectors.
200 Set this flag by specifying the option {\tt exclude exclude_solvent_field = true} in
201 the ElectricFieldShift section of the parameter file.
202 Default is false.
203 */
205
206
207
208 /*_ A cut off value for the electric field effect.
209 Any effector that is further away than this cut off is ignored.
210 The distance is read from the option {\tt cut_off} in the
211 section <TT> ElectricFieldEffect </TT> from the parameter file.
212 This member contains the squared value(!) of the distance.
213 */
215
216
217 /*_ A factor for switching the charge unit between esu and elementary charges.
218 The unit is read from the option {\tt unit} of the section
219 <TT> Charges </TT> from the parameter file.
220 For numeric aspects, in the init() function the esu unit is divided by
221 the charge_factor_, such that the molecules charges (which are given
222 by PDB.org in elementary units) can easily be multiplied with.
223 When computing the shift, the charge_factor is again multiplied with.
224 Default is 1.0
225 */
226
228
229 private:
230
231 /*_ Some debugging functions printing parameter/effector/target information
232 * to the Log-stream.
233 */
234 void printParameters_();
235 void printEffectors_();
236 void printTargets_();
237
238 /*_ A function to perform some ShiftX-y postprocessing:
239 add for all CA-atoms 0.2 times the EF-shift-value of the bound HA-atoms
240 */
241 void postprocessing_();
242
243 };
244
245} // namespace BALL
246
247#endif // BALL_NMR_EFSHIFTPROCESSOR_H
#define BALL_EXPORT
std::vector< float > epsilon1_
virtual void init()
std::list< Atom * > effector_list_
static const char * PROPERTY__EF_SHIFT
virtual bool start()
std::vector< float > epsilon2_
StringHashMap< float > charge_map_
virtual bool finish()
std::vector< Expression > second_atom_expressions_
std::vector< std::pair< Atom *, Atom * > > bond_list_
std::vector< Index > expression_number_
std::vector< Expression > first_atom_expressions_
#define BALL_CREATE(name)
Definition create.h:62
BALL_INDEX_TYPE Index
STL namespace.