BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
partialChargeProcessor.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 //
4 //
5 
6 #ifndef BALL_QSAR_PARTIALCHARGEPROCESSOR_H
7 #define BALL_QSAR_PARTIALCHARGEPROCESSOR_H
8 
9 #include <BALL/KERNEL/PTE.h>
10 #include <BALL/DATATYPE/hashSet.h>
11 
12 #include <vector>
13 #include <utility>
14 
15 namespace BALL
16 {
17  class AtomContainer;
18  class Atom;
19 
24  : public UnaryProcessor<AtomContainer>
25  {
26  public:
27 
29 
30 
36 
40 
43  virtual ~PartialChargeProcessor();
45 
51  PartialChargeProcessor& operator = (const PartialChargeProcessor& pc);
53 
60  void calculatePEOE(AtomContainer& ac);
61 
63  void setDataFolder(const char* folder);
65 
69  virtual Processor::Result operator () (AtomContainer& ac);
71 
72  private:
73 
74  /*_ @name Accessors
75  */
76 
77  std::pair<std::vector<float>, std::vector<float> > readIonizationEnergies_();
78 
79 
81  /*_ Helper function to get the ionization energy for an element
82  */
83  float getIonizationEnergy_(Element::AtomicNumber atomic_number, Size charge);
84 
85 
86  void readElectronAffinities_(std::vector<float>& electron_affinities);
87 
88  /*_ Helper funtion to get the electron affinity of an element
89  */
90  float getElectronAffinity_(Element::AtomicNumber atomic_number, Size charge);
91 
92  /*_ Helper function to get the PEOE a,b and c factor
93  */
94  void getabcFactors_(Atom* atom, float& a, float& b, float& c);
96 
98 
100  };
101 } // namespace BALL
102 
103 #endif // BALL_QSAR_RINGFINDER_H