#include <BALL/NMR/HBondShiftProcessor.h>
Public Member Functions | |
Constructors and Destructors | |
| HBondShiftProcessor () | |
| HBondShiftProcessor (const HBondShiftProcessor &processor) | |
| virtual | ~HBondShiftProcessor () |
Accessors | |
| virtual void | init () |
Processor specific funtions. | |
| virtual bool | start () |
| virtual Processor::Result | operator() (Composite &composite) |
| virtual bool | finish () |
Static Public Attributes | |
Enums and Constants | |
| static const char * | PROPERTY__HBOND_SHIFT |
Protected Attributes | |
| std::list< Atom * > | donor_list_ |
| std::list< Atom * > | acceptor_list_ |
| float | a_ |
| float | b_ |
| float | minimum_bond_length_ |
| float | maximum_bond_length_ |
Shift assignment processor implementing the effect of hydrogen bonds.
| BALL::HBondShiftProcessor::HBondShiftProcessor | ( | ) |
Default constructor.
| BALL::HBondShiftProcessor::HBondShiftProcessor | ( | const HBondShiftProcessor & | processor | ) |
Copy constructor.
| virtual BALL::HBondShiftProcessor::~HBondShiftProcessor | ( | ) | [virtual] |
Destructor.
| virtual bool BALL::HBondShiftProcessor::finish | ( | ) | [virtual] |
Finish method. This method performs the chemical shift calculation. For each donor in donor_list_ , it looks for acceptors in the acceptor_list_ that lie inside a spherical shell of inner radius minimum_bond_length_ and outer radius maximum_bond_length_ with the donor in its center. Then, it calculates the bond length $x$ and calculates the chemical shift as $ delta_{HBond} = a*x + b $ The chemical shift is stored in the {acceptor} atom using the named property ShiftModule::PROPERTY__SHIFT and in the named property PROPERTY__HBOND_SHIFT .
parameters_ == 0 Reimplemented from BALL::ShiftModule.
| virtual void BALL::HBondShiftProcessor::init | ( | ) | [virtual] |
Initialization method. This method reads the parameter section "HBondEffect" and parses its contents. This section contains the parameters used to calculate the contribution of a hydrogen bond to the chemical shift. Right now, it is assumed that the effect is linear in the bond length and the slope a and the shift b are universal, that is the same for all kinds of hydrogen bonds.
Reimplemented from BALL::ShiftModule.
| virtual Processor::Result BALL::HBondShiftProcessor::operator() | ( | Composite & | composite | ) | [virtual] |
operator (). This method adds all acceptors to the acceptor_list_ and all donors to the donor_list_.
Reimplemented from BALL::UnaryProcessor< Composite >.
| virtual bool BALL::HBondShiftProcessor::start | ( | ) | [virtual] |
Processor start method.
Reimplemented from BALL::ShiftModule.
float BALL::HBondShiftProcessor::a_ [protected] |
slope of the linear relation for the chemical shift.
std::list<Atom*> BALL::HBondShiftProcessor::acceptor_list_ [protected] |
list of HBond acceptors collected by operator ()
float BALL::HBondShiftProcessor::b_ [protected] |
zero value of the linear relation for the chemical shift.
std::list<Atom*> BALL::HBondShiftProcessor::donor_list_ [protected] |
list of HBond donors collected by operator ()
float BALL::HBondShiftProcessor::maximum_bond_length_ [protected] |
maximum distance for an HBond.
float BALL::HBondShiftProcessor::minimum_bond_length_ [protected] |
minimum distance for an HBond.
const char* BALL::HBondShiftProcessor::PROPERTY__HBOND_SHIFT [static] |