BALL 1.5.0
Loading...
Searching...
No Matches
hydrogenBondSlick.h
Go to the documentation of this file.
1// $Id: HydrogenBondSlick.h,v 1.3 2006/05/17 12:49:15 anker Exp $
2// Molecular Mechanics: Fresno force field, hydrogen bond component
3
4#ifndef BALL_SCORING_COMPONENTS_HYDROGENBONDSLICK_H
5#define BALL_SCORING_COMPONENTS_HYDROGENBONDSLICK_H
6
10
11namespace BALL
12{
13
18 : public ScoringComponent
19 {
20
21 public:
22
23
24 struct Option
25 {
28 static const char* HB_IDEAL_LENGTH;
29
32 static const char* HB_IDEAL_ANGLE;
33
36 static const char* HB_DIST_LOWER;
37
40 static const char* HB_DIST_UPPER;
41
44 static const char* HB_ANG_LOWER;
45
48 static const char* HB_ANG_UPPER;
49
52 static const char* VERBOSITY;
53 };
54
57 struct Default
58 {
61 static const float HB_IDEAL_LENGTH;
62
65 static const float HB_IDEAL_ANGLE;
66
69 static const float HB_DIST_LOWER;
70
73 static const float HB_DIST_UPPER;
74
77 static const float HB_ANG_LOWER;
78
81 static const float HB_ANG_UPPER;
82
85 static const Size VERBOSITY;
86
87 };
88
89
90
91
93
94
97
98
101 ;
102
106 ;
107
111 ;
112
116 ;
117
121 ;
122
124
127
130 const HydrogenBondSlick& operator = (const HydrogenBondSlick& fhb)
131 ;
132
135 virtual void clear();
136
138
141
142 bool operator == (const HydrogenBondSlick& fhb) const
143 ;
144
146
149
153 virtual bool setup();
154
156
159
160 void update(const vector<std::pair<Atom*, Atom*> >& /* pair_vector */);
161
165 virtual double updateScore();
166
168
169 private:
170
171 /*_ This vector contains all possible hydrogen bonds. It is created
172 * during the setup process. Pairs are always of the form (hydrogen,
173 * acceptor). The donor can be found easily by following the only bond
174 * of the hydrogen.
175 */
176 std::vector< std::pair<const Atom*, const Atom*> > possible_hydrogen_bonds_;
177
178 /*_ A hash map containing all hydrogens and bools indicating whether
179 * this hydrigen was already used for scoring a hydrogen bond. At the
180 * moment we use the first hydrogen bond we find and hope that this
181 * will indeed be the only one contributing to the energy score. This
182 * HashMap will only be used by updateEnergy() but we build it in
183 * setup().
184 */
185 HashMap<const Atom*, bool> already_used_;
186
187 /*_
188 */
189 double factor_;
190
191 /*_
192 */
193 double h_bond_distance_lower_;
194
195 /*_
196 */
197 double h_bond_distance_upper_;
198
199 /*_
200 */
201 double h_bond_angle_lower_;
202
203 /*_
204 */
205 double h_bond_angle_upper_;
206
207 /*_ The ideal hbond length.
208 */
209 double ideal_hbond_length_;
210
211 /*_ The ideal hbond angle.
212 */
213 double ideal_hbond_angle_;
214
215 /*_
216 */
217 HashMap<const Atom*, Size> rec_fresno_types_;
218
219 HashMap<const Atom*, Size> lig_fresno_types_;
220 };
221
222} // namespace BALL
223
224#endif // BALL_SCORING_COMPONENTS_HYDROGENBONDSLICK_H
#define BALL_CREATE(name)
Definition create.h:62
STL namespace.
HashMap class based on the STL map (containing serveral convenience functions)
Definition hashMap.h:74
virtual void clear()
virtual double updateScore()
void update(const vector< std::pair< Atom *, Atom * > > &)
virtual bool setup()