00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef BALL_MOLMEC_PARAMETER_RESIDUETORSIONS_H
00010 #define BALL_MOLMEC_PARAMETER_RESIDUETORSIONS_H
00011
00012 #ifndef BALL_FORMAT_PARAMETERSECTION_H
00013 # include <BALL/FORMAT/parameterSection.h>
00014 #endif
00015
00016 #ifndef BALL_MOLMEC_PARAMETER_ATOMTYPES_H
00017 # include <BALL/MOLMEC/PARAMETER/atomTypes.h>
00018 #endif
00019
00020 namespace BALL
00021 {
00034 class BALL_EXPORT ResidueTorsions
00035 : public ParameterSection
00036 {
00037 public:
00038
00042
00045 struct BALL_EXPORT Data
00046 {
00047 String residue_name;
00048 String atom_name_A;
00049 String atom_name_B;
00050 String atom_name_C;
00051 String atom_name_D;
00052
00053 Data(const String& name, const String& A, const String& B, const String& C, const String& D)
00054 : residue_name(name),
00055 atom_name_A(A),
00056 atom_name_B(B),
00057 atom_name_C(C),
00058 atom_name_D(D)
00059 {
00060 }
00061
00062 Data()
00063 : residue_name(""),
00064 atom_name_A(""),
00065 atom_name_B(""),
00066 atom_name_C(""),
00067 atom_name_D("")
00068 {
00069 }
00070
00071 bool operator == (const Data& data) const;
00072 bool operator != (const Data& data) const;
00073 };
00074
00076
00079
00082 ResidueTorsions();
00083
00086 virtual ~ResidueTorsions() ;
00087
00090 virtual void clear() ;
00091
00093
00096
00102 virtual bool extractSection(ForceFieldParameters& parameters, const String& section_name);
00103
00105 virtual bool extractSection(Parameters& parameters, const String& section_name);
00106
00109 Size getNumberOfResidueTorsions(const String& residue_name) const;
00110
00117 bool assignTorsion(const String& name, Position i, Data& torsion) const;
00118
00121 bool hasTorsion
00122 (const String& residue, const String& atom_A, const String& atom_B,
00123 const String& atom_C, const String& atom_D) const;
00124
00126
00127 protected:
00128
00129
00130
00131
00132
00133 StringHashMap<vector<Data> > torsions_;
00134
00135
00136
00137
00138
00139 HashSet<String> all_torsions_;
00140 };
00141 }
00142
00143 #endif // BALL_MOLMEC_PARAMETER_RESIDUETORSIONS_H