BALL  1.5.0
hybridisationProcessor.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 //
4 
5 #ifndef BALL_STRUCTURE_HYBRIDISATIONPROCESSOR_H
6 #define BALL_STRUCTURE_HYBRIDISATIONPROCESSOR_H
7 
8 #ifndef BALL_CONCEPT_PROCESSOR_H
9  #include <BALL/CONCEPT/processor.h>
10 #endif
11 
12 #ifndef BALL_KERNEL_ATOMCONTAINER_H
14 #endif
15 
16 #ifndef BALL_DATATYPE_HASHMAP_H
17  #include <BALL/DATATYPE/hashMap.h>
18 #endif
19 
20 #ifndef BALL_KERNEL_BOND_H
21  #include <BALL/KERNEL/bond.h>
22 #endif
23 
24 #ifndef BALL_DATATYPE_OPTIONS_H
25  #include <BALL/DATATYPE/options.h>
26 #endif
27 
28 #ifndef BALL_DATATYPE_STRINGHASHMAP_H
30 #endif
31 
32 
33 #include <map>
34 
35 
36 namespace BALL
37 {
38 
43  : public UnaryProcessor<AtomContainer>
44  {
45 
46  public:
47 
53  {
57  static const char* ATOM_TYPE_SMARTS_FILENAME;
58 
62  static const char* ATOM_TYPE_FF_FILENAME;
63 
73  static const String METHOD;
74 
75  };
76 
79  {
81  static const char* ATOM_TYPE_SMARTS_FILENAME;
82 
86  static const char* ATOM_TYPE_FF_FILENAME;
87 
91  static const String METHOD;
92  };
93 
95  {
96  static const String SMART_MATCHING;
97  static const String STRUCTURE_BASED;
98  static const String FF_BASED;
99  };
100 
101 
103 
104 
108 
110 
113 
116 
121  HybridisationProcessor(const String& smarts_file_name, const String& ff_file_name);
122 
126 
130 
132  virtual bool start();
133 
135  virtual Processor::Result operator () (AtomContainer& ac);
137 
143 
147  void setAtomTypeSmarts(const String& file_name);
148 
150  vector< std::pair<String, Size> > getHybridisationMap() { return atom_type_smarts_;};
152 
159 
165 
170 
171  protected:
172 
175  struct Elements_
176  {
180  unsigned char hyb;
181  };
182 
185  struct AtomNames_
186  {
193  };
194 
198  bool readAtomTypeSmartsFromFile_(const String& file_name = "");
199 
202 
204  vector< std::pair<String, Size> > atom_type_smarts_;
205 
210 
212  bool readAndInitBondAnglesFromFile_(const String& file_name = "");
213 
217 
218 
220  bool valid_;
221 
222 
225 
226  };
227 
228 } // namespace BALL
229 
230 
231 #endif // BALL_STRUCTURE_HYBRIDISATIONPROCESSOR_H
Definition: constants.h:13
StringHashMap< Elements_ > elements_
void setAtomTypeSmarts(const String &file_name)
vector< std::pair< String, Size > > atom_type_smarts_
structure where atom type smarts and the corresponding hybridisation states are stored in
vector< std::pair< String, Size > > getHybridisationMap()
Return the atom_types–hybridisation Hashmap.
bool readAtomTypeSmartsFromFile_(const String &file_name="")
StringHashMap< StringHashMap< StringHashMap< std::multimap< float, AtomNames_ > > > > bond_angles_
Size num_hybridisation_states_
number of bonds, which are created during the processor call
virtual bool start()
processor method which is called before the operator () call
double AverageBondAngle_(Atom *a)
computes the averaged bond angle for the given Atom
HybridisationProcessor()
default constructor
BALL_CREATE(HybridisationProcessor)
HybridisationProcessor(const HybridisationProcessor &hp)
copy construcor
Size getNumberOfHybridisationStatesSet()
Return the number of hybridisation states set during the last application.
bool readAndInitBondAnglesFromFile_(const String &file_name="")
HybridisationProcessor(const String &smarts_file_name, const String &ff_file_name)
bool valid_
the Processors state
virtual ~HybridisationProcessor()
destructor
static const char * ATOM_TYPE_SMARTS_FILENAME
default file name for the atom type smarts
unsigned char hyb
Hybridization state.
#define BALL_EXPORT
Definition: COMMON/global.h:50