#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] |