00001
00002
00003
00004
00005
00006
00007
00008 #ifndef IMPATOM_COULOMB_PAIR_SCORE_H
00009 #define IMPATOM_COULOMB_PAIR_SCORE_H
00010
00011 #include "atom_config.h"
00012 #include <IMP/PairScore.h>
00013 #include <IMP/Pointer.h>
00014 #include <IMP/atom/smoothing_functions.h>
00015
00016 IMPATOM_BEGIN_NAMESPACE
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 class IMPATOMEXPORT CoulombPairScore : public PairScore
00028 {
00029 IMP::internal::OwnerPointer<SmoothingFunction> smoothing_function_;
00030 double relative_dielectric_;
00031 double multiplication_factor_;
00032
00033 void calculate_multiplication_factor();
00034
00035 public:
00036 CoulombPairScore(SmoothingFunction *f) : smoothing_function_(f) {
00037 set_relative_dielectric(1.0);
00038 }
00039
00040 void set_relative_dielectric(double relative_dielectric) {
00041 relative_dielectric_ = relative_dielectric;
00042 calculate_multiplication_factor();
00043 }
00044
00045 double get_relative_dielectric() const { return relative_dielectric_; }
00046
00047 IMP_SIMPLE_PAIR_SCORE(CoulombPairScore);
00048 };
00049
00050 IMPATOM_END_NAMESPACE
00051
00052 #endif